The Requirements Game

I was recently thinking - as I often do - about upgrading my development computer. One of the things that I considered during this exercise was the published requirements for the next round of Microsoft software. Alas, it seems like one thing is constant here: requirements are designed to sell products, not to help people actually run them.

For example, the current beta of Visual Studio 2005 calls for a 1GHz CPU and recommends 256MB of RAM, though officially it's supported on 128MB. For a display, VS 2005 requires 800x600 with 256 colors and recommends 1024x768 with 16-bit color. SQL Server 2005 calls for a bit more: 550MHz CPU required, 1 GHz recommended, with memory requirements of 256MB required or 512MB recommended. SQL Server's readme also notes that the memory requirements don't include memory for the OS, a fact that the Visual Studio requirements manage to leave out.

Well, you know - this is just wrong. I think I can safely assert two things about Microsoft's stated product requirements:

  1. A new version of a Microsoft product will always require more resources than the previous version.
  2. The stated requirements are always hilariously, thigh-slappingly, rolling-on-the-floor low.

Let's concentrate on Visual Studio here, since my audience is primarily developers. Now, there may be a few of you out there condemned to run VS .NET 2003 on a 128MB box with an 800x600x256 display. If so, I feel very, very sorry for you. I personally run on a box with 2GB of RAM and a 1900x1440 display (though note that I also run a lot of other applications on the box, including resource hogs like Microsoft Outlook 2003) and sometimes it's still too slow and too hard to find screen real estate for everything in that complex IDE. I've got an Athlon 2100 CPU and recently upgraded to SATA hard drives, though alas I was unable to afford the real screamers.

Heck, even my toddler's computer has more RAM and a better screen than developers are supposed to be able to limp along with here.

Of course, it's easy to understand why Microsoft lowballs the requirements for all its products: for those people who actually take the time to read the requirements, this makes the price seem more reasonable. "Oh, I don't need to buy a new PC, this will run just fine on the one that I already own." Whether it's Windows, or Office, or Visual Studio, Microsoft has a vested interest in convincing people that no hardware upgrades are required.

Alas, anyone who's been through this cycle a few times knows that this is nonsense. Many of us limp along with barely-adequate machines for the software we're currently running, and then are forced to upgrade when new versions come out. But in the absence of reasonable guidance from manufacturers, what is one to do when trying to spec out a new machine? Turn to other developers, of course.

From chatting with a few people I respect, and thinking about my own usage patterns, here's what I think I want in my next development/everyday box:

  • 3+ GHz Intel CPU (sorry AMD, I'm tired of fighting with the heat from my current box).
  • 2 GB RAM
  • 3 or more 10K RPM SATA drives in a RAID 5 configuration.
  • Dual 21" monitors, with the video card to drive them

There are lots of other bits to round that out - a good network card, a fat power supply, and so on - but I think on the whole that's a system that should hold me for a year or two. It's also considerably more than the requirements say I should have to compile applications with Visual Studio 2005 - but my time is expensive, even compared to cutting-edge hardware.

How about you? If you're a developer who's recently gone through this exercise, I'd love to hear from you. What do you find most important when kitting out a dev box? And do you even bother to read the product requirements any longer?