Whenever I have the opportunity to visit other companies or talk to other developers, I am always amazed at the number of developers using machines 3+ years old.  I know of one developer who was not only using an older machine, but that machine only had one GB of RAM!  He was using Visual Studio 2008, SQL server management studio, and ReSharper among other products, and was waiting on his machine more than he was coding.

One of the things I'm proud of here is that our development environment and equipment isn't a hindrance to our productivity.  Developers receive new machines every two years, work on laptops equipped with docking stations with dual 20" external monitors, and have wireless keyboards and mice.  I've been asked a few questions about this setup before:

  1. Why do developers need new, fast machines so often?
  2. Why do your developers use laptops?
  3. Why do your developers need dual monitors?

I have a feeling there are other managers and developers out there who might need help justifying some new machines and better equipment.  I have found a few blog posts on the topic and, in an effort to help, I have bulleted some of the reasons that I think justify this investment.

Why Fast Machines Replaced Often?

  • Developers run a lot of sophisticated software that takes up disk space and memory
    • Visual Studio
    • ReSharper or other plugins
    • Work Item Tracking software
    • Local web hosting environments
    • Database management tools
    • Tracing software
    • Virtualization software
    • Etc.
  • They need to run services locally (Web Server, CMS, DB, etc) and these services hog memory
  • They run all kinds of non-standard applications to not only facilitate software development, testing, performance tuning, etc., but also they install a lot of software in an effort to research new technologies
  • They often need to run virtual machines to test older browsers and computer configurations.  VM's consume a lot of resources
  • They need to compile large amounts of code quickly.  Paying a developer to wait for a machine to chug away at code is not a good use of resources
  • They more quickly developers can compile and test code, the more quickly they can fix it.  If their machines are still responsive while performing a complex query, they can still do other things as opposed to twiddling their thumbs
  • Developers won't get frustrated by the hardware and can stay in the "zone" where they are most effective

Why Laptops?

  • Part of my team is located in Houston, TX so when traveling it makes sense to have your personal machine with you
  • I'm a big believer in collaboration and pair programming.  Being able to move around and team up with other developers allows for greater flexibility and productivity from the team
  • Facilitates developer training efforts since they can take their machines to training sessions and conferences
  • Developers often have great ideas outside of business hours.  Having a machine with them allows them to harness that idea when the moment is right

Why Dual Monitors?

For this one, I'll simply refer you to Darrell Norton's excellent post on the topic.

I strongly believe that there is a direct relationship between the caliber of equipment your developers use to their productivity and job enjoyment.  These two things are critical to team and company success so go ahead, invest a little money in the team.  You're sure to reap the rewards.