Featured Post

The great debacle of healthcare.gov

This is the first time in history when the president of the United States of America, or probably for any head of state around the world,...

Friday, November 4, 2016

Myths and truths of collocation in software development

The benefit of collocation is enormous. This doesn't just dramatically reduce the communication cost but also tremendously helpful to avoid confusion and improve team bonding. This is becoming a norm in the software development work where agility is new buzzword in the town. But how this collocation is implemented that actually is more important than just cramming people into a giant blob of space which can make more harm than benefit for the software development team.

Traditionally, the large non-software development enterprises are not designed for collocating software developers in a common space. So when they are asked by their Software development   department to create space, for instance, for their Agile software development team, the people from realty department free up a big enough conference room that can "just fit" the entire team. The expectation is, now the team would start producing the fruits of collocation. There are quire a few things missing in this expectation. Let's check them one by one:

1. Those (just freed up) conference rooms are built and organized for face to face communication in a meeting setting. A meeting is expected to run in terms of minutes, not hours. So there may not be enough space to place the computer on the table, chairs are not healthy enough for day long seating, not enough lights and ventilation for 10 to 15 people, and the list continues.

2. A team comprised of people and people have certain biological and psychological needs. People needs enough leg room, yawning space, etc. without bumping to each other. Except few people, most of the people needs off-face time. Otherwise the side effects of 24/7 cable news channels pops up.

3. Creativity needs both the conscious and subconscious minds to tango. With only the conscious mind in play, only so much can be achieved but to really come up with a good idea and solutionize that idea, the subconscious mind needs to be triggered which need a relatively quiet and private space. Specially, this is absolutely true for software programmer. They need the interaction with other fellow programmers to discuss and bring new ideas and then go back to relative isolation to concretely thought through that idea to make it to work. In lack of that, you will see people are putting on their earbuds to cancel the surrounding noise where no physical isolation is available.

4. Believe it or not, people can't work, specially people who are in creative business like software development, continuously for hours after hours without breaking away from that monotone. It works in a certain situation and setting but majority time it needs social break. So, if we force people to be in the crowd all the time, we may get lines of code that just do the work but not a breakthrough solution that will down the total cost of software development and maintenance.

I am not necessarily suggesting that people needs to be mile apart from each other but at the very least we need to recognize the need of balancing the collocation with personal space to get the best out of collocation.