Reframing Failure
I saw this message on an online forum and it reminded me of the uncertainty I felt before starting every one of my internships.
After sharing some of my sentiments in the forum, it got me thinking about my past experiences and how I’ve started reframing failure in tech and I wanted to consolidate those thoughts here.
What is failure?
Before I dive into how I reframe failure, I think it’s good to set some precedence about what exactly constitutes a failure in tech — specifically during a tech internship.
To some, failure might look like this…
And perhaps, incidents like these are the reason why we are so afraid of failures in our own internships.
To me, another mode of failure I often worry about is not being able to complete a feature on time or even finishing the internship project on time.
Broadly speaking, I think of failure as not being able to live up to the expectations that others might have of us — be it not destroying production or not being able to deliver something.
It’s okay to be scared
The most important step in all of this is acknowledging that this fear of screwing up is valid, normal, and very human. Everyone is susceptible to worrying about the unknown.
It is in our nature to be worriers — after all, if we worry and imagine every possible scenario where we screw up, maybe we could would be ready for when it happens and combat it right?
Absolutely not. Although it may be in our nature to worry about the what-ifs, it is unproductive to be paralyzed by the fear of the unknowns and what-ifs.
This is why acknowledging this fear is step 0 — just being aware of it does not fix the problem, but it allows you to see that a problem exists. Only then can you start working towards addressing it.
If not now, then when?
Internships are the PERFECT environment for you to learn and grow and fail. You are supposed to be inexperienced, and you are supposed to stumble around. It is all a part of the process, so embrace it.
While there are many reasons why you are doing the internship, I want to highlight what I believe are the three key purposes of an internship:
- Learning opportunity
- Exploring a field
- Meeting and learning from professionals
Whenever you feel lost and hopeless, remind yourself that you are in the best position to be feeling this way, and turn to the three purposes to figure out what you should be prioritizing. Use them as your North Star throughout the experience.
Self-imposed expectations are not always reality
It is easy to feel like you have to produce the best code, write the best documentation, generate the most value, and deliver the most impact. However, take a step back and ask yourself, “Are these actually what is expected of me? Or are these just what I believe I should be doing?”
As the intern, you are NOT expected to be perfect. Heck, even as a junior/senior engineer, no one expects perfection out of you. No sensible person would place such unrealistic expectations on others, which begs the question — why do you place such unrealistic expectations on yourself?
Be conscious about your self-imposed expectations and realize that the world does not demand perfection from you, you do. So be kind to yourself and allow yourself to make mistakes.
Perfection requires practice, practice entails failure
Let’s suppose that you do want to be perfect and become amazing at what you do. The only way you could even achieve perfection and mastery is through repeated practice which naturally invites failure.
Some of the very best in their craft achieved their mastery through hundreds and thousands of hours of practice and failures.
So, rather than shrinking in fear of failure, embrace it and treat them as roadbumps on your road to mastery. Grow to fill your potential, and you will learn to enjoy the process of failing.
Failure == learning
The best learning opportunities often arise from the greatest failures. I know that the times where I had the greatest delta in learning were born from hours — if not days — of head scratching and banging my head against a wall trying to get something working but failing repeatedly.
The process might be brutal and it might suck in the moment, but more often than not, these are the points where you get to learn and grow the most. In fact, I would argue that if you are not experiencing failure, you are simply not moving out of your comfort zone. So, use these moments as motivations to push through the suffering, knowing that you will grow so much at the end of it.
Adopting a “so what can I do” attitude
If, and when, you do encounter a roadblock, ask yourself this very simple phrase, “So what can I do?”. Rather than worrying about the consequences of a failure that may or may not materialize, focus your efforts on figuring out what’s the next steps you can do to improve the situation.
During one of my production incidents, I felt a flurry of emotions that went from:
- Oh no
- What did I do?
- *Panics*
- Okay, what can I do?
Going to my mentor, I wanted to fix the problem I had started and it became an opportunity for me to understand how our production systems worked, and how such issues were recalled and fixed. It proved to be a positive learning experience.
So as difficult as it may feel to face a problem you caused, there can be much to learn from such an experience.
Trust in the safety nets
While I have been talking a lot about how you can reframe failure in YOUR eyes, a big part of reframing and embracing failure is realizing that there exists some set of safety nets for you to fail safely.
Most companies with decent engineering cultures should have some form of guardrails for you to fail. Having things like proper sandboxed or staging environments, robust CI/CD, comprehensive tests, frequent backups, and detailed rollback plans should give you confidence in being able to fail as much as you want, knowing that these failures do not result in immediate and permanent damage.
Beyond the engineering capacity of the company, you should trust in your coworkers/mentors/managers/seniors to “have your back” and rally around you to fix your mistakes.
These safety nets (or support structures) are quintessential. Knowing that your failures will not cause systems to end up in flames reduces the stress you feel from every mistake and allows you to focus on trying and learning as much.
Conclusion
Failing is scary. Screwing up is horrifying. But doing nothing because of these fears should scare you even more. You need to embrace failure and reframe how you think about failure to be the best version of yourself.
All the best!