A number of years back, I had the (dis)pleasure of developing software that had to interface with systems managed by a remote team that was paralyzed by the fear of failure. There was so much fear over making any wrong decision, that failure was guaranteed. The desire to “not be wrong” drove intense “Big Design Up Front” (BDUF) discussions and over-large meetings to “build consensus” and “get buy-in” that slowed progress to a crawl on good days, and moved the project backwards on the (frequent) bad days. It made even trivial decisions painful. This delayed the project to the point that it was eventually cancelled. The desire to not fail had let to failure.
I can see two root causes for this problem:
- A Dysfunctional Work Environment: Anyplace fear is a major behavior-inducing factor.
- An Incorrect View Of Mistakes: A belief that being making any wrong decision will cause permanent harm.
I’m only going to talk about #2 today – I’ve had several thoughts about this subject. #1 would be a topic for another article, but it’s not what I’m interested in right now. My premise is that just about every “good” thing we have in the world today came about because of a whole bunch of mistakes. For every system we have that works well, there are a nearly infinite number of them that failed for some reason, and which led the next person/team to try something slightly better. This failure (aka progress) is extremely valuable. This insight leads to two points:
- No real discoveries were ever made without significant effort and trials. Edison with the light bulb. Newton with the laws of motion. Einstein with the general theory of relativity. There was a great show on PBS a long time ago called “The Ring of Truth” hosted by Phillip Morrison that went into great detail on this historically recurring theme.
- A “good” mistake is small enough and made quickly enough that fixing it is not difficult and it teaches about the problem.
An often used analogy for project development is driving. When I get in the car, I usually know pretty much where I want to go. I don’t know what traffic will be like, so I’ll have to adjust for it along the way. I also don’t know if I’ll have to adjust for road construction, weather conditions, a flat tire, etc. All of those things get fed into the course corrections I make as I’m MOVING towards my destination. I could spend a long time working out a plan for each of these contingencies before I left, but even if I did, there are certainly things I would have forgotten, and would still have to adjust to. I’m not advocating doing NO planning beforehand, but doing “just enough and no more”. Of course the amount of planning should vary in direct proportion to the uncertainty of the terrain, and the size of the trip.
So, getting back to a project perspective, my belief is that every team should use the following loop:
- Iterate
- Fail Early
- Fail Often
- Learn From Small Successes & Save Them
- Be willing to say “I Don’t Know”, but be willing to find out.
Being an “agile” team provides many of these tools. Small iterations keep you from getting hurt too bad along the project. They also allow direction changes to come from stakeholders (although I’ve never seen an actual stakeholder remain a part of an agile team long term – the stakeholders I’ve seen have always assigned a second-rate proxy after the first couple of iterations). The tests written during development and keep the successes alive and in the knowledgebase. They also encourage the “I don’t know” behavior.
The bottom line is that we should be justifiably proud of our failures, much in the same way we are of our successes – as long as we’ve learned the lesson those failures are trying to teach.
There are a few quotes regarding this topic that I really like:
Samuel Smiles
It is a mistake to suppose that men succeed through success; they much oftener succeed through failures. Precept, study, advice, and example could never have taught them so well as failure has done.
We learn wisdom from failure much more than from success. We often discover what will do, by finding out what will not do; and probably he who never made a mistake never made a discovery.
Mohandas K. Gandhi
Freedom is not worth having if it does not connote freedom to err.
Robert F. Kennedy
Only those who dare to fail greatly can ever achieve greatly.
Robert Frost
The best way out is always through.
