Minesweeper automates root cause analysis as a first-line defense against bugs
engineering.fb.com
engineering.fb.com
A more accurate title may be “automatic data collection and analysis for bug reports”; I’m also confident that Microsoft has been doing this exact same thing for at least a few decades.
Is it possible to measure overall system memory pressure in JS or is that sandboxed?
It's often more about people problems than software problems..
I like to give the example of the Concorde airplane crash [0] to exemplify the difference: the incident was triggered by debris on the runway (which caused the tires to explode, igniting the fuel tank above). But the root cause was the placement of fuel in proximity of inflatable tire materials.
The combination of overweight, overfueled, wrong wind direction and 3 out 4 engines operational severely limited Concorde's ability to return to an airport. So I'm not sure you can blame the design decision of putting fuel in the wings(which literally every other relevant passenger aircraft does).
To me a "trigger" is the initial event that begins a sequence. Isn't that also a "root cause"?
Since everything is connected to everything else, it seems like the point that you decide is the "root" is fairly arbitrary.
It seems you could easily conclude that the root cause was that the runway wasn't cleaned/inspected often enough. Or that the departures were scheduled too close together, preventing such an inspection, etc..
If anything I would say the root cause was the piece of engine cowl falling from the preceding flight - since that seems to be the first thing that "went wrong" in the process.
As such the problem is an air plan which is designed in a way too prone to cause (too) fatal accidents in certain "rare but guaranteed to happen at some point" situation.
But in the end if you say both are trigger which together lead to the catastrophe or one is a trigger and another is the root cause is indeed irrelevant.
The problem is if you do something I will call trigger analysis but refer to root cause analysis treating it as if it gives you the root cause it can very easily to situations where you fix one of the problems but not all, and potentially not even the biggest problem.
I.e. you make it slightly less likely that there is debris on the runway but you don't fix the problem of the airplane being too prone to certain kinds of catastrophic failure.
Similarly here, a trigger might be uploading a photo to FB, but the root cause of an issue might be a bug in encoding JPGs.
Q1: Why did the plan explode?
A1: The engine cowling fell into the engine
Q2: Why'd that happen?
A2: The tire exploded and damaged it.
etc etc.
Obviously the number 5 is arbitrary and not always applicable, it's just a heuristic to get to something "root-ish" without getting to ridiculous distant things like "the laws of physics prevent two objects from inhabiting the same position in space-time".
More generally, defining something as root vs. not is somewhat of a judgement call. Usually you try to find something that will prevent future problems of this sort and call it the root cause. Ideally something that your organization can mitigate with a reasonable time/cost.
Note that the actual mitigation is a separate question. If runway debris is the root cause, then one mitigation is reworking the fuel system. Another would be using tougher tires. Perhaps another would be adding a shield between the tires and the aircraft body. Another might be an automated runway monitoring system that detects debris. etc.
I think the distinction is that the "trigger" relates to a particular instance of failure, whereas the "root cause" relates to a class of failures.
yes.
> To me a "trigger" is the initial event that begins a sequence. Isn't that also a "root cause"?
no. root causes are irreducible, hence the word "root".
if someone is endlessly trained for an event and then fails at game time, its probably a root cause. people make mistakes that cannot be avoided (this is why defense in depth is a thing)
if the training program is a 5 second sentence before the event, the persons mistake is not the root cause, its the training program.