Tuesday, October 27, 2009

The Fog of Development: Recreate Dev Workstations Often?

We're looking at using Fog to rebuild our development workstations regularly. It's a clone server that can rebuild a complete machine image across the network. I saw it in action yesterday and I was impressed - it's relatively easy to use and really fast.

So why would a developer care about sticking a new image on his workstation? When I find myself rebuilding one every week or two! It's a major time-sink to get everything working right - local database, application server, portal server, IDE, environment variables & other settings files, etc, etc, etc. I probably burn between 1-3 days each month on the mundane task of getting a base configuration down, just so I (or another team member I'm helping out) can code again.

Opinions differ about how often this should be done, but I have no doubt that it has to be done regularly. We're an agile team, so we routinely install new tools for evaluation or to spike something. We constantly tweak machine configuration to test external dependencies. I can't speak for everyone on the team, but try as I might, I can't remember every little thing that I do over the course of a week to the configuration of the machine I'm working on.

One of my teammates feels so strongly about it, he'd like to see the machines automatically rebuilt every night. I'm not so sure - I'd hate for a pair to lose a day's worth of work because each thought the other person had committed the day's changes. Of course, that would help identify people who are only committing once per day or less often...

(thanks to John Walker for the photo)