6 On office and workspace
This chapter will focus on the office layout and choices to make to accommodate software development in a company. This aspect is often overlooked, or considered in a generic scheme of “office planning” that is tailored to office work. But software development is not office work, although to the untrained eye it might seem to be. It does not fit in the agreed scheme of those in charge of organising office layout and furnishing, leading to grotesque and productivity-damaging choices that resonate throughout the company.
In this chapter, we will analyse trends and errors in office planning and management that make professional software development and management miserable, unproductive, or erratic.
The playground office
The first example of the misaligned needs between office and software development, is the modern trend of what I call “the playground office”. I am uncertain who started this trend, but seems to be a characteristic that began in the 2000s and was made prominent, at least in the eye of the public, by Google.
Companies strive to feel cool and modern by providing the “playground office”, an environment that mixes together a work environment and some form of entertainment facilities, typically used during lunch break or in the first after work hours.
Unfortunately, these facilities mostly create disruption and noise. The assumption that all people are inactive during lunch break or after hours is wrong. In large companies, this is rarely the case, due to logistics (there would be not enough space to accommodate all people in the kitchen), personal preference (some people prefer to eat at different times) and meeting schedule.
The result is a workplace that is not conductive of work. It’s literally coding in a playground.
The Joel test entry number 8 recites
Do programmers have quiet working conditions?
This is an important point, but needs to be expanded. Programmers, when they work, need to keep information in their head. Disruptions and noise invalidates their short term memory and ability to concentrate. Programming concentration is not a linear task, it’s a quadratic task.
Noise canceling headphones are not a solution. These tools exist to mitigate noise that is white or mostly white, such as airplane engines, or crowd murmur. They perform poorly against voice, telephone rings etc. If all, they actually put them in evidence, as the general office murmur is removed. Additionally, noise canceling headphones may trigger nausea in some individuals.
The bottom line is that working in a place where focused work can be performed should not be an afterthought and something to be remedied through a workaround. It should be part of a fundamental design of the employment environment.
Companies, however, should also consider that some form of social bonding and decompressing time is required by employees, but these should not come at a cost of disruption of focused time. Striking the balance is essential.
The open space
Most of the 90s software company was characterised by the alienating cubicle.
After the cubicle’s death, the industry managed to create something worse: The open space.
Open spaces are another tragedy of the modern software company. As a justification to the new paradigm companies claimed that the open space removes the communication barriers between employees, that the cubicle created, but this is the marketing lie. The truth is that open spaces are cheaper. It slashes costs by requiring no thought of organisation, no dividing walls, and allowing for long, multi-employee desks.
Unfortunately, it does nothing to limit disruption and information leakage. Want to kill productivity? Put developers near the administrative department. The incessant phone calls and discussions will kill any hope for focused development.
Long desks propagate vibrations, cannot accommodate for different people’s size by raising or lowering the surface, can prevent multiscreen setups or (if BizOps are particularly married to the concept of desk uniformity) negate the possibility for improved productivity tools such as personalised keyboard and mouse. It can also disrupt engineers working in companies manufacturing goods, as they might not have enough desk space, electric sockets, proper layout or instruments to handle hardware such as product or testing rigs.
Could worse than the open space be done? Of course. Hot desking is the new trend. The idea is that, most desks are never occupied 100% of the time. People are ill, on vacation, or abroad for meetings. As another cost saving measure, software companies took a page from airlines: overbooking. There are more employees than desks, and to do so, nobody should have an assigned desk. Instead, every day the employee sits in any unused desk he or she can get. Every morning the employee is supposed to take the laptop and notes out of a personal locker. Every evening he or she is supposed to put everything back in the locker and leave the desk clean for the next day. How could anything more perfect and fascinating could be achieved? Consider the advantages:
- pay for less seats compared to the effective number of employees the company has.
- Employees clean the desks every day themselves, so reduced costs for cleaning services.
- Force employees to come in as early as possible in the morning if they want a desk.
- Force everybody with the same screen, keyboard and mouse.
Some of these are cost cutting maneuvers or they feel like ways to push employees to come to work as early as possible. But for the software company, this strategy is once again a massive failure in considering the needs for software development.
Developers are not marketing, accounting, or sales. They rarely move and must have all their tools and setup optimised and close at hand. When developing software, they need personalised equipment, and rely on consistency of their organisation (notes, post-its, hardware setup). Companies with high regulatory needs may impose large amounts of documentation, and companies with manufacturing needs may require to keep hardware in consistent state for multiple days. Teams will need to sit close together, possibly near information emitters, Scrum boards, or physical tools. Finally, people need to find each other, a complex task to perform when your seat potentially changes every day. Finally, if a developer has to setup and tear down its own system every day during work hours, his salary per hour is very likely to be higher than the cost per hour of the cleaning services.
Fortunately, as far as my experience goes, hot desking has never been applied strictly in software companies, but I have personally witnessed annoying BizOps complaining that you are not supposed to have your personal keyboard or screen. The trend is worrying.
Other sources of disrupted productivity
Disruption comes in different forms. Auditory noise is one, but not the only one. Vibrations, smells, uncomfortable seats, lights reflections, people walking behind you and hitting your chair by accident, are all sources of distractions that ruin productivity.
Other sources of disruption are digital ones. Chats and emails all allow to disrupt one’s focus from the task. Unless the task requires communication, they are to be avoided. Unfortunately, the more time one remains isolated from these tools, the more there will be to digest when the tools are brought back online, up to a point where the amount of mails and chat requests to be dealt with go beyond the amount that can be addressed within the amount of time available. The pile will always grow, and the only solution is to reduce the amount of work in favor of handling the pile. More mails will leave our client, generating more emails in return, until suddenly all your productivity is in handling email and chat.
Finally, the lack of a whiteboard can be equally disruptive to productivity. Software development requires communication and brainstorming. Software management requires keeping track of tasks. The whiteboard is the perfect tool to satisfy both needs. You can’t brainstorm on a piece of paper, and if you like Scrum methodologies you need a surface for you task post-its. A software company that does not provide whiteboards is seriously limiting its employees ability to communicate and describe abstract concepts in easy to grasp, easy to remember pictures. I would think twice accepting a job in any company that does not have large whiteboards in every room.
The productive office
We have seen some of the trends and mishaps of modern companies when it comes to software developers. Can we answer to the question of what makes a productive software company office?
- Rooms that accommodate four to six individual developers part of the same Scrum team.
- Whiteboard and information emitters in each team room.
- Independent, adjustable desks and chairs.
- No restrictions for hardware or software gear. No quibbling over buying a windows license or a high DPI monitor.
- The team should be physically located closer to other teams that have to frequently interact. You can certainly relocate whole teams to maximise this, provided this does not happen too often, and the team approves it.
What you want to achieve is maximise information sharing and awareness within the team, as well as development comfort, execution speed and focus. At the same time, you want to remove or minimise disruption or non-relevant information coming from outside the team, as well as any blockers that might lead to wasted or postponed execution of tasks. It’s that simple.