My office is in dire need of new workstations. They've come to me as the "kid who plays games" so I'm pretty in touch with whats new and hot, but not necessarily whats ideal for workstation class systems.

We are on a budget so we can't be throwing money at everything (especially in these economic times) but we're running into long delays just because of our workstation speeds. Money has to be spent.

So a few questions:

1.) Which MSFT based OS should we use?

We're a Windows dev shop so we're staying on Windows, but we need 64 bits because we're running out of memory. link.exe is eating almost 1GB of ram, coupled with VS2008, expression blend, browsers, 3GB is gone quickly. Vista 64 bit? Server 2008?

2.) Which CPU?

We have distributed builds done by Incredibuild, so I guess more cores won't necessarily help. Should we just get the fastest Dual core? Or should we get a slower quad? I would think Intel is still the best right? No offense to AMD, but it's just not as good right?

3.) Chipset/bus speed?

Would a P5Q chipset be good enough? It runs at 1333mhz to the memory so with compatible memory that would help out immensely with link times right?

4.) Is a Raptor HDD worth it?

We have insane swapping problems right now with only 2GB of ram. howerver going to 4GB or more would probably fix that I believe. Even then, is it worth the extra money for the speed gained in a raptor?

EDIT: We all have dual monitors of varying size so we're okay on that front.

That's all I got for now, but if you all can suggest anything feel free to add it.

Thanks stackoverflow!

+9  A: 

A cold Pepsi dispenser would get me excited.

oh, and dual monitors

Neil N
I'm actually saddened that this is my highest rated answer ever on Stack Overflow
Neil N
I think this computer beer dispenser would help get through the stressful times at work better:
Don't be sad, you've touched a nerve. I've been asking for a mini fridge near my desk for months. :)
lol and this actually got 5 downvotes too. Man people around here up some uptight mofo's
Neil N
What do you need 2 monitors for? How can you get anything done with fewer that 4!
+1 but I'm not sure if I'd rather have pepsi than coke
Tim Matthews
Coke, no Pepsi. Cheese burger, cheese burger... (am i dating myself?)
Ya, you're dated. lol those were funny skits
Neil N
+1  A: 

lots of thoughts on this from Jeff himself:


I'd appreciate some kind of drive to produce vibrations for a massaging accessoire.

hmm, you might be on to something. An office chair that doubles as a large external drive, or NAS. Produces heat and mild vibrations.
Neil N


For my DEV machine I'm using Vista x64 with a lowend Intel Core 2 Duo CPU. IMHO, whichever Intel Core 2 Duo you buy today is going to be enough.

Memory - I'd go for at least 4GB. Make sure you use 2 DIMMs of the same kind to take advantage of Dual Channel, and to leave the other two slots for later expansion.

Hard disk - just go with any 7200RPM drive. If you use virtual machines, I highly recommend putting two physical disks and running the VMs from the non-system drive.

Chipset - can't really help you there. I suggest looking in hardware forums to see what you're planning on buying doesn't have any bugs.

Hope this helps,

Asaf R
+7  A: 

My $.02 as a developer...these suggestions aren't for the "best" system, but more the "best-for-the-money" system.

I find that you can get more bang for your buck with not-the-top-end processor. Sure, developers use CPU...but most of the time they're coding...not compiling.

Decent memory is key. Windows is a hog. IDEs are hogs. Memory is cheap...go with more memory rather than less. Trying to optimize your swap by getting a faster hard drive is a losing situation...get rid of the swapping problem by getting memory.

Screen real estate can also be a very good thing. Large, decent quality monitors are a very good thing. Some people prefer dual monitor setups, and you can get a lot of screen space by using two smaller monitors.

+2  A: 

If you don't already have them, large widescreen monitors (>24"), dual monitors, or (ideally) dual big widescreen monitors will probably increase developer productivity more than any of the upgrades you listed above.

Chris Upchurch
+6  A: 

A good chair and two monitors and I'm mostly happy. I'd kill for a door, but that's not going to happen.

Chris Ballance
+3  A: 

See the parts list for Scott Hanselman's Ultimate Developer Rig which Jeff Atwood finally built. (EDIT: this article is in fact quite old - time flies).

I found that besides having enough memory, a fast hard disk (or even a RAID system) makes builds a lot faster.

Ultimate? Pshaw. Anything you could call Ultimate would have three Velociraptors in RAID 0.
+4  A: 
  1. Windows 7 Ultimate x64. I use it, I love it. This is what Vista should have been.
  2. Q6600 Kentsfield / Quad Core should do fine. A measly couple hundred bucks. We're moving to a more parallel-based computing model with more multithreading, so more processors is better than a faster one. I've been on a quad core for about a year; this is the only computer I've ever met that could keep up with me. I no longer need multiple computers as a result.
  3. Should be fine.
  4. Worth it, if what you're developing does lots of disk I/O. Just beware the differences between dev machines and your target Prod environment.

Multi monitors is a must have. Two 17", at a minimum; optimally three 21".

See also the Programmers' Bill of Rights.

Edit: 2GB isn't enough; go for 4 at least. My ultimate rig has 8GB and all the stuff above... Though I've been told my 6-monitor setup may be pushing it a bit.

Edit2: Added link to monitors.

I'd be a little wary about using Windows 7 on your main workstation unless you have a dual-boot system or a backup machine. Just a bit early to rely on for me :-)
You have 6 monitors? Wow...
Win7 beta is more stable than Vista RTM. As a beta tester I have taxed this machine - believe me - and it just keeps on ticking. Of course it's also my personal main rig.
You mean more cores, not more processors :)
John T
Windows doesn't know the difference. Not to the point that it would matter, anyhow.
+1  A: 

I develop in VS2008 using only a 2GB laptop and I usually have at least 5 different things open, some of which eat a decent amount of system resources (TOAD for Oracle and/or SQL Server Management Studio, or mulitple instances of VS) others not so much (Windows Explorer, IE, notepad etc.)

With this slightly anemic system I don't see too terrible delays.

But to your questions I'd stay with a 32-bit OS for now since most of the users will have that and it's hard enough to make sure your code is compliant with different browsers, much less different architectures. That being said we will be switching to Server 2008 when necessary to have an environment close to that of the production machine.

In either case get them all set up with 4GB even if they can only use 3.5GB due to 32-bit simply because RAM is the cheapest most effective solution to speeding things up.

I don't how much better dual vs. quad is but I think fast duals would be sufficient to help stick within a good budget.

As far as the hard drives there is no way I would go with Raptor's. I don't even use them on my gaming machine much less for a work machine. They are all hype and not worth the price, not to mention the loss of disk space.

So that's all I've got for you, take it or leave it. :)


edit: And yes Monitors!! Please that is probably the biggest step up in productivity is at least 2 if not three monitors. I think 19" is sufficient but if you can afford any extra here is where you should do it.

Jeff Keslinke
+1  A: 

I recently bought a Dell with a Corei7 processor, 640GB and 3GB Ram using Vista 64bit.

Very quick machine indeed and a joy to work with - cost was 700 sterling which is insane.

The Core i7's are quad core machines and have hyperthreading enabled so give the appearance of 8 processors. DDR3 is still a little pricy so I'll wait a few months and then put in another 6GB.

The extra cores are useful: you don't just get the benefits running extra threads, they help when you run lots of processes.

+1  A: 

1) For the OS, you should probably use Vista 64. The server OS would only make sense if you're doing SharePoint Development.

2) For the processor, you should get a quad, especially if you intend to run Virtual Machines.

4) For the HD, consider using multiple slower hard drives instead of one big fast one, which might have a lower MTBF rating. If you RAID it properly, it should run even faster.

Ryan Shripat
+2  A: 

A really big display.

+2  A: 

Don't forget noise as well, nothing more annoying than a high pitched fan that won't slow down.

+1  A: 

Duel monitors or one really large one. Lots of ram at least 4 gig, 64 bit vista. I wouldn't run server OS on the metal; maybe in a VM for testing. Also I don't think a raptor HDD is worth the money.

Tom Alderman

On the subject of monitors, I know a guy who's got three wide screens, one in the middle and then two rotated sideways on either side, he says it works really well because of the large amount of code visible on these monitors without the need for scrolling.

No downvote because it a matter of opinion but ..... I tried this and it *sucked*. I had a 24 wide with a 17 standard (Samsung SyncMaster 740B) turned sideways and the 17 was unusable. Don't know if it was the 'viewing angle' or what but I only lasted 3 days and put it back to horizontal.
David HAust
I have three monitors and it is beautiful. Code on a pivoted monitor, docs on another pivoted monitor and variable content on a non-pivoted, usually the app, or a second app of some sort like a diff. Love it. Very productive; no window dancing.

1.) Which MSFT based OS should we use?

It depends whether your dev machine is also your test machine. If it is, I'd stay in the 32 bit world. We run Vista Business 32 bit on 4G machines, and I can run 2 copies of VS2008 and other apps besides, no problem. If your machine is pure dev, and also if you have to run a local DB engine, then 64 bits make more sense. I wouldn't waste money on the server OS unless you're doing server-specific dev work.

2.) Which CPU?

Best bang for the buck is an Intel 8500 dual core. If you do lots of threaded stuff it may be worth getting quad, but we didn't bother at work, and I didn't bother at home.

3.) Chipset/bus speed?

I've yet to see these make a significant difference on dev machines.

4.) Is a Raptor HDD worth it?

IMHO, no. If disk I/O is a big deal, then go for striping. We've never bothered.

But in terms of return on capital, by far the biggest is multi-monitor. It is MUCH easier to work with multi-monitor, especially with a screen-hungry IDE like Visual Studio. All our machines were specced with dual-20in monitors and a Quadro video card. I run three at work now (20/20/19), Visual studio, Delphi and Sourcesafe all running, and can all be maximised.

Be aware though, that although Quadro's are great for multi-mon, they suck for gaming, so if you're planning a LAN deathmatch party, look elsewhere :-)

Bob Moore

It's amazing how little you need from the current range of modern hardware. I'm using a Lenovo T61 these days, and it does very well. Of course, if I was working on bigger software, I'd wish for more powerful hardware, and would switch to a desktop.

These days dual-core is a good idea, but I have a hard time justifying quad-core. It depends on your budget.

Absolutely maximize your RAM for your motherboard.

Bus speed is not as important as most other factors.

Hard drive speed matters a lot. A Velociraptor is a good idea, or one of Intel's fast SSDs.

Jay Bazuzi
+1  A: 

We're a Windows dev shop so we're staying on Windows, but we need 64 bits because we're running out of memory. link.exe is eating almost 1GB of ram, coupled with VS2008, expression blend, browsers, 3GB is gone quickly. Vista 64 bit? Server 2008?

On win32 each process is limited to a 4G address space, but with PAE, the system can now address 64G in total. The OS simply pages in and out sections of memory at each context switch so applications can access their 4G chunk.

This talks about it.

You don't need 64-bit just to get the system to address a lot of RAM. You need 64-bit if you want a single application to address a lot of RAM.

Adam Hawes
+1  A: 

dual monitor that gives 1600 or more resolution.
nice keyboard will be fantasic.

I don't have any preference for CPU, HDD, or OS.

Jace Jung
+1  A: 

I'm currently running dual 22" Acer Widescreen LCD monitors, an Intel E6750 (1333Mhz bus), 8GB of DDR2 memory, an 8800GT, Windows Server 2008 Enterprise (x64), and the Cyborg series keyboard and mouse from Saitek.

I have to say its been my best setup yet for development, and I plan on using this machine until it starts coughing dust out the vents at me.

I have to say though, loads of ram and the huge dual monitors is what will drastically boost your productivity. Oh, and if you have or get dual monitors, don't forget to purchase Ultramon so you have a taskbar on both of them!

PS. I've been using Server '08 for a long time now and my system has had '0' crashes to date. Very stable, which is absolutely wonderful for development.

David Anderson
+1  A: 
  1. While I agree that you should be on a 64 bit OS to take advantage of extra memory, do realize that Visual Studio is still a 32bit app.

  2. On my personal machine at home, which I use for consulting, I do not care about "bang for the buck," so I run an i7 which is awesome. If bang for the buck is a concern however, I would not dismiss AMD as "inferior." The latest Phenom IIs will give Core 2 Quads a run for their money, and they favor quite favorably against most Core 2 Duos I believe. However...

  3. For the type of job most of developers do, CPU isn't going to make a whole lot of difference (once you go from single core to dual core, you don't see much gains, unless you're doing something real specialized or you make heavy use of VMs); however, compilation is very I/O intense, and for this reason getting a raptor is probably the best investment you can make, outside of extra RAM, IMO.

  4. [Cue the negative ratings] If you are building this machine today than I recommend Vista64. Whaaaaaat? Vista?! Like it or not, the Vista model is the direction Microsoft is going in. XP is not coming back. If you do not develop with the Vista security model in mind, you're just setting yourself up for failure. The best way to avoid this is by simply developing on Vista.

Giovanni Galbo
+1  A: 

Here's a preliminary list:

Antec Sonata III Black ATX 16IN Mid Tower Quiet Case 3X5.25 2X3.5 4X3.5IN 500W 120MM Fan $147.99

ASUS P5QL Pro ATX LGA775 P43 DDR2 1PCI-E16 2PCI-E1 3PCI SATA2 Sound GBLAN Motherboard $108.99

Sapphire Radeon HD 4550 600MHZ 512MB 800MHZ DDR3 PCI-E DVI VGA HDTV Out Fanless $65.99

Western Digital Caviar Black 640GB 7200RPM 32MB Dual Proc 3.5IN SATA Hard Drive OEM 5YR Mfg Warranty $88.98

Corsair XMS2 TWIN2X4096-6400C5 4GB DDR2 2X2GB PC2-6400 DDR2-800 CL 5-5-5-18 240PIN Memory $74.99

Intel Core 2 Duo E8400 Dual Core Processor LGA775 3.0GHZ Wolfdale 1333FSB 6MB Retail $224.99

Plus Vista 64bit which we get from our MSDN subscription (I think).

Grand total: $711 Canadian.

We'll likely scavange what we have around the office too. Extra hard drives, and optical drives (which new are $25) and so on. I think that's pretty decent, yeah?

Built this machine exactly but with two 4GB RAM kits for 8GB total. It's fast. VERY fast. And was just shy of $800.

It's quite a challenge keeping up with what's current in computer hardware. Isn't there as site somewhere which focuses on something like 'this months fastest rig'? It wouldn't need to be a setup that was actually tested every time, but a configuration based on specs and individual component reviews alone in order to keep up to date.


Just for your information, you do not need a 64-bit OS to use more than 4GB of ram. The limitation is only on the size of a pointer, and each process has its own memory space. So basically, a single process can only use about 3 GB of ram, but 10 processes could use 30 GB of ram together.

If he's sticking with Windows x86, he'll need to use either Windows 2003 Enterprise Edition or Windows 2008 Enterprise Edition. XP Professional (and I think 2003 Standard and 2008 Standard) don't support PAE, so they're limited to 4GB physical RAM. I'd just get Vista or 2008 x64.
Roger Lipscombe

As far as your insane swapping problem goes, one way to alleviate (not eliminate) it is to add a second hard drive that will only host the page file. By doing so, your primary hard drive will never have to worry about swapping. The drive dedicated for the page file doesn't have to be top of the line either to be effective, so it shouldn't break the bank.

Aaron Daniels