Failure MUST be an option for innovation
This week I hosted a brown bag session at work where I explored the idea that failure isn’t something to be avoided at all costs but must be a safe option for software engineering teams. The concept of failure often carries a negative connotation. However, embracing failure as an option can foster an environment of learning, innovation, and psychological safety. Let’s explore this by looking at the benefits this shift in mindset can bring, and the elements required to create a culture where failure is seen as a stepping stone to success.
You can’t push boundaries if you can’t accept getting it wrong sometimes
Failure must be an option in any innovative environment. This doesn’t mean that failure should be the goal, but rather that it should be accepted as a possible outcome. By doing so, teams can experiment, take risks, and ultimately find novel solutions to complex problems. When there is a culture of accepting failure, you reduce the aversion to risk and encourage experimentation, leading to unexpected discoveries and improvements.
“Fear kills more dreams than failure ever will” — Suzy Kassem.
The Benefits of Embracing Failure
- Fostering Innovation and Learning: When failure is accepted, teams are more likely to try new approaches and think outside the box. This can lead to innovative solutions that might not have been discovered otherwise. Embracing failure leads to an environment where “wacky” ideas are encouraged, and experimentation is valued.
- Building Psychological Safety: Accepting failure helps build a culture of psychological safety, where team members feel comfortable sharing their ideas and taking risks without fear of retribution. An example of this is team retrospectives, where we with a prime directive that acknowledges everyone did their best given the circumstances.
- Encouraging Continuous Improvement: By learning from failures, teams can continuously improve their processes and products. Mistakes are essential for growth and learning, as they provide valuable lessons that can guide future efforts.
Key Elements to Embrace Failure
To create a culture where failure is accepted and leveraged for growth, several key elements are necessary:
- Feedback Loops: Implementing feedback loops, such as automatic code coverage reports, unit testing, and regression testing, can help identify issues early and allow teams to fail without significant consequences. Monitoring and observability tools also play a crucial role in providing real-time feedback.
- Knowledge Sharing: Open communication within and across teams is vital. Pair programming, communities of practice, and regular knowledge-sharing sessions can help disseminate information and foster collaboration. These practices can speed up onboarding and improve overall team performance.
- Promoting a Learning Culture: Allocating dedicated time for learning and experimentation encourages team members to explore new technologies and approaches. As an example, my team sets aside part of their sprint for learning activities, which has led to the discovery of valuable tools and techniques.
- Encouraging Experimentation: Creating an environment where experimentation is encouraged and failures are seen as learning opportunities is crucial. Blameless post-mortems and celebrating both successes and failures can help reinforce this mindset.
A DevOps Culture embraces failure as an option
Embracing failure as a safe option in DevOps is not about seeking failure but about creating an environment where risks can be taken, and learning is continuous. By fostering innovation, building psychological safety, and promoting a learning culture, teams can turn failures into opportunities for growth and improvement. In fact, accepting failure can lead to significant advancements and a more resilient, innovative organisation.