In this picture: My Charles Babbage mug, books: Domain Driven Design, the Ruby Programming Language, the Definitive Guide to JavaScript, my Evoluent VerticalMouse, and lots of Red Rain empties.One of my biggest pet peeves is trying to efficiently complete
development work on a slow machine. In my mind,
trying to work quickly on a slow computer is like
asking a marathon runner to wear snowshoes then demanding they WIN the marathon. What ensues, is painful for the runner, painful for all who watch, and reaching the end goal feels impossible - bottom line good equipment matters. However, many
client's overlook the relationship between
getting stuff done
and a slow machine, or they don't care, or they can't do anything about
it.
Maybe they find it thrilling (in some sick way) to watch your soul fizzle away as you spend 300 minutes a day compiling your application (or running your tests). :)In great organizations slow machines aren't an issue. According to the
The Programmer's Bill of Rights:
"Every programmer shall have a fast PC", and from the
Joel Test:
"[Organizations should] use the best tools money can buy?"
But reality is often a different beast, and in my experience you have to make the changes you want (or "be the change you want to see..." - Gandhi). I'm sure in Silicon Valley, good computers would be mandatory for most organization, but I live in Canada - we suffer through black flies, mosquitoes, 8 months of winter, and organizations with poor resources. :) Did you know that Canada's population is roughly equivalent to the population of the state of California alone!?Anyhow, I started working from home full-time this year - up to this point most
of my work has been done onsite using whatever machine the client
provided (some with outdated hardware).
My home desktop was a six year old PC that would make Frankenstein look sexy - it was a collection of old and new parts. Since, I do most of my work in
Virtual Machines (I typically have three VMs running) performance is absolutely critical. After
spending a month working on my dinosaur of a machine, it was clear I needed
a new computer.
Leave
me a comment requesting the details, and I'll happily bore you with the technical specs of my old machine including a story of where I acquired each component. :)I based my specs on
Jeff Atwood's and
Scott Hanselman's specs for the
Ultimate Developer Rig. The machine turned out to be economical, the prices have come down significantly since the initial post was published, and to top it all off, I was able to chop
shop my old machine and sell every single part through eBay and Kijiji - for a surprisingly
decent price too (who would have thought a 6 year old Sound blaster Audigy would sell for $50?).
Contrasting my setups:
| Then | Now |
| Processors | Two 32bit AMD MP 1.2GHz | Quad Core 64bit 2.4GHz |
| RAM | 3.5 GB | 8 GB |
| Monitor(s) | A single 17" | Two 22" Samsung SyncMaster 226BWs |
| Personal Pain Points | Excruciatingly painful | Occasionally painful (only Vista induced) |
Working on my new machine is enjoyable. I find myself more productive without being distracted by the frustration of a slow machine, and having dual monitors also contributes to my productivity (
Does More Than One Monitor Improve Productivity?). My favourite parts of the new setup are the monitors, the
Ergotron stand, the speed, and the
Case.
You really get what you pay for with LCD monitors, the SyncMasters are
easy on the eyes when compared to my old economic Acer, and the case is dead silent.
In the future, if I'm provided with a substandard PC, you can expect to see me hauling my new machine into the office. :)Take a look at my old desktop setup in my older post:
Something About the Cobbler's Children Having No ShoesHave you ever had to use an outdated machine as a developer? How does working on a slow machine effect your work? What are your thoughts on taking matters into your own hand (like purchasing your own computer to replace the slow one at work)? Have you ever installed additional resources in the computer you use at work?