We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode Beyond Root Cause Analysis in Complex Systems

Beyond Root Cause Analysis in Complex Systems

2021/4/27
logo of podcast Code[ish]

Code[ish]

AI Deep Dive AI Chapters Transcript
People
M
Marcus Blankenship
R
Robert Blumen
Topics
Robert Blumen: 我认为传统的根源分析方法在复杂系统面前显得力不从心。在IT、医疗、航空等领域,我们常常遇到复杂系统故障,这些故障往往不是由单一原因引起的,而是多种因素共同作用的结果。简单地追溯“五个为什么”并不能真正揭示问题的本质。我认为,我们应该采用一种更全面的视角,将系统视为一个由大量异构部件组成的网络,关注部件之间的复杂交互。例如,特内里费空难就是一个典型的例子,天气、机场条件、人为失误、技术缺陷等多种因素交织在一起,最终导致了悲剧的发生。因此,我认为,我们应该放弃寻找单一“根源”的执念,转而关注多个共同作用的因素,并采取相应的改进措施。 Marcus Blankenship: 我同意Robert的观点。在复杂系统中,简单地追问“为什么”并不能有效地帮助我们理解问题。传统观点倾向于追究责任,将问题归咎于个人,但这往往忽略了系统性的因素。我认为,我们应该更加关注操作员所处的环境,他们是否拥有足够的信息做出正确的决策?我们是否将他们置于没有正确信息的困境中?我认为,改善人的环境,让操作员能够做出更好的决策,才是解决问题的关键。例如,在特内里费空难中,飞行员误听指令是一个重要因素,但我们不能简单地将责任归咎于飞行员,而应该反思空管系统是否存在缺陷,是否可以采取措施来避免类似错误再次发生。

Deep Dive

Chapters
Root cause analysis attempts to find the single cause of a failure using methods like the '5 Whys'. However, this approach is inadequate for complex systems, where failures arise from multiple interacting factors rather than a single root cause. The arbitrary nature of the '5 Whys' method highlights its limitations in understanding complex system failures.
  • Root cause analysis is used across various domains (IT, medicine, industrial accidents, etc.)
  • The '5 Whys' method is popular but arbitrary, often failing to uncover the true cause in complex systems
  • Complex systems exhibit emergent properties where the whole is greater than the sum of its parts

Shownotes Transcript

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?