Failing: With a Purpose

May 15, 2020
Category: Uncategorized

I love to fail

That’s right, you understood that correctly. I love to fail.

No… not like this.

Alright…. someone is going to pay…
Photo by Martijn Baudoin on Unsplash

What comes to mind when you think about failure? What feelings does that word invoke? If you are like most people, failure is something to be feared. Avoiding failure seems to be hardcoded in our DNA.

You probably have a horror story about the time that you failed epically sometime in your past. The thought of that event probably brings back a rush of negative emotions. It’s the whole reason you avoid it. After all, that feeling is not a pleasant one.

I am here to tell you that failure is not something to be feared, but something to be celebrated. I know you’re thinking that I’ve lost my mind and that I belong in a padded cell somewhere, but hear me out.

Don’t fear the…. Failure?
Photo by Yomex Owo on Unsplash

We all fail. All of us. Nobody on this Earth is perfect, and we all make mistakes. In fact, this is how we learn. We make mistakes because we are imperfect, we learn from those mistakes and we grow as people.

Fail Without Fail

I make it a habit to fail at least once a day. I work as a software developer. In my job, I fail a lot. I make mistake after mistake. Sometimes I manage to go an entire day with nothing but a bunch of failures. On these days I feel blessed.

I know, I know… But don’t call the men in white coats just yet. You see, when writing code, it very rarely works perfectly the first time. You have to go through a process called debugging. Debugging is the process of fixing problems in your code.

I can debug this with my eyes closed…
Photo by Markus Spiske on Unsplash

Every time you run the code and it doesn’t work, this is what I refer to as a micro-failure. A micro-failure is simply a small insignificant failure that doesn’t result in something bad happening. Eventually, after a number of micro-failures, you will work out the problems in the code, and it will work. And this, my friend, is the trick.

Fail Properly

In order to remove the fear of failure, we need to redefine what it means to fail. We can certainly have large failures that result in disappointment, but we can also have micro-failures. The goal is to maximize the micro-failures to reduce the number of large failures.

We can see how this works by looking at the debugging example from earlier. The more I run into problems while developing my applications, the more problems I will have fixed. By the time my application is in the customer’s hands, I may have had thousands of micro-failures.

Now, imagine what it would be like if I simply wrote the code, didn’t test it, and shipped it straight to the customer. Would I have succeeded by not having any micro-failures? More than likely, my application would not work at all, this would be a large failure, and I would no longer have a job.

This concept is not regulated to the world of programming. It can be applied to many areas of life. Let’s look at another example.

Master the ancient art of hoodie
Photo by JC Gellidon on Unsplash

You want to be a penetration tester, but you don’t have much experience. You go and start attempting to hack into networks, but this is probably going to have a less than favorable result and will most likely end in a large failure.

However, what you could do is build a home lab. With the home lab, you can test things out without fear of breaking something or being arrested. What the home lab is doing for you, is creating an environment where you can maximize your micro-failures which in turn reduces the number of large failures.

Failing Works For You Too

We can apply this to many different areas of life.

A chef attempting to come up with a new recipe will probably need to go through many iterations of the recipe to find that one winning recipe. These are micro-failures. Each failure will teach the chef something new that can be applied to the next iteration.

Photo by Matt Chesin on Unsplash

Firefighters have to go through training to learn what to do and what not to do during a fire. The training is the chance for micro-failures. The lessons learned from these micro-failures may one day save the firefighter’s life, or perhaps yours.

It is time that we stop fearing failure and embrace it as the learning opportunity it is. Do not be afraid to fail when learning. This is where you are supposed to fail, so that when you do it for real, you succeed. Maximize your micro-failures. It will only help you later.

There is one difference between an expert and a dimwit. One learns from their mistakes, and the other doesn’t make them. I’ll leave it to you to determine which is which.


  • This motivated me, here, now, 1 am in in the morning, my vm open, cybermentor videos open, udemy open, practicing, learning, failing, and trying to understand what i do not know. Sometimes it feels overwhelming in the amount i do not know. but this post, this post here, gave me some energy. thank you sir. Thank you matthew (CTT veteran here. separated 2016, no job 4 years after separation. I will become a pentester!)