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:
- A new version of a Microsoft product will always require more resources than
the previous version.
- 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?