loader from loading.io

Beyond Root Cause Analysis in Complex Systems

Code[ish]

Release Date: 04/27/2021

Looking into the Future of Agentic AI with Kit Merker show art Looking into the Future of Agentic AI with Kit Merker

Code[ish]

At the bleeding edge of computer vision is Plainsight Technologies, a company that’s modernizing infrastructure to handle future agentic AI workloads. Join us as we speak with CEO Kit Merker on Plainsight’s vision for the future, technological goals, and the leading case studies for computer vision. Hear from host Julián Duque and Kit Merker in this new, insightful episode of the Code[ish] podcast.  

info_outline
Heroku in the Wild: reinteractive on AI and Rapid POCs show art Heroku in the Wild: reinteractive on AI and Rapid POCs

Code[ish]

We love hearing from developers who are building amazing things with Heroku, and this episode of Code[ish] is a perfect example! CEO of Australian firm reinteractive, Errol Schmidt, is here to speak with Julián about what his team has achieved and what they’re working on next.  Together, they discuss why Heroku is the best tool for Ruby on Rails development, how organizations can safely integrate AI, and the importance of being able to quickly stand up proof-of-concept apps. 

info_outline
Spring Boot with Guest Josh Long show art Spring Boot with Guest Josh Long

Code[ish]

This week, Julián is joined by the first Spring Developer Advocate and Java champion, Josh Long! Tune in as the pair discusses Spring Boot and tools like Spring AI, Spring Modulith, Spring Cloud, and Spring Shell that build upon it.  If you're a Java veteran like Josh, or returning to it after years away like Julián, this Tips & Tricks episode of Code[ish] will bring you up to speed.

info_outline
Getting Started with Slack Apps and Slack AI show art Getting Started with Slack Apps and Slack AI

Code[ish]

Slack can be so much more than a way to chat with your colleagues. In this episode of Code[ish], we’re joined by Maria José Hernández to find out how Slack Apps and Slack AI can elevate the app into an organization-wide, personalized Work OS.  In conversation with Julián Duque, Maria shares insights into the tools available for developers, and what’s included in the Slack Developer Program. Whether you’re pro-code or no-code, this episode is packed with valuable information to help you build, innovate, and improve your workday with Slack.  

info_outline
The Development Basics of Managed Inference and Agents show art The Development Basics of Managed Inference and Agents

Code[ish]

The Code[ish] Podcast is back! Join Heroku superfan Jon Dodson and Hillary Sanders from the Heroku AI Team for the latest entry in our “Deeply Technical” series. In this episode, the pair discuss Heroku Managed Inference and Agents—what it is, what it does, and why developers should be using it.  Hillary also shares tips for new developers entering the job market, and Jon pits 10 principal developers against one hundred fresh bootcamp graduates (hypothetically, of course).

info_outline
Code[ish] Season 2 Preview show art Code[ish] Season 2 Preview

Code[ish]

A brand-new season of The Code[ish] Podcast is on the way!  Loads of insightful episodes are on the way, featuring special guests from all corners of the Heroku community. 

info_outline
Why Writing Matters for Engineers show art Why Writing Matters for Engineers

Code[ish]

In this episode, Ian, Laura, and Wesley talk about the importance of communication skills, specifically writing, for people in technical roles. Ian calls writing the single most important meta skill you can have. And the good news is that you can get better at it, with deliberate practice!

info_outline
Open Source with Jim Jagielski show art Open Source with Jim Jagielski

Code[ish]

This episode is hosted by Alyssa Arvin, Senior Program Manager for Open Source at Salesforce, with guest Jim Jagielski, the newest member of Salesforce’s Open Source Program Office (OSPO). They talk about Jim’s early explorations into open source software during his time as an actual rocket scientist at NASA and his role in the formation of the Apache Software Foundation. Next, they discuss getting started in open source, specifically, how to find the right open source community for you to start cont

info_outline
Success From Anywhere show art Success From Anywhere

Code[ish]

This episode of Codeish includes Greg Nokes, distinguished technical architect with Salesforce Heroku, and Lisa Marshall, Senior Vice President of TMP Innovation & Learning at Salesforce. Lisa manages a team within technology and product that focuses on overall employee success in attracting technical talent and creating a great onboarding experience.

info_outline
Demystifying the User Experience with Performance Monitoring show art Demystifying the User Experience with Performance Monitoring

Code[ish]

In this episode of Codeish, Greg Nokes, distinguished technical architect with Salesforce Heroku, talks with Innocent Bindura, a senior developer at Raygun about performance monitoring.

info_outline
 
More Episodes

In this episode of Codeish, Marcus Blankenship, a Senior Engineering Manager at Salesforce, is joined by Robert Blumen, a Lead DevOps Engineer at Salesforce.

During their discussion, they take a deep dive into the theories that underpin human error and complex system failures and offer fresh perspectives on improving complex systems.

Root cause analysis is the method of analyzing a failure after it occurs in an attempt to identify the cause. This method looks at the fundamental reasons that a failure occurs, particularly digging into issues such as processes, systems, designs, and chains of events. Complex system failures usually begin when a single component of the system fails, requiring nearby "nodes" (or other components in the system network) to take up the workload or obligation of the failed component.

Complex system breakdowns are not limited to IT. They also exist in medicine, industrial accidents, shipping, and aeronautics. As Robert asserts: "In the case of IT, [systems breakdowns] mean people can't check their email, or can’t obtain services from a business. In other fields of medicine, maybe the patient dies, a ship capsizes, a plane crashes."

The 5 WHYs

The 5 WHYs root cause analysis is about truly getting to the bottom of a problem by asking “why” five levels deep. Using this method often uncovers an unexpected internal or process-related problem.

Accident investigation can represent both simple and complex systems. Robert explains, "Simple systems are like five dominoes that have a knock-on effort. By comparison, complex systems have a large number of heterogeneous pieces. And the interaction between the pieces is also quite complex. If you have N pieces, you could have N squared connections between them and an IT system."

He further explains, "You can lose a server, but if you're properly configured to have retries, your next level upstream should be able to find a different service. That's a pretty complex interaction that you've set up to avoid an outage."

In the case of a complex system, generally, there is not a single root cause for the failure. Instead, it's a combination of emergent properties that manifest themselves as the result of various system components working together, not as a property of any individual component.

An example of this is the worst airline disaster in history. Two 747 planes were flying to Gran Canaria airport. However, the airport was closed due to an exploded bomb, and the planes were rerouted to Tenerife. The runway in Tenerife was unaccustomed to handling 747s. Inadequate radars and fog compounded a combination of human errors such as misheard commands. Two planes tried to take off at the same time and collided with each other in the air.

Robert talks about Dr. Cook, who wrote about the dual role of operators. "The dual role is the need to preserve the operation of the system and the health of the business. Everything an operator does is with those two objectives in mind." They must take calculated risks to preserve outputs, but this is rarely recognized or complemented.

Another component of complex systems is that they are in a perpetual state of partially broken. You don't necessarily discover this until an outage occurs. Only through the post-mortem process do you realize there was a failure. Humans are imperfect beings and are naturally prone to making errors. And when we are given responsibilities, there is always the chance for error.

What's a more useful way of thinking about the causes of failures in a complex system?

Robert gives the example of a tree structure or AC graph showing one node at the edge, representing the outage or incident.

If you step back one layer, you might not ask what is the cause, but rather what were contributing causes? In this manner, you might find multiple contributing factors that interconnect as more nodes grow. With this understanding, you can then look at the system and say, "Well, where are the things that we want to fix?" It’s important to remember that if you find 15 contributing factors, you are not obligated to fix all 15; only three or four of them may be important. Furthermore, it may not be cost-effective to fix everything.

One approach is to take all of the identified contributing factors, rank them by some combination of their impact and costs, then decide which are the most important.

What is some advice for people who want to stop thinking about their system in terms of simple systems and start thinking about them in terms of complex systems?

Robert Blumen suggests understanding that you may have a cognitive bias toward focusing on the portions of the system that influenced decision-making.

What was the context that that person was facing at the time? Did they have enough information to make a good decision? Are we putting people in impossible situations where they don't have the right information? Was there adequate monitoring? If this was a known problem, was there a runbook?
What are ways to improve the human environment so that the operator can make better decisions if the same set of factors occurs again?