Coding is one thing. Testing and QA is another. Once, I might have kept one workstation for development and a few others for testing -- machines I'd end up wiping and reconfiguring on a regular basis. Virtualization makes those headaches disappear.
I'm a particular fan of VMware Workstation's snapshot management capabilities. I like to take a VM with a clean install of an OS, then grow a branching tree of snapshots as I upgrade the system through various patches, Service Packs, and upgrades. Then, with just a few mouse clicks, I can test the same Web app from four different versions of Internet Explorer at various Windows patch levels, all from the same window on my desktop. When I'm finished -- or if something goes horribly wrong -- I simply roll the VM back to its pristine state, or to any other fork on the snapshot tree. I honestly don't know how any developer could live without it.
Distributed version control
Source code version control systems certainly aren't anything new -- CVS dates back to the 1980s or earlier. It's only been fairly recently, however, that version control systems have been adopted widely enough to be used even on relatively small projects.
Again, we probably have the open source movement to thank. Where once version control might have seemed like a formality, the community-based development model made it a necessity. That in turn led to the development of modern, distributed version control systems like Git and Mercurial that allow developers continuous access to source code trees even when traveling to remote locations.
I, for one, don't miss the days of managing source code by hand on server directory trees, and these days, I use version control even for personal projects. If only continuous integration systems could be as ubiquitous.
What's on your developer Thanksgiving list? Leave your additions in the comments.
This article, "What I'm thankful for as a developer," originally appeared at InfoWorld.com. Read more of Neil McAllister's Fatal Exception blog and follow the latest news in programming at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.