It's been a while since I last posted. I've been very busy with my new responsibilities on the Admin, Ops and Deployment team. Since joining the team, we've been working on revamping our installer codebase and getting geared up for our current work in Orcas. So, what have I been up to? Well, let's just say it's all about databases! :-)

As I'm sure most any developer who has shipped a database-based product can tell you, handling database installation, upgrade and maintenance can quickly become an unmanagable nightmare. If you're only talking about one production database, that's not too bad. But what if you effectively have thousands of production systems? Now, mutliply that by the number of developers that make changes to your database code, and you'll find yourself beginning to ask these questions:

  • How to we track changes to our database schemas in a manner that allows us to upgrade any number of previous versions to the latest code?
  • What happens if we're not the only ones using the database? We can't just drop everything and recreate it. That's not very friendly.
  • How do we enforce some common rules that should be applied to all developers writing SQL code?
  • How do we stored version stamps in the database?
  • How do we know what's been executed against a given target system?
  • What if the upgrade fails? Can we recover?
  • And the list goes on...

These are the kinds of questions that I've been working on for TFS. My hope is that we'll have an improved database maintence story in Orcas and beyond. Of course, if everything goes well, you'll never notice the new database installer. It'll just work. :-)

Cheers!