I've been slowly attempting to decommission our work server closet without the luxury of downtime. Couple that with the fact that my job does not specialize in server administration, and there's a single user on a Mac, and my lack of formal expertise in network administration, and it becomes a much bigger project.
Today I was quite happy to decommission yet another physical server in favor of a virtual machine. That leaves me with 3 physical machines left to take down (1 is probably going to stick around for quite a while, unfortunately), and that means I've pared down the server closet enough to allow me to move the new hardware in.
The new hardware is quite cutting-edge, with the VM's running in Hyper-V. I've been quite happy these days with our development environment. We've got immediate building going on through TeamCity and NAnt, which allow true Continuous Integration. One of my employees has created the nightly deployment script, and I've just added in another more stable build that's also triggered through TeamCity.
If there's one thing I've learned lately, after upgrading a few home PC's, it's that getting your environment back to the way it was prior to the hardware upgrade is never fun. If you're a developer, there are a specific set of tools which you are used to using. If you are a professional and spend 8-12 hours a day in Visual Studio, with a certain source control engine, certain code tools, and a certain color scheme, suddenly being without them can be quite jarring.
That's why I feel it's best to virtualize your development environment. Install all the tools you need, and you'll have a portable pc that can travel with you. When you replace your host, the guest can just be copied right over! The best thing is that you can back up the virtual pc & it will only contain the software used in a development context. You can even RDP into the development virtual PC to be "in" the machine.
So I'm completing setting a virtual machine up now. Here's my environment:
1.5 gb ram, virtual machine (Microsoft Virtual Server).
Vista Enterprise Edition (Wanted to make sure I developed under least privilege, and got used to it)
Microsoft Visual Studio 2008 Professional
JetBrains Resharper (Code Refactoring / Usability plugin for studio -- a MUST HAVE!)
JetBrains dotTrace (Performance Profiling)
NUnit (Runs unit tests)
TortoiseSVN (Shell client for my VisualSVN subversion server)
VisualSVN Studio Plugin (Connects Studio to my VisualSVN subversion server)
TeamPrise Explorer (A free TFS connector. Used to publish my open source software on CodePlex)
NCover and NCoverExplorer (Unit Test Coverage tools)
TestDriven.NET (Unit Test Runner plugin for NUnit for Visual Studio)
NUnit is open source and free to use, as are VisualSVN server and TortoiseSVN.
TestDriven.NET, NCover, and TeamPrise were all provided for free for open source products. I'd like to thank those publishers again for supporting the community!