Dec 20, 2011
You want to make your developers happy and want them to give their best to write this awesome piece of software you want to launch? Here is a small list of stuff that make developers happy:

1 - A fast computer
Developers do not like to wait for their code to compile or for applications to start. So buy a really fast computer. Buy all the memory you can fit into the computer and also buy a big SSD. If a developer has to wait just a few seconds he/she will fire up a browser and will go to her news reader, Digg, Y-Combinators Hacker News, Tumblr or some other site and will spend the next ten to fifteen minutes looking at cats that look like Hitler instead of doing some actual work.
2 - Plenty of screen real estate
Developers need at least two monitors. One for their code and the other one for log files, skype, chat-window to chat with other developers and so on. Monitors are cheap so buy at least two of them.
3 - A lot of power outlets (not in picture)
Most of the developers love gadgets. So you need power outlets for: the main computer, the test mac, the old fileserver, the computer that is just there to try the newest and hippest linux distribution, the two monitors, the kvm, the usb hub, the charger for the laser pointer, chargers for at least three mobile phones or tablets. So you sould plan at least fifteen power outlets per developer.
4 - An overview on what has do be done
Most developers are passionate about their work. They love to write code. So it is essential that they know what they should be doing. If a developer has not an exact plan of what he/she will have to do the next few days it will happen, that he/she will code a feature, that was never planed but was fun to code. Having a feeling for all open tasks is vital to efficient progress. (We use SCRUM to manage our projects, which is the first project management system i have used that is actually working well. But this is another story)
5 - Silence
This is probably the most important thing a developer needs! If a developer is working on some code and is not distracted he/she will get into the flow, where everything around vanishes and the complete focus is on the problem to solve. If you distract the developer with a some random question it would take yourself just 2 minutes to figure out, the flow is gone. It will take about fifteen to twenty minutes for the developer to get back into the flow. This is just wasting time and money.
If you have the space and money, put every developer into his/her own office with a door that can be closed. Right now we have not enough place to have single offices, so we went with a much cheaper solution: Ear plugs! In our office everyone is in the same room. The designers, the developers, the sales and management guys. When a developer plugs in the ear plugs he must not be distracted. Imagine them as plugged into the Matrix and everyone (also the bosses) have to wait until they are back. Ok, if the Live System is not reachable you can distract the developer. But everything else has to wait. It will not take longer than an hour before the developer will unplug himself to get another coffee/drink or just needs to relax for a few seconds.
6 - Hardware for testing on other platforms
If you test your software on multiple platforms (if you code for the web this is probably the case) put this device on the desk of the developer: be it an old laptop running windows vista, be at the newest iPad you are aiming for. It does not need to be the fastest version/machine, but it needs to be in the developers reach. If you have just one test computer for everyone somewhere in the office the developer will be annoyed by standing up and going to this computer to test stuff. He or she will just assume that it is working. And you do not want that!
7 - KVM Switch
This is for controlling multiple computers with one mouse/keyboard/monitor. This is really handy. It avoids that you have a lot of mice and keyboards on your desk or have to plug and unplug stuff all the time. Also make sure you get a real KVM switch and not only those cable things, they are just useless.
8 - Something nice (optional)
Maybe some plants to make the place more cozy. The developer should feel comfortable like at home.
(by anton pirker)