If you are responsible for the equipment of your development team, you should read this. If you’re not, read it anyway and hand it to your boss.
Chances are that if you ever talked to a few software developers, you heard them complain about the work equipment. Have you ever heard a concert pianist complain about his low quality piano? I haven’t. Could you imagine an orchestra director replacing their concert piano with keyboards to save costs? That guy would be considered nuts, by all accounts! But why is the same not applying to the software development world?
Excuse #1: IT maintenance
I have heard this from many IT departments in larger companies: The management and maintenance issues related to heterogeneous hardware landscapes is very complicated. Thus, handing your 5000 employees a Thinkpad laptop will make any maintenance jobs for your IT department a lot easier. This may make their life easier but I’ll show below how the cost is significantly higher than they may first appear.
Excuse #2: Portability
Many companies offer employees homogenous hardware to implement a certain, usually well-meaning policy. Often, one of these is related to portability: When applied, in theory, every employee should be able to switch his workplace for a day and carry his work device into a meeting. In this case, you will receive a laptop as your primary work device. But not everybody is walking around all the time.
Excuse #3: Eat your own dog food (test on target devices)
Sometimes, handing junior developers powerful machines can backfire. If you are building a product, you should be testing your product on actual target user devices. However testing is not developing. If you are doing a mobile website, don’t have your developers code on an Android device (or they will quit) – have them code on a powerful machine, but have at their desk a couple of linked devices that are reloaded when they refresh the page. There are numerous tools available to help out.
The real cost of homogenous hardware
The ugly truth is that the advantages above never outweigh the disadvantages.
Give your web designers the same shitty Dell monitor then everybody else? Probably not the best idea. Homogenous equipment means that everybody suffers. Road warriors who travel often, such as international marking departments, would benefit from an ultra-light solution. Instead of the bulky ThinkPad, give them a Macbook Air! Never give iOS software engineers a laptop (except, maybe, the Macbook Pro Retina). They need a workstation that can tame the beast that is XCode. They need to compile fast, and often. Sometimes, it really is a simple calculation. Have your devs estimate the time they wait per day. That is the money you are losing.
In some cases, you could argue that a developer does not actually need the power horse she thinks she needs. Why the heck is your dev asking for a Mac Pro when all he does is text editing and reloading a browser? You might be correct, but you are still so wrong. You unfortunately don’t take the psychology into account. The worst thing for motivation is when they look around at their friends at another company and see how much better they have it, regardless of whether they would actually use those CPU cycles to perfect efficiency. Give your developers the hardware they deserve, not the hardware they need. Better yet, if you want to be really smart: Give your developers the ultimate equipment they need to feel like an engineering genius (if you think they have the potential to become one). If you do, you will be greatly rewarded.
Even though there might not be a technical benefit, if you get them the machine of their dreams, they will feel empowered to do everything they’re possibly capable of and more. For an engineer, few things are more satisfying than a computer so powerful that she doesn’t feel slowed down and instead, expect more to explore, learn and do. It’s like your capacity of your brain just expanded. Starting to sound over the top? It is not. I speak out of experience: Same thing happened when I bought my recent iMac. I never had that feeling with any computer I was ever given by a company.
Ultimately, you are loosing money, time and quality.
Invest early for brighter returns
All hope is not lost. Many of today’s startups operate differently, and if I recall correctly, there are a few exceptions with bigger companies as well (I *think* Amazon, but I might be entirely wrong). A lot of these companies are catching on and are advertising the quality of their work environment (and computer) in an effort to lure away engineers who are dissatisfied with shitty equipment.
So how to do it right? Easy. Show your newly hired engineer their new empty desk. Tell her to go shopping her own equipment. Have them buy an awesome, comfortable chair too. Don’t set limits if you can afford it (of course, have a look at the final bill before the order, and if it’s too much to handle, compromise. The beauty is that hardware for software developers is usually a lot cheaper than hardware in other professions. I don’t think most equipment will exceed 10k in total.). She wants three Thunderbolt displays and a Mac Pro? Sure. Three laptops instead? Whatever works. No computer but a fancy old-school typewriter? You got it. Don’t just do this at the time of hire. Do the same with regular upgrades. I recommend every two years, but again, it is very dependent on the situation.
If you are a developer and are reading this, make sure you know what you’re getting into. It’s easy to forget and only negotiate the salary before waking up in front of a crappy computer on your first day. Get to know your options in advance, and demand to be equipped properly.