Last week I wrote an article / rant that covered a few problems I, and many others are facing in the office. These problems were mainly aimed at those of us working in corporate environments, though they are often displayed in smaller companies and startups. One thing I didn't do was give suggestions to possible solutions to these problems, and this article is just that; a way to fix the problems I described.
Problem: Developers with desk phones.
Recap: Having to answer your phone for anything other than development related conversations is counter productive.
Solution: Restrict WHO can call your developers. Publicly listing their number on the corporate website, or in mailing lists should stop. I understand not ALL calls can be prevented, but the availability of your developer's phone numbers should be tightly controlled and distributed to only those related to the projects they work on.
Recap: Cubicles are awful, worse are the poorly thought out and placed cubicles.
Solution: Allowing your developers to have their own office isn't always possible, and when it isn't, companies should make efforts to locate their work space (cubicle) in areas that make sense. Not right next to the break room, not near an entrance point with high foot traffic, and certainly not in the middle of another department. Allow your developers to decorate (within reason) their work space.
Problem: Corporate distractions.
Recap: From the weekly/monthly seminars to the lunches and monthly celebrations.
Solution: Allow those of us to embrace our seemingly "anti-social" tendencies. Sure, these ever-so-often events usually take between 5-60 minutes, but throw more than one of these events in a week, and you're hurting your developers. Allowing free-will participation is important, and making these things mandatory should stop. If a corporate training video applies to HR and how to deal with new-hires, then only HR should have to watch that video, don't make your developer who's knee deep in stack tracing the latest bug also be required watch those.
Recap: Everyone gets burnt out, but sitting at a desk for hours on end until 5pm is useless.
Solution: Allow your developers (or non-essential persons) to leave the office a little earlier. Allow them to have some creative time on their phone or computer. Requiring creative workers to stay in the office for an arbitrary amount of time can really crush productivity and produce extreme levels of burnout. They will eventually leave and find a place that's more understanding of how reality actually is.
What my proposal boils down to is that developers should only have to worry about developing software and maintaining the projects they are responsible for - especially for those of us who aren't at work to socialize and buy into the 'culture' / 'team' mantra.