Stop Blaming, Take a Holistic Perspective, and Start Improving
We do not blame. Failure, Mistakes and Incidents are an opportunity to jointly learn and improve
In the dynamic world of software engineering, it's easy to fall into the trap of blaming when things go wrong. A bug in the code, a missed deadline, a failed project and many others annoying things can quickly turn into a blame game. However, this approach is not only counterproductive but also detrimental to the overall growth and development of the team and the organization. Instead, adopting a holistic perspective can lead to significant improvements and foster a positive work environment. Failures are a great chance to learn and focus the energy towards improving. Therefore, it is important to learn and adapt towards being able to learn from failure, being able to take a holistic perspective and start improving. This is true on the personal level, team level and organizational level. This blog shall provide you an overview of relevant disciplines in the context of software engineering and provide you with resources to learn more about them. The learnings from these disciplines can also be applied to many other areas of your life beyond the software world.
Understanding the Blame Game
Blame culture in software engineering is often a symptom of deeper issues within the organization. It can stem from a lack of clear communication, unrealistic expectations, inadequate resources or natural human tendency. When individuals or teams are blamed for failures, it creates a defensive environment where people are more concerned about protecting themselves than finding effective solutions. Additionally, it does not leverage the energy to start towards improving the factors, which contributed to the reasons for blaming. This can lead to a decrease in productivity, creativity, effectiveness and overall team morale.
Taking a Holistic Perspective and identifying Contributing Factors
A holistic perspective involves looking at the bigger picture. Instead of focusing on individual mistakes or failures, it emphasizes understanding the system as a whole. This approach recognizes that failures are often the result of complex interactions within the system rather than the fault of a single individual or team.
In software engineering, a holistic perspective might involve considering factors such as the clarity of project requirements, the adequacy of resources, the effectiveness of communication channels, the appropriateness of the chosen technology stack, the incentives, the decision-making process and constraints of the system. By examining these factors, we can gain a deeper understanding of the root causes of problems and develop more effective solutions.
We do not blame. Failure, Mistakes and Incidents are an opportunity to jointly learn and improve
Failure is a great opportunity to learn and adapt. For being able to do that as an individual and an organization we need to build on some important principles and practices. In the next chapters you can find resources for getting inspiration on how to improve individually and as an organization towards stop blaming, learning from failure and improving.
Psychological Safety
Psychological Safety is the foundation for being able to openly discuss and being able to learn from failure. It was found to be the single most influential factor on team performance in google's Aristotle Project.
Original research by Amy Edmondson: TED talk, Journal article
Helpful metaphor/concept: The Trust Battery by Shopify's Tobi Luetke
Mentioned/explained in a Podcast with Tobi
Also mentioned in a chapter in It doesn't have to be crazy at work
Incident Reviews
Incident Reviews, also known as Post-Mortems or Incident Retrospectives, are a critical part of the incident management process. They provide an opportunity to learn from incidents and improve systems and processes.
Understanding the Root Cause: Incident Reviews aim to understand the root cause of an incident. They look beyond the immediate error or individual involved and delve into the systemic factors that contributed to the incident. This could include gaps in communication, inadequate processes, or technical debt.
Promoting a Learning Culture: Incident Reviews encourage teams to view incidents as learning opportunities. Instead of focusing on punishment, the emphasis is on gaining insights that can prevent similar incidents in the future. This fosters a culture of continuous learning and improvement.
Encouraging Open Communication: Incident Reviews create a safe space for team members to share their perspectives and experiences without fear of retribution. This open communication can lead to a more comprehensive understanding of the incident and more effective solutions.
Improving Systems and Processes: The insights gained from Incident Reviews can lead to improvements in systems and processes. This could involve enhancing monitoring and alerting systems, refining deployment processes, or improving incident response protocols.
Building Trust and Collaboration: By removing blame, Incident Reviews can help build trust and foster collaboration within teams. When individuals are no longer afraid of being blamed for mistakes, they are more likely to take risks, innovate, and collaborate effectively.
On Incident reviews
Practical Advice
Resilience Engineering
Resilience Engineering is a discipline that focuses on improving the ability of systems to respond, adapt, and recover from failures or disruptions. It's particularly relevant in fields like software engineering, where systems are complex and the cost of failure can be high.
Resilience Engineering
Talks
System Thinking
Systems thinking is a holistic approach that focuses on understanding the interconnections and interactions within a system, rather than isolating individual components. It can play a crucial role in shifting the culture from blaming to improving in several ways:
Understanding Interdependencies: Systems thinking helps us understand how different parts of a system interact and influence each other. This can lead to a realization that failures are often not the result of one person's mistake, but rather the outcome of complex interactions within the system. This understanding can help shift the focus from blaming individuals to identifying and addressing systemic issues.
Identifying Root Causes: Systems thinking encourages us to look beyond the immediate symptoms of a problem to uncover the underlying causes. This can lead to more effective solutions and prevent similar issues from recurring in the future.
Promoting Collaboration: By highlighting the interconnected nature of systems, this approach can foster a greater sense of shared responsibility. It can help move teams away from a culture of blame and towards a culture of collective problem-solving and continuous improvement.
Encouraging Learning and Adaptation: Systems thinking promotes an iterative process of learning and adaptation. By continually reflecting on our actions and their outcomes, we can learn from our mistakes and continually improve our strategies and processes.
Fostering Empathy and Understanding: By understanding the complexity of the system and the interdependencies involved, teams can develop a greater sense of empathy and understanding for each other. This can help reduce blame and foster a more supportive and collaborative work environment.
In summary, systems thinking can help shift the focus from blaming individuals for failures to understanding and improving the system as a whole. It promotes collaboration, continuous learning, and a deeper understanding of the complex dynamics at play, leading to more effective problem-solving and continuous improvement.
Thinking in Systems: A Primer by Donella H. Meadows: This book offers insight for problem-solving on scales ranging from the personal to the global.
Call for Action
The journey to a blameless culture and the ability to take a holistic perspective is not an easy one, but it is a necessary and rewarding endeavor. It requires a shift in mindset, a commitment to learning and improvement, and the courage to challenge the status quo. But the benefits are immense: a more collaborative and productive work environment, more effective problem-solving, and a stronger, more resilient organization. So, where do you start?
Embrace a Holistic Perspective
Begin by embracing a holistic perspective. Understand that failures are not the result of individual mistakes, but rather the outcome of complex interactions within the system. Look beyond the immediate symptoms of a problem to uncover the underlying causes. This will lead to more effective solutions and prevent similar issues from recurring in the future.
Foster Psychological Safety
Create an environment of psychological safety where team members feel safe to take risks, make mistakes, and voice their opinions. This will foster open communication, encourage learning and innovation, and build trust within the team.
Implement Incident Reviews
Incorporate Incident Reviews into your incident management process. Use these reviews as an opportunity to learn from incidents, improve systems and processes, and foster a culture of continuous learning and improvement.
Learn from Resilience Engineering
Explore the principles and practices of Resilience Engineering. Learn how to improve the ability of your systems to respond, adapt, and recover from failures or disruptions.
Apply Systems Thinking
Adopt a systems thinking approach. Understand the interconnections and interactions within your system and use this understanding to shift the focus from blaming individuals to improving the system as a whole.
Educate Yourself and Your Team
Finally, educate yourself and your team. Use the resources provided in this blog to deepen your understanding of these concepts and practices. Share these resources with your team and encourage them to learn and grow.
Remember, the journey to a blameless culture is a continuous one. It requires ongoing effort, learning, and adaptation. But with commitment and perseverance, you can transform your culture, improve your performance, and build a stronger, more resilient organization.
So, are you ready to stop blaming, take a holistic perspective, and start improving? The journey starts now.
Resources
Collaboration on Improving: In this blog I share my own learnings from the software engineering and software architecture world.
Subscription: If you want to get updates, you can subscribe to the free newsletter:
Mark as not spam: : When you subscribe to the newsletter please do not forget to check your spam / junk folder. Make sure to "mark as not spam" in your email client and move it to your Inbox. Add the publication's Substack email address to your contact list. All posts will be sent from this address: ecosystem4engineering@substack.com.
Thanks for reading Software Engineering Ecosystem! Subscribe for free to receive new posts.
❤️ Share it — The engineering ecosystem newsletter lives thanks to word of mouth. Share the article with someone to whom it might be useful! By forwarding the email or sharing it on social media.