In a very recent post, I described a number of Insanely Essential Utilities for developers. It occurs to me that I put the cart before the horse, and prior to installing any of that, you need a development environment that is going to make you maximally productive.
This is not very difficult; there is no rocket science involved. Such an environment includes the following aspects:
- A properly equipped PC
- At least 2 full size high quality monitors (at least one of which has touch)
- A high speed network connection
- A good ergonomic chair, keyboard and mouse
- A good developer laptop
If you are serious about professional software development you cannot afford to be overly frugal with any of these requirements. There are many additional things you’ll want in your office (a good high speed printer comes to mind) but these are critical.
For most of the developers I know, who work at home and need to make contact with others frequently, I’d include a good headset and microphone. If you are planning a podcast or to create videos, then of course, these become essential.
Desktop
I can be brief. It doesn’t matter what kind of desktop you buy as long as it meets certain criteria:
- It must be reasonably fast, with plenty of connection points for monitors, USB (3) , network, etc.
- It must have one or more SSD drives. They must be SSD, no question. SSDs speed up your work more than any other feature of your computer, by orders of magnitude, as far as I can tell. Get less memory if you must, but get at least one, and preferably two SSD drives. You can supplement with USB external drives if you need more storage, but your operating system and your development system must be installed on SSDs.
- At least 8 and preferably 16 GB of RAM (or more). You do not want to mess around with running out of RAM when you have a couple development environments open along with a few related programs. You can bring your work to its knees by running in too little memory.
- Reliability. Buy a brand that isn’t likely to put you out of work for a few days while it is fixed. If you can, get a same day (next day?) on-site warranty.
Interestingly, those are my only requirements of the Desktop machine. After that it is a matter of aesthetics and special concerns. I was recently able to purchase a Lenovo Think Station with twin 256GB SSDs and 16 GB of RAM for under $2,000, which I consider a steal. I put the operating system and programs on the first SSD and just about everything else I care about on the other. The machine screams.
Monitors
I might argue that nothing is more important than having at least two monitors. Bigger is better (within limits). I have twin 23” monitors and that seems to work very well. I found the Acer 27” touch monitor is terrific and not terribly expensive. Last I checked it was under $600 on Amazon.
I made a mistake with the second monitor I bought something quick and cheap at Staples. Never go quick and cheap with essential tools; I’ll be swapping it out for a second Acer 27” very soon; I see I can buy one for $280 if I don’t need touch (and I don’t think I do need touch on both).
My boss has four monitors, all mounted on a single stand, with two in the vertical position and two in the horizontal. I have monitor envy. Two is plenty, but four is better; what can I say?
High Speed Network
If you work from home, you want the fastest network access your money can buy. It helps to live closer to the Central office if you have FIOS, but whatever it takes, you want at least 50MB service if you can afford it and if you can get it. Faster still is better still.
Ergonomics
You sit in your chair, typing and mousing all day long. Get it right. A good ergonomic keyboard is an inexpensive investment in avoiding Carpal Tunnel syndrome (speaking as someone who had the operation, it isn’t fun). A good mouse is a great friend. I use the Logitech K350 wave keyboard and the Microsoft arc mouse, but that is a matter of personal taste and fit.
Your chair will be the hard part. Getting a good chair is neither easy nor inexpensive, but they last a long time and they are critical to avoiding back problems. I bought a chair from Relax the Back 10 years ago, and it has been terrific. I need a new one and will probably go back to them with a budget of about $500 and see what I can find. I may or may not be able to find what I need for that much money.
Laptop
Good luck with the laptop; it isn’t that they are hard to find, it is that there are so many good choices. I will say that I and most of my buddies have all settled on the same laptop after much study, but that research was done a year ago and things change fast. In any case, the folks I know who use a laptop a lot have all seemingly settled on the Lenovo Carbon X1 Touch with a 240Gig SSD and 8 GB of RAM. We just bought one for my wife for under $1500, which is still pricy but the laptop is a workhorse. Amazon sells it with an optional 3 year spills and drops warranty, which seemed worthwhile.
I’ll go back to software utilities in the next installment, but I felt remiss not covering the essential hardware.
Anyone who spends a great deal of time on a computer has good reason to seriously invest in their environment.
Personally:
Two Dell U3014’s changed the way I see. (~$2200)
A Herman Miller Embody changed the way I sit. (~$1400)
Three 5500K CCFLs made my environment beautiful. (~$20?)
A Lamy Al-Star fountain pen changed the way I take notes. (~$50 w/ ink)
Those monitors were pricey, but $2000 wouldn’t be an unreasonable amount to spend on a development machine. The difference: the monitors will last far longer than any machine purchased today. When their extended warranties expire in five years, I’m sure my parents and my wife will each appreciate one. Until then, if anything goes wrong, Dell will overnight me a new monitor.
The chair on the other hand, will be mine for its entire life – not only does it have a 12 year standard warranty, there is no reason it shouldn’t last two decades or more. When you look at the amortized cost of decent gear, the decision is obvious. You can spend $400 every 5 years ($80/year) on new chairs when the old ones wear out, or you can spend $1400 every 20 ($70/year) and have a chair that you can fully enjoy.
This blog was perfectly timed, I have the uneveniable task of recommending a desktop configuration for our small group of developers. How did I get this job? I think they just picked a name out of a hat since none of the developer’s have ever done this. I was doing research over this past weekend and one of the blog’s I looked at was Mark Rendle’s from August 2013 (and here he is leaving a comment, talk about serendipity). The system we currently have is exactly the same one as our Customer Service Representatives, for some reason it hasn’t occurred to them we are doing different work… go figure. I beleive they have finally gotten tired of all the cursing, especially from me. So I am looking for a system that when you have VS 2010, Sql Server Management Studio, Toad for Oracle and Microsoft Outlook, among others, the machine doesn’t grind to a screeching halt or we don’t have to close one application to open another one. Although Mark’s system seems lovely it might be overkill for us and as he describes it, it was 2000 pounds which would probably $3,500.00 which I can’t see them spending. One recommendation was to virtualize our desktop and use Vmware to access, does anyone know the pros or cons in doing this? This information is great and I will probably recommend going with something like this configuration especially the chair, since a lot of our developers have back issues, not sure if it is the chair or the stress though, probably both
Good tips. I recently spent a hefty chunk of cash on a new desktop PC since I’m now working from home more often than not, and it’s been worth every penny.
The only thing I’d quibble on is the monitors. I have one 28″ (which I love; it’s a 4:3 ratio which is great for coding) and one 27″ widescreen, and I’m finding it less than ideal. When I can afford to spend some more money, I’ll keep the 28″ but invest in two smaller screens, maybe 23″, which will go in portrait orientation either side of the main one. As it is, neither screen is directly in line with the keyboard, which causes neck strain.