Embracing Failures and Dealing With Mistakes

Essame Samman
upday devs
Published in
4 min readNov 12, 2020
Photo by Jamie Street on Unsplash

Achieving great milestones rarely happens without failures. However, happy endings are not exclusive to Hollywood movies. Dealing with a failure properly might grant you a happy end as well.

Working in the software industry is very challenging. Altogether, software products are becoming more and more complex, however, in our day to day tasks, we confront different levels of complexity, starting from regular tasks like daily stand-ups, pitching a new feature, analyzing business-related data, and preparing various reports. But the moment of truth is often associated with releasing something new or delivering something to the users.

In such situations, with high levels of uncertainty and complexity, you should be fully confident that all perfect upfront preparations and plans will not be as helpful as embracing failure mechanisms that will help you in adapting your plans in order to avoid any undesirable situation.

Planning is everything, the plan is nothing.

Dwight Eisenhower

Below are some important points to be considered including but not limited to:

  1. Be prepared and do not panic: but is this a contradiction of what has been just mentioned? Actually no. You should be prepared in terms of expecting something wrong may happen. Being prepared will benefit you in avoiding freaking out situations. Ultimately, these preparations should also include all relevant stakeholders.
  2. Report and communicate the issue/mistake: Although you did a great job upfront, something wrong happened. At this moment you really want to report it to all relevant stakeholders. Do not be afraid of being criticized, open communication is quite useful compared to being conservative and dealing with the issue on your own. There is an important point here which is strictly coupled with the organization’s culture, everybody must avoid finger-pointing;
  3. Asking for help: The one-man show is an outdated model. A cliché. Proficient individuals are organized as teams, so shout out for help and make sure to utilize the capabilities of people around you.
  4. Prioritizing solutions: Since you have asked for help, many solutions will evolve from these brainstorming efforts, so make sure to assess those solutions and be sure to prioritize them. Some helpful measures to be considered are complexity, efficiency, implementation time, and required efforts.
  5. Report your status: While you are stuck in this situation, be sure to keep all communication channels very active. Don’t keep your stakeholders in the dark — it’s important to provide updates about your efforts as any piece of information is very valuable.
  6. Keep monitoring your KPIs: Although you are dealing with a very critical situation, you need to keep an eye on your major KPIs. You do not want to make things worse.
  7. Celebrate your achievement: Your overall efforts will result in overcoming this situation, gradually things will get better and you will see your achievements after recovering from the bad situation. Therefore it does not make sense to think about your failure but celebrating your team efforts will be more helpful for everybody who involved in this chaos. So do not miss this moment.
  8. Last but not least do not forget to extract the lesson to be learned: At the time, you doubted that you will ever transcend this chaos, but the truth is, you finally made it. However, before you sit back and relax, you should figure out what you have learned from your experience thus far. You need to answer this question while everybody is feeling more relaxed as stress levels went down again. You need to answer this question to mature your knowledge before getting back to the regular day to day tasks.

The above suggestions are based on my real-life experience and extracted from the behavior of teams which I witnessed acting in various contexts. I have worked with tech teams delivering value for end-users in a very challenging environment as well as humanitarian teams delivering lifesaving assistance to people affected by crises in a very dangerous environment. In both contexts, the level of complexity and uncertainty was very high. Hence, mistakes may occur in some way or other despite all the magnificent efforts made upfront.

For tech teams, delivering value is the topmost priority. Typically, these teams work under the high-pressure of technology complexity and strict timelines. However, integrating a third-party component into your product will make things worse. At that moment all your perfect upfront preparation may fail as you have an uncontrolled variable in the equation. This is exactly what happened with our team. Fortunately, we had the tips mentioned above to guide us. On the other hand, humanitarian agencies work together to respond to the needs of people affected by a crisis or an emergency situation. A response, in most common cases, involves several stakeholders from different domains and institutions such as the Government authorities, the community leaders, the local charities with different levels of proficiency, and so on. So here again any super plan may fail miserably while being prepared to deal with that was far more useful.

For people seeking information built upon more scientific resources, I will recommend reading a paper written as a case study by Anne K. Delehunt in the Harvard Business Review journal. It examines the response of ExxonMobile after the crisis of oil spill in Prince William Sound off the Alaskan coast. It is very useful in terms of crisis management.

--

--