We are designing our office right now and want to know what stuff you guys really care about or started loving in your office.
So -
What are your must-haves for a developers office? What things can't you live without?
We are designing our office right now and want to know what stuff you guys really care about or started loving in your office.
So -
What are your must-haves for a developers office? What things can't you live without?
Each dev must be able to control the lighting in his/her work space to make it comfortale for them.
Absolute must-have: comfortable chair. I'm going to be sitting in it for unspeakable amounts of time.
Really important: two monitors.
Neat stuff: corner desk, so the stuff to the right and left of the monitors is closer.
Preferable one whiteboard per developer plus large whiteboards in each meetingroom...
Thas one of the most important things for me (except maybe for large monitors, a 24" monitor, or preferable two
The most Scariest night mares for a developer are here, Of course these are the 'BIG NO's when designing an office for developers.
Place all the Monitors face towards public walkway.
Make an environment where people can stand up and discuss - Low level partitions or no partition
Your boss sitting very close to you
You can vote if this happening at your workplace too.
I recommend you to take a look at part II (entitled "The Office Environment") of the famous book Peopleware: Productive Projects and Teams(Second Edition). The authors described in great detail the importance of a furniture policy and the appropriate use of space. One of the good statements of the book is transcribed here:
"Even if you managed to prove conclusively that a programmer could work in 30 square feet of space without being hopelessly space-bound, you still wouldn't be able to conclude that 30 square feet is adequate space. The noise in a 30-square-foot matrix is more than three times the noise in a 100-square-foot matrix. That could mean the difference between a plague of product defects and none at all."
And if you are curious about famous companies offices', go to Office Snapshots.
Attractive coworkers!
Seriously, the most important thing for me and most of my (attractive) coworkers is noise level. So doors and walls can fix that, or proper spacing and headphones. Individual offices are the best. Whiteboards are nearly essential as well. We have nice magnetic ones that wheel and flip.
Things I absolutely need to get anything done:
A kitchen. Lets me heat up my lunch, or cook it if I'm feeling adventurous...
A really good library and the ability to take advantage of it. My favorite places to work are where there is a culture of learning and books and other resources are a huge part of it. Some comfy chairs and some books and magazines that make you thinking about programming and design in new ways are always good.
Essentials
Extras
I recommend you actually ASK YOUR DEVELOPERS what they want. Everyone will be a little different but the bottom line is the better you treat your people, the better work you'll get out of them and the more willing they will be to go the extra mile.
HP-16C (http://www.hpmuseum.org/hp16.htm). I recommend the iPhone app version of the calculator.
I'm trying my hardest to get a tall desk. 5/6 days a week, 8hr+ each day, sitting at a low-level desk and you're just asking for a pot-belly and DVT. With tall "artist"-style desks and adjustable stools (pref. with backs) you can cater for any height, and you can work standing-up. Plus, if anyone has to do some typing at your machine (code-reviews, etc) they don't need to kneel or trundle a chair across the office.
As usual Joel has a great blog article on this very topic that you can find at: http://www.joelonsoftware.com/articles/BionicOffice.html
Nothing specific I couldn't live without apart from some of the obvious like dual monitor, good temperature and lighting, access to coffee, fridge etc. But I think most importantly: an office space has to have personality. let employees tastefully design/decorate their space.
A desk that's big enough for two people to sit at and both see the monitor(s) and reach the keyboard. Whilst this is essential for an XP shop (or any other using pair programming) it's also a good idea in general if you want your developers to work together.
Space to put books. No space => no books :(
A good chair.
Plenty of desk space and bookshelves.
A whiteboard in my cube/office, and PLENTY of communal whiteboard space. I.e. the conference rooms should be LINED in whiteboards, not just a dinky little board at one end.
Flip charts for more permanent drawings. Preferably the kind that are like giant post-it notes.
Dual monitors.
If my primary dev machine is a laptop, a docking station would be nice. At the very least, an extra power cord to keep at the office.
Decent coffee. I don't care about some fancy-schmancy espresso/latte machine, just fresh, strong, regular coffee of reasonable quality. Some communal mugs would be nice for the days when I forget mine.
Reliable printers. When I print something, which isn't too often, I don't want to have to troubleshoot printer issues.
A window that I can see when I'm sitting at my desk. I'm not saying I must have a cube next to a window; just a sliver of visible outdoors through a gap between cube walls is better than nothing.
Legal pads. Pencils (wood is better than cheap mechanicals; just make sure the sharpener works). Pens that don't skip.
Don't block my ssh.
I agree sound, monitor, and chair are all important.
The one thing not yet mentioned is keyboard / mouse of preference. Ease of input is important. My wrists and pinkies have begun to hurt, and I have yet to have an employer who thought a new natural keyboard was a good idea to chip in on...
one thing that often gets neglected is Monitor Arms for your multiple monitors. It's one thing to have multiple monitors, it's quite another to have the flexibility to move them around to show other developers or accomodate extra / temporary equipment
I like a window, a comfortable chair I can lean back in, speakers, leg room to put my feet up, and a split keyboard like the MS Natural 4K. Walls and a closable door are also good.
I don't mind working around people, but I really don't being in the open.
One thing you DO NOT WANT is a Public Address system or at least not one that blares into everyone's space that "Joe Blow, you have a phone call on line X!"
There are many excellent suggestion posted. I'll re-iterate the recommendation for "Peopleware"
Make your office like this! Stefan's Office
All joking aside, look for these qualities:
- Peace and quiet
- Get away from normal life
- Organized
- Clean
- Encourage work
- Library, easy access to information
- Proper equipment
- Some nice amenity, like a good view or something small and special
I highly rate a couch. Being able to lie down and discuss or think about a difficult problem really helps me. Plus, when you're pulling an all-nighter, they are invaluable.
Good lighting, where I work at now the lighting above me is yellow, very hard on the eyes.
Dual monitors (I know it's been said several times before, but a HUGE productivity improvement)
Headsets for phones. It's hard on your neck squeezing the phone to your ear while solving the problem on the computer.
Good comfortable chair. We sit in it for eight hours and most people spend only 20 minutes looking at them, we spend a lot less time in our cars, yet spend vastly more money and time in getting one. Go figure.
I also agree for the low partition walls, I currently have to offices one high wall another low wall (company is trying out new layouts), but if there's a lot of noise neither really work well.
Trashcan, we snack.
A good powerful machine. We don't need the latest gamers mega processor, but something that doesn't slow us down. We want to solve the problem quickly, not to be slowed down because the comp is thinking. Skimp on some other stuff if you must to keep this one up.
Lastly I second Caleb's answer of asking your developers, they will ask for a lot but let them know your intentions and they will tell you what helps them most.
A good development machine with dual screens. Needs to have plenty of HDD space and as much ram as possible in order to make it possible to have several IDE windows open as well as a handful of local Virtual machines.
An internet connection...to be able to access stackoverflow as needed ;) (Some places I've worked it was an uphill battle to justify why the development team needed an internet connection)
A comfortable chair and desk. Some people have this as the top priority but I've found in most places you don't have much choice...and as long as it is reasonably comfortable to sit in for several hours at a time I'd rather prioritize the development machine which, if not up to spec, can cause you to spend hours more at your desk than you have to.
A quiet environment with as few distractions or interruptions as possible
Easy access to stationary supplies. (At one place I worked I got chewed out by the boss for taking more than one pen at a time)
Easy access to good reliable printers.
junk food! when you go for a break it's good to load your system with crappy but highly stimulating food. hehe.
It has to have ergonomical designs, the chair, lighting, monitors all the way. If you design a office with ergonomics in mind, it costs far less than what you would spend modifying it later.
A place to lie down. A power nap of 15 minutes is better than
Here are my personal favourites in no particular order...
Docta
A good kettle, a water filter if the water's bad, and good quality tea!
Also as previously mentioned, a quiet workspace, with a comfortable seat is essential.
Dual matching monitors, Cinemassive makes some great ones. Noise canceling headphones or individual office space. Do Not Disturb signs. Flexible building access hours. Corporate Wifi. Laptops with Docking Stations. For the entire office a printable color whiteboard like this one from panasonic. A couch or open area with pinball, air hockey, Wii||Playstation||X360, 42+ inch LCD, Conference room w/ projector, kitchenette with stove & sink, Refridgerators, Free Soda & Coffee, That's what I do if I had the money.
Most of everything here, plus:
A way to obtain Diet Coke in quantitative supply. It's all right if I have to leave my desk or even go outside to get it - in fact, it's preferable.
I'll reiterate what many others have said above me.
Not necessarily in that order.
free breath mints for the coffee drinkers!
In all seriousness, if you drink strong black coffee, you should be cognizant of the non coffee drinkers around you. This can be more intrusive than someone wishing to chat when you are busy, or other ambient noises. It also makes pairing quite difficult. If you don't think so, imagine pairing with someone who just ate a ton of garlic at lunch. Thats what it can be like for a non coffee drinker.
Just something to be aware of...
Also make sure to provide solid dev and staging servers for deployment. Too many companies skimp on this. Also provide devs with whatever developer tools/software they need to get their job done. Don't be cheap when it comes to your devs.
Development laptops. I really like to be able to take my laptop over to a coworkers desk and show him a problem or bit of code, rather than email a screen shot or call him over.
A public area with no walls and lots of seating to collaborate. Ideally comfortable couches and tables and whiteboards.
Private cubicle or cubby type space with walls that is quiet. Equipped with wired internet, laptop docking station, external display.
Something I would have LOVED to have at my last job: Move the product and project managers close tot he development team, in similar seating. In other words, if your shop does a "no cube walls" thing, then the managers should always be visible too. No offices. From my experiences, the "lack of communication" is almost always developer <-> manager, not developer <-> developer.
If your group includes classically trained mathemeticians or basic scientists (e.g. Physics, chemistry, etc.) a blackboard (not a white board) is essential. Most people in these categories were taught to think on blackboards and the tactile association is really important.
Fidget/stress toys. Research has shown that utilizing parts of the brain other than the one that's your primary focus can boost over all utilization and increase creativity and thus productivity.
So, things like the Slinky, the Hoberman Sphere or any of Erno Rubik's puzzles, or for work environments where such things are frowned upon, the venerable stress ball, can be a real help.
Laundry room. (No, I'm serious.)
I actually convinced my employers to add a laundry room to their big buildout and it worked out great. Lots of people rent apartments and don't have an in-unit washer/dryer setup. Instead of having to deal with a laundromat, they can do their laundry at work when they're waiting for code to compile, or whatever. This means more of their free time outside of work is spent on things other than basic chores.
No matter what the layout (individual offices, cubes, bullpen):
Many good answers already posted. Already have many of the items already listed. For me personally the next thing needed is a book case. Too many books for the sagging hutch above my desk.
A bit old school I guess as the Web has many quick answers in electronic form. But there is some good stuff under copyright that I find useful for explaining the whys of development process to my coworkers (or myself again).
Instead of two monitors I would suggest one huge monitor. At the moment I have a 24" monitor for about EUR 400. I like it a lot.
"Open" Internet access.
"Fast" Internet access.
Currently we have content filtering on our internet connection, when trying to search an error or do research on some functionality I am not familiar with, the content filter literally takes a huge amount of productivity out of me. To get around this, I just simply setup a VPN to my house, but this isn't a healthy workaround for your developers. We use the web, we use it a lot, so let us.
I think temperature control would be nice for a developer. In my office there is a part of it that has a lot of machines, servers and test equipment running. So, they need the AC low to keep the area at a decent temperature. However, this makes the rest of the floor hover around 64 degrees. Then they just turn off the vents to our area and the temp goes up into the 80s.
We are currently in a temporary situation, hopefully the new building will have AC control partitioned to each area of the building as an uncomfortable temperature can be very distracting.
Lava lamps indicating the build state of your sourcecontrol repository/Integration Server.
Green/Blue everything is ok. Orange/yellow warning tests failed, build took stangely long Red Build failed Nobody leaves office till at least orange