Be Willing to Fail

“We are all failures – at least the best of us are.” – J.M. Barrie

Everyone hates to fail. No one wants to look like an idiot, or be the one who is holding up the release, or lock up the system in the middle of a demo. It’s painful. It’s embarrassing. It makes people lose respect for you.

Or does it?

In theatre there is a practice called “improvisation” where a group of actors is given a topic and they have to create a story on the spot. One person starts and the others have to follow along. The rule is that everything must be “yes, and”. If you break the rhythm or direction of the action, that’s breaking the rules. It’s a very demanding exercise, and often times it results in silly nonsense. Buy once in a while the magic that develops is stunning and can lead to amazing breakthroughs.

Software developers can create a similar situation by always looking for new ways to learn. If you learn a new language, you can see different ways to solve a problem in your original language that you wouldn’t have considered otherwise. If you read some code from an open source project you can learn how others have solved different problems, and use them in your own work. If you work through a programming kata with a colleague you can develop your listening skills and learn something new from them.

What do each of these exercises have in common? You have to stretch out of your comfort zone and try something unfamiliar. You risk not knowing what to do. You risk doing it wrong. You risk looking stupid. The problem is, that until you get to that point, you’re not really learning.

In her book, “Design for How People Learn” Julie Dirksen explains how, in order to learn something, there must be a gap between where you are, and where you want to be. If that gap is too large, you get discouraged and give up. If it is too small, you’re not really learning anything significant. But if that gap causes you to stretch just past your current comfort zone, you get a feeling of accomplishment.

That feeling of accomplishment, the “aha!” moment, can only come after a moment of confusion. Nothing makes sense, and then, EVERYTHING falls into place! That only happens when you risk failure. When you risk looking like a fool. But with enough of these moments added together, you look more like a genius!

Try something dangerous at least once a week. If you’re not failing every once in a while, you’re not really stretching. You’re not really growing. What’s something you could do today to get out of your comfort zone? Could you try writing FizzBuzz in Clojure? Could you try reading the source to the String object in the JDK? Or write a regular expression date parser? Share your ideas in the comments.