Failure is necessary to succeed

Steve brings up a quote that I’ve always liked: By definition, risk-takers often fail


Let’s look at it: if something has a 20% chance of failure, then it should fail 20% of the time. If it doesn’t, then you are not really embracing the risk.

Trying to avoid risk, in life or in business, is playing not to lose. By focusing on risk avoidance, you’re taking your eye of the goal. Sure, you won’t lose that often, but you won’t win very often either, and you certainly won’t win big. In a zero-sum game, that’s fine, but life is not zero-sum. Eventually, you’ll end up being overtaken by the guys who do win big, resulting in a very painful loss by a thousand cuts.

This doesn’t mean that you need to fail in order to win. What it means is that you have to acknowledge risk, and notice when the risk is starting to blow up. The real trick to failure is to make the failure cheap; this lets you absorb lots of failure in order to gain the win you really want. Get really good at this, and you can make the cost of failure cheaper then the cost of avoiding the risk in the first place!

How do you do this? Feedback. Just as a wheel bearing will start rattling before it seizes up, most risks have warning indicators that you can notice if you pay attention.

In software development, most serious risks are project management related (at least, that’s the way it looks to this guy in the trenches). This makes it astounding that the dominant methodologies (which are the waterfall-based ones) focus on risk avoidance. They have to: they don’t have tight enough feedback loops to allow for effective risk mitigation. By the time you notice a risk is blowing up, it’s already the size of Three Mile Island and rapidly heading towards Chernobyl.

Getting good at paying attention to the feedback loops takes time. It requires the project manager (and everyone else on the team!) to listen carefully for that suspicious rattle. But it’s worth it. Replacing a wheel bearing isn’t cheap, but replacing the entire drive train because the bearing seized up is an order of magnitude more expensive.

And remember the words of Lobsang Dibbler and the Way of the Scorpion: Sometimes you have to lose in order to win.

Advertisements

Author: Robert Watkins

My name is Robert Watkins. I am a software developer and have been for over 18 years now. I currently work for people, but my opinions here are in no way endorsed by them (which is cool; their opinions aren’t endorsed by me either). My main professional interests are in Java development, using Agile methods, with a historical focus on building web based applications. I’m also a Mac-fan and love my iPhone, which I’m currently learning how to code for. I live and work in Brisbane, Australia, but I grew up in the Northern Territory, and still find Brisbane too cold (after 16 years here). I’m married, with two children and one cat. My politics are socialist in tendency, my religious affiliation is atheist (aka “none of the above”), my attitude is condescending and my moral standing is lying down.

5 thoughts on “Failure is necessary to succeed”

  1. Yeah, I know… I lost the site layout a while back and had to reset to the default MT one. Never got around to recreating it.

    But… how’s the code examples now?

  2. Just had a look at “Remember to read the errata!”. Even with a refresh (just in case it was cached) I still don’t see a difference in the example font. I’m using IE6, but might try Firefox next visit.

  3. For some reason, the stylesheet was truncated; maybe I’d killed the FTP job part way through *shrug*.

    It’s better now. I’ll spend some time in the next month or so to do the UI properly.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s