Into the mine shaft..

I think we are all somewhat familiar with the concept of canaries in coal mines. As recently as 25 years ago, canaries were taken into coal mines as a way to detect poisonous gasses such as CO2 and methane. The canary would sing all day long unless overcome by the gasses. At this point, the miners would realize their environment had become toxic and they would flee for their lives.

Development teams sometimes find that they have a canary in their midst. This person seems to point out unseen dangers ahead based on the current path. The things that the canary sings about aren't really affecting the team, but he or she claims they will if not corrected. How do you know if you have a canary or a whiner? That is tricky. The best advice I have is to look to experience. Does the person have experience working with multiple teams in multiple environments? Has she experienced similar situations in the past? Does she give recommendations for alternate courses of action? Is she passionate about achieving success? Is she regularly educating herself on the topic? I find that canaries seem to focus on one or two things that they are really interested in and they take pains to learn as much as they can about those topics. If someone whines about everything, he probably isn't a canary.

Let's face it, a canary can be pretty annoying with their constant singing about unseen dangers. The good news is that canaries are really easy to kill. You can ignore them to death. Martin Seligman did extensive research into learned helplessness which you can read about in the book Learned Optimism. The gist of the theory is that if you learn that your actions cannot affect your environment, you will eventually stop trying to change your situation and you will accept whatever comes. Using the techniques described in his experiments, you can easily, if not quickly, kill your annoying canary. He or she will eventually either leave the organization or give up and stop warning about unseen dangers.

So if they are annoying and easy to eliminate, why not do just that? Well, the obvious answer is that the canary is protecting your team from some real danger. Eliminating the canary doesn't protect miners from CO2 or methane poisoning; it just reduces their chances of survival once they all start feeling the effects of the problem. They say that an ounce of prevention is worth a pound of cure. The canary allows you to address problems before they become large and difficult. Keeping morale high on a team is often easier than fixing an ongoing morale problem. Eliminating technical debt early means that there is less code depending on that bad code. Study after study in our industry has proven that the longer you wait in your process to fix a defect, the more expensive it becomes.

So if you are lucky enough to have a canary, you should listen to her and take what she says seriously even if you choose not to act on her advice at that time. And you accidentally kill your canary, my advice is to get out of the mine shaft in a quick and orderly manner lest you suffer the same fate...


Popular posts from this blog

Architecture at different levels of abstraction

TFS to SVN Conversion with History