railway

Improve Your Work Environment

TL;DR

Good equipment provides increased productivity, motivation and health for a comparatively low fixed investment every year or two. If you’re a freelancer, get better equipment right now – if you’re an employee, talk to your boss and reason with them in terms of how much more money you could make them or how much money they can save by providing you with better equipment. And for your next career move: Check out your future work environment before you sign the contract: If the development team is seated in dark basement rooms in front of a 15 inch CRT, chances are you don’t want to work for that particular company – no matter how great it all sounds on paper.

Background

I read a chapter titled “Invest in a Good Environment” in The Developer’s Code (it’s awesome, buy it!) today which got me thinking about this topic.

As a freelancer, I get to see lots of people work and, obviously, I get to see lots of work environments – some good, some not so much. I can’t, for the life of me, figure out how one can possibly justify not to create a work environment for their programmers that is perfect (or at least tolerable).

The Usual Suspects

Let’s start with the workhorse itself: the computer. I’ve seen (and been told about) talented people hacking away on their outdated, underpowered Dell/IBM/You Name It laptops or desktops. You know, single core processors, 1-2 GBs of RAM etc. Booting takes ages. So does compiling or – in the case of Rails – starting the server, running the tests etc. You can get 16 GB of RAM for less than $100 today or a new decent system for a couple hundred more.

Next: Screens. Big-ass screens are fucking cheap these days. No, I’m serious: If you’re not doing design work where you need 100% authentic colors at all viewing angels, a good-quality TN+ display will be just fine. You can get a 27 inch screen starting at just below $300 (I recently bought one myself). Smaller displays aren’t that much cheaper – so why would you buy them?

Also: Keyboards. If you’re programming, chances are you spend a good deal of your work day typing. A decent keyboard is an absolute must. I prefer wireless keyboards because I can move them around without knocking things over or worrying about cord length. If you easily get sore wrists or shoulder pains, get a real ergonomic keyboard – I hear Kinesis make great ones.

Desks. You should have a big desk. Not so much for filling it up with piles of chunk or that big ass screen I’ve mentioned. It’s more about having enough space that you can, if you want or need to, look something up in a book, start scribbling or pair program right away without having to push things aside first. Big desks are easier to keep in a usable, clean(ish) state.

Last but not least: Chairs. You sit all day long. And if you’re like me, you’re not taking nearly enough breaks and you’re getting not nearly enough exercise. You owe it to your body to at least rest comfortably during those long hours you work.

Why You (and/or Your Boss) Should Care

Why am I saying all this? If you’re a freelancer, you should just spend some money on decent equipment and if you’re employed you should get your company to do so.

Why? Well, equipment costs are usually low fixed costs, especially compared to what they have to pay you for your work. If a company pays that extra $100 for a bigger/better screen, your increased productivity (and probably motivation) will make up for that in a few weeks or even days.

Decent computers reduce wait time – that is, time you spend waiting for those tests to run, that page to re-render, this debugging tool to start up. If your test suite runs in 5 rather than 10 minutes, chances are you’ll save a few hours per week. That’s more than a hundred hours per year. Take your hourly rate or salary and multiply that by 100 – that’s how much money you’re not making (if you’re a freelancer) or that you cost your company extra without being productive (if you’re employed). If that money argument isn’t good enough, I don’t know what is.

Big screens are good for viewing things side by side or on top of each other. Think about it: How often do you look at a stack trace, figure out that the error is on line 102, switch to your editor and then switch back just to double check that it really is on line 102? Or you’re not 100% focused and forget the line number while switching. With a big screen, you can just go left/right or up/down – no context switch, no remembering/forgetting things – everything’s just there. Or if you’re doing HTML: Seeing the code and the result side by side can be a huge time saver. If you can handle it, two or three displays can be beneficial as well – me, I find multiple displays irritating and prefer one big screen instead.

Keyboards are so damn cheap that it feels hideous to even mention them. Programmers aren’t two-finger-typing phone operators – we touch-type up to several 100 keys per minute. Why would one want to be slowed down by something that costs less than an average dinner for two or – let’s face it – that stupid phone you have on your desk but never use anyway? The same goes for desks, actually.

And the chairs: Sure, good office chairs can be a lot more expensive than the above-mentioned screens. But what’s more expensive: Getting decent chairs or losing part of your workforce in their thirties or forties because they have to undergo multiple weeks of physical therapy?

General side note for all of the above: Companies not permitting their employees to bring their own (better) equipment because of some compliance concerns and other business pseudo-bullshit are just about as ridiculous – maybe even more.

Invest in your own health, motivation and productivity and/or make your company do so. It will pay off for everyone.