I just wanted to reach out to you guys, with what I have learned about debugging complex systems.
Debugging systematically is about simplifying the problem to the smallest possible number of moving parts, without masking the problem. So if there are three moving parts I lock down two of them (part A, part B) with a snapshot of their dynamic states (*) and then I observe the behaviour of the third (part C). If that is correct, then I rotate the test through to the next part, locking down part A and part C and observing part B.
This is otherwise known as a "process of elimination". This works for electronics, software, interpersonal issues in teams
(*) you must lock the moving parts down in a valid state to keep the debugging scenario realistic.
Debugging systematically is about simplifying the problem to the smallest possible number of moving parts, without masking the problem. So if there are three moving parts I lock down two of them (part A, part B) with a snapshot of their dynamic states (*) and then I observe the behaviour of the third (part C). If that is correct, then I rotate the test through to the next part, locking down part A and part C and observing part B.
This is otherwise known as a "process of elimination". This works for electronics, software, interpersonal issues in teams
(*) you must lock the moving parts down in a valid state to keep the debugging scenario realistic.
Comment