Imagine engineers working at a production line in an assembly plant. One of them stops working, turns around and shouts the others about how to use the certain function of a robot. Everybody stops working, raises heads and listens. One of them says he knows and comes next to him to explain. Then he goes back and starts where he left off.
If such thing ever happens in plant that cares about operational efficiency, the engineers would ask the question:
How can we improve our work so that we don’t need to stop for this anymore ?
Obviously, they wouldn’t come up with solutions that include megaphones (so questions can be heard by more people), or chat channels, sms groups between employees in the assembly plant so they can interrupt each other in even more ways.
But people do this in software companies all the time without questioning.
Such unsolicited communication is usually started when somebody needs some information but unable to find it. People usually try to find answer themselves and then start asking to other people. This is the moment when the person is blocked from progressing in the task that is being working on. If the answer doesn’t arrive right away, most people try to ask more people or give up temporarily and do something else.
Therefore, lacking certain piece of information is an important motivation to initiate communication.
What Happens To Others When You Initiate Communication
Back then, postman would leave a message in the box and it would be up to you to check it. You were in control of deciding when you can be interrupted. Times have changed.
Today, you stay connected to email, instant messaging systems, irc/slack like channels, conferencing tools, specialized notifiers from ticketing systems, code review messages, build results and this is considered a normal part of the daily life. Have you counted the total number of messages, including all channels, you receive every day ?
You may want to use Pomodoro, but is not an applicable solution for all jobs. Some jobs require you to be responsive.
Admit it, every time a message comes, you don’t feel ok until you process it. Even if you try to ignore, that notification stays in your brain. That is simply irresistable for most people. The most efficient people in this area are the ones who can stay focused on their tasks by carefully organizing how and when they can be distracted.
When this happens, you drift away from your focus as it is inevitable. Since human brain is not capable of multitasking, interruptions become a hand brake to your cognitive efforts. If you decide to engage the communication request, you totally lose the focus, which takes time to regain. You aren’t alone in this condition.
The effect of task switching has been widely studied. In contrast what many people try to do, and many managers try to force people to do, you are severely effected with distractions:
Everybody is experiencing this. But probably distributed teams are one of the most impacted groups.
Curse Of Distributed Teams
Distributed teams rely on communication tools to keep members in constant contact.
In an office, nobody likes to be constantly poked by the people around, but that happens quite frequently to the distributed team members trying to stay in touch. Solving the communication problem becomes much more crucial for them.
After all, distributed teams exist not because they are more productive, but because there is no way to bring people together.
Distributed teams always add communication overhead and that must be minimized.
So What To Do ? Kill All Communication Tools ?
Absolutely not! The root cause of this problem is not the tools, not the people (most of the time), not the technology itself.
Solution to this problem lies NOT in disabling communication, but in eliminating the need for communication.
Eliminating The Need For Communication ? What Is That ?
In all well designed, efficient flows, work related communication between entities happen only when it is absolutely needed and it happens in the most efficient way.
You need to gain the habit of improving things that are not part of your product code, in order to gain more time on actually working on your product.
Step back and ask yourself why those questions exist ? Is it:
- Bad tooling ?
- How am I going to fill this expense form ?
- Bad IT infrastructure
- I can’t access x from y, how do you do it?
- Bad documentation
- Where is our visual guidelines for printed material?
- Dependencies between people
- My team mate whom I work together for a certain task lives 6 timezones away!
- Conflict of interest between groups that need to cooperate for a task that is interesting only one party
- I need department x to do y, but they have zero interest since there is nothing in it for them
- Laziness or incapability
- Hey, I copy pasted this and it says syntax error at line 56, can you look at it?
The next step should be eliminating the reason why this question actually exists, so that it will not be asked anymore.
If the reason is personal issues like the last example, you may need to part the ways eventually, if the person doesn’t improve himself to stop being distractor for other people for no valid reason.
This is a huge journey so don’t try to digest it all at once. You will be in a better shape after every eliminated question. One question at a time. This can be one of your Kaizen activities.
But avoid this one big mistake that many companies fall in to:
Dumping Everything In the Intranet Is NOT a Solution
Many companies tend to solve operational efficiency problems by documenting everything in the intranet and assuming everybody will read everything all the time.
This never works.
Documenting things that can be solved by technology doesn’t solve the efficiency problem. It only allows leadership to blame employees for not reading everything.
Don’t fall in to this trap. Target the root cause of the problem, whatever it is.
Avoidable Communication as a Form of Waste
In Lean Software Development you would seek to eliminate waste, in order to become more efficient with your limited resources.
Time is one those resources, and avoidable communication is a form of waste that steals from your limited time. Unfortunately people focus too much on the product itself and forget improving other areas that also affect the customer value.
If the assembly line in the example was run by mindset of many software companies that fail optimizing communication, people would have focused on encouraging engineers to communicate more and more, read hundres of pages of guidelines, instead of making the assembly robot easier to operate.
In the end, customers usually don’t pay companies to spend hours in chats and emails. Spending more time on chatting, mailing, conferencing just for the sake of it, doesn’t make your product/service better.
Final, tangible changes that actually reach customers make the difference.
If you could achieve the same business result with zero communication, you wouldn’t waste your time with it.
That is why you should always look out for improvements that will remove the burden of avoidable communication from your value flow so people don’t disrupt each other for simple reasons.
Many serious production lines have clever optimizations to reduce the inefficiencies and waste of time. Sometimes, the design of an engineer’s suit can become a huge improvement when it is scaled out. An improvement that saves 10 mins per day, will save 33 hours on 200 work days. Imagine the scale of gain for 1000 engineers.
Software industry has a lot to learn from our history of production optimization and operational efficiency. Avoidable communication is just another type of waste whose elimination will let you have more time to spend on creating customer value.
Therefore, it is important to reduce the need for communication, while using latest technologies to improve the quality of the necessary communication.