Nothing stifles innovation and creativity more than the fear of failure. I have found that software engineers do their best work when provided an environment where it is okay to make mistakes and fail. Failure is often the best way to learn and is an important step on the road to success.
As a manager, I know that my teams will fail and make mistakes, so the most important job for me is to ensure that I react appropriately when it happens. Here are a few things that I focus on when a failure occurs.
- Calm and Reassurance - It is easy for things to escalate quickly and emotions to be heightened when a bad or unexpected situation happens. Because of this, I try to remain as calm as possible. I make sure to remind everyone involved that failures and mistakes happen, it's okay, and we will work through it together. The need for reassurance also extends beyond my teams to stakeholders and leadership as well.
- Remain Blameless - This is crucial to ensure that we can turn any mistake or failure into something that we can learn from. Finger pointing or laying blame only increases the fear of failure going forward and absolutely no good comes of it. It is also important to not confuse placing blame with accountability, they are 2 separate things. Remaining blameless may also mean providing cover for my team. Even though I try to remain blameless within my team, sometimes other stakeholders or engineering teams may do some finger pointing. If someone feels the need to lay blame, I make sure that it is directed at me and not my team.
- Communicate - It is important to never hide failures. As soon as I have understand the situation, I share it with all stakeholders without reservation. Production outages or issues are immediately reported to our operations team. Impacts to product delivery timelines go straight to the product manager and engineering leadership. These communications should simply state the facts of the situation and reassurance that we are working on a resolution. Keep the lines of communication open and provide updates frequently.
- Retrospection - By far the most important part of developing a culture to overcome the fear of failure. After the initial panic is over and things settle down, I make sure that we take the time to reflect on the situation as a team. We talk through what we learned, new ideas, and how we can do things better moving forward. Most importantly, we take action on these things. Even though I don't want my teams to be afraid of failure, I never want them to fail the same way over and over again.
Most of the greatest successes that I have seen in my 17+ years working in software development were spawned from previous failures. If we play it too safe and are afraid to take risks then our teams and systems will stagnate and never reach their full potential.
building shutterly.co
9 个月Couldn’t agree more! Normalizing failure as part of the learning process is crucial.