Cognitive tunnelling is a very useful phenomenon of our brains that helps us to focus on a single, most important task. It allows us to filter out stimuli like visual objects, sounds, smells, etc. that would distract our attention. Unfortunately, this brain phenomena has some drawbacks too: it may lead a pilot to crash a plane or.. a software project to fail terribly.
One of the most well known examples of cognitive tunneling that lead to a tragedy happened in 2009 – Air France plane with 228 passengers onboard crashed into the ocean. After the investigation, it turned out that the aircraft speed sensor was frozen and was giving a faulty readings. The pilot was fixated about compensating flight parameters and hasn’t noticed that he lifted the nose of the aircraft so rapidly that the plane stalled and started falling from the height of 8 km into the ocean. Even though, he still had a chance to recover the aircraft during the 3.5 minute fall, the pilot was unable to determine what was going on until the very end.
Sometimes our focused attention can make us blind, even to obvious signals and objects in our sight.
Cognitive tunneling (a.k.a. inattentional blindness) happens to all of us and enables without us noticing it. Usually, when we are under pressure, overwhelmed with information and trying to make a decision. We all experienced it: burning a turkey in the oven while you try to complete the side dish and the hungry guests are already waiting, not noticing a door ring while reading an interesting book or bumping into a car in front of you because you were thinking how to bypass the traffic.
Inattentional blindness is quite common in software development too. Programmers working on a complicated coding challenge sometimes become so focused on solving the problem and implementation details that they can spend long hours writing, debugging, polishing and refactoring the code without noticing the world around them. Don’t get me wrong – creating an environment where employees can focus and be productive is very important.
What I find particularly destructive is a work environment which causes “tunnel vision” like behaviors. Such organisations focus on execution and forget what goals they are pursuing by building their products. Tunnel vision in software project can lead to:
If you won’t realize on time that you are marching down the cognitive tunnel, you may miss the business opportunity or end up with a Frankenstein product – some features are over complicated, while some must-have functionalities are still missing. Such products are lacking integrity and usually have poor user experience. It all leads to low customer satisfaction and poor adoption of the product.
There are, however, a few techniques that enable a wider view among the team as well as proven ways of escaping the cognitive tunnel.
Before you start coding, it is necessary to build a common understanding of the business problems that our software is aiming:
Techniques that I find particularly useful when the team already started development:
Do you know of any other examples of inattentional blindness in software development? Happy to hear about it and your methods for preventing and escaping cognitive tunnel vision!