The Majestic Sea Creature
    • Edit
    • Delete
    • Tags
    • Autopost

    Fail Fast Isn't About Learning From Failure

    The notion of "fail fast" is something of a mind virus among software developers. It doesn't matter if you're talking about hacking on open source, developing products for a startup, or just spiking on a bit of experimental code at work, people want you to quickly realize when you're headed up the wrong path. This is the whole motivating factor behind the "release early, release often" culture in the free software community, the backbone of most iterative development workflows, and probably a big part of what drives the whole test-driven development obsession. While there is definitely a reason why this idea is so popular, I find lots of folks miss the point.

    The key mistake I see people make is to assume that you learn as much from your failures as you do from your successes. This sounds attractive, because it lets you pat yourself on the back regardless of the outcome of your work. But in my own experience, while failure always teaches me something about myself, it only really gives me some insights on how to avoid that kind of failure again in the future. This sort of insight is nowhere near the same thing as learning how to succeed.  With that in mind, my tendancy to embrace "fail fast" is focused on a much more simple motivation: Quickly realize what I'm doing wrong, so I can stop doing it and try to do something else instead. While this isn't nearly as romantic, having rapid feedback about what ideas of mine are stinkers helps me avoid going down a deadend road at a snail's pace.

    Real experience is gained through frequently seeing your efforts lead you to success. If you find yourself failing all the time, rather than chalking it up as some sort of learning experience, you should re-evaluate your goals and either learn to accept more modest forms of success, or consider trying some entirely new ideas. What I've found is that while both success and failure leave a certain amount to chance, it's easy to chain together either successes or failures in an accumulative fashion. Whenever possible, I feel I learn and grow a lot more from chaining successes than I do from chaining failures.

    It's true that if you're not failing at least of the some time, you're probably not growing. But if you're failing most of the time, you're only learning how to be a failure. To prevent this from happening, use "fail fast" as a metric for finding the right sort of environment and the necessary conditions that you can carve out some success in, rather than a crutch to fall back on when things don't go as expected.

    • 3 March 2011
    • Views
    • 3 Comments
    • Permalink
  • majestic @seacreature

    Hello, my name is Gregory Brown. I am the founder of Mendicant University, a free online school for software developers.

    I am passionate about community service, education, and the free software movement. If you're interested in getting to know me a bit better, feel free to send me an email: gregory.t.brown@gmail.com

    Archive

    2011 (53)
    August (7)
    July (9)
    June (11)
    May (11)
    April (2)
    March (8)
    February (4)
    January (1)
    2010 (33)
    December (2)
    November (1)
    October (3)
    September (13)
    July (3)
    June (10)
    April (1)
    2009 (1)
    May (1)
    2008 (62)
    October (2)
    September (1)
    August (3)
    July (2)
    June (3)
    May (3)
    April (14)
    March (11)
    February (11)
    January (12)
    2007 (61)
    December (4)
    November (2)
    October (5)
    September (4)
    August (2)
    July (10)
    June (15)
    May (19)