18 Aug 2004
One thing I like about building software is that failure is normal. You have to try so many different approaches, and so many of them don't work. Some approaches fail at the idea stage; a few fail after you've spent days or weeks seemingly close to making them work. Each failure is painful.
If you were building a bridge or a putting out a fire, failure would be a total loss: materials wasted, property destroyed. But in making software, failure is actually a form of progress. When you're exploring the boundaries of what's possible, you're often going to set your sights beyond those boundaries. In making software, you're constantly reminded of this. As a result, you either get disparaged and start doing less risky, less creative work—or you learn to treat failure as an experimental result that confirms the value of the endeavor.
People who really care about making software know this. It's spread throughout the culture: good programmers, managers, execs, and even venture capitalists know the value of failure. For all the shortcomings of techie culture, it is this courage that redeems us. And because technology is an ever-increasing part of the world economy, the world is on a cultural path toward valuing failure and away from denigrating it. The effects ripple far beyond technology, making now a better time than ever to be creative.