Negative Thinking and MTTF
I recently ran into an opinion piece by Dr. Atul Gawande titled "The power of negative thinking". You can find a copy of the piece at the New York Times. It made me reflect again on negative thinking and its role in software development.
*Note you will likely have to register to see the article.
You can also find a list of other writings from Dr. Atul Gawande on the Articles page of his website.
I had never heard of Dr. Gawande before and found this opinion piece syndicated in a Rutland, Vermont newspaper. The title captured my interest because of my recent post on the Mean Time to Failure (MTTF) in software projects. I was especially piqued when the opening paragraph began.
"We Americans believe in the power of positive thinking. Whether one is fighting a cancer, an insurgency or just an unyielding problem at work, the prevailing wisdom is that thinking positive is the key --- The Secret, even --- to success. But the key, it seems to me, is actually negative thinking: looking for and sometimes expecting failure."
*emphasis mine
Hmm... I think I may like where this is headed. I must admit that I found little direct reference in the piece to looking for and expecting failure. I did find plenty of examples of what I would call critical thinking versus negative thinking. I differentiate the two by seeing critical thinking as looking for root cause and thinking without preference for positive or negative views; whereas negative thinking is specifically looking for, anticipating and expecting failure. Critical thinking is a higher form of either positive or negative thinking.
I propose more negative thinking in software development. I propose this because positive thinking prevails far too often and critical thinking takes a lot of practice. We're a smart group of folks known for working with systems that should perform "critically" but we aren't as good as we think at critical thinking. It takes a lot of practice. Even our software has historically shown an over abundance of positive thinking - how many times have you missed handling or just dismissed a potential exception, or expected a user to behave in a specific manner and didn't handle the edge cases. How many times did we truly plan for failure in both the development and the later lifetime of the software.
Since critical thinking is more difficult and requires much practice we need negative thinking to counter balance the inherent positive thinking. We'll evolve as a techno-society to be better critical thinkers but until then we need to bring a balance by expecting failure and planning for what to do next.
Working with this idea is a hard row to hoe for anyone. Imagine the look you'll get from your next client (internal or external) when you say "When this fails what are we going to do?" Talk about a wet blanket. If you are not in the higher standing of a team you are likely to be ostracized and labeled as unhelpful or an obstructionist. "If you think this will fail what should we do differently?" is likely the next question that will come from someones mouth and will be posed directly to you. If you are lucky enough to be allowed to ever speak in such a meeting again. The response is to answer the question- and the answer may be "it all looks great to me" - then present your question about failure again. I'm sure the frustration level will at first rise for those that look on or carry on the conversation. You'll need to explain your reasoning of why negative thinking must be done. Negative thinking should be iterative and applied at a more micro level as well always asking 'what about when this fails?'
Dr. Gawande proposes that negative thinking was the difference at the recent fiascos at Walter Reed Army Medical Center. Massive success in surgical care and massive failures in the post operative world. As Dr Gawande points out:
"[I]n one part of the hospital good people succeeded, and in the other good people failed."
That's our industry. We're all good people but we fail a lot and it's because we don't expect failure. Sure, we may throw some cycles at risk analysis and mitigation or threat analysis but it's always too optimistic and within the realm of some specific person or team (usually Project Managers and others). Despite most efforts it is based on assumptions that are too optimistic and often based on information provided from people even less inclined to negative thinking. We are good people that fail a lot.
We must continue to ask "This is likely to fail so what then?" and "How long until we fail?" (MTTF).
I know I'll try it. I'll let you know how it goes. If afterwards I don't have a job I'll post my resume. ;-)