TL;DR
This post is about my learning experience from the Basic Pathologies of Simple Systems of Online Testing Conference 2020, presented by James Lyndsay.
The lecture was interactive driven in contrast to usual slide driven lectures.
James Lyndsay is everywhere! I examined one of his “simple” systems at TestBash Home, was very excited that I got another opportunity to learn about simple systems.
We should get three takeaways from this lecture:
- direct experience of complex behavior emerging from simple parts
- insight into damping and amplification of behaviors
- recognition that these simple systems are displaying their nature, not a pathology
What happens to the tester that interacts with simple systems?
Tester is usually surprised by the outcome of the interaction.
Paper Alert. Robert May was an Australian Mathematician. He wrote in 1972 paper titled Will a Large Complex System be Stable?
Gardner and Ashby have suggested that large complex systems that are assembled (connected) at random may be expected to be stable up to a certain critical level of connectance, and then, as this increases, to suddenly become unstable.
A simple system is a system with complex properties. On the opposite, we have a system that is easy to understand and predict. As software tester’s, we usually build and test simple systems. Why is it so? We need to handle:
- people
- os
- code
- UI
- Browser
- Mobile devices
Basic pathologies of simple systems are in us. Simple systems do not lie about their behavior, they surprise. And our usual reaction is that we do not accept that system truth.
A Simple Bathtub
We started with a simple toy, a bathtub, with two sliders, the tap, and the plug. This is an example of a simple system.
We got two minutes to figure out which one is a tap slider.
The point of this exercise is not just to figure out which slider is tap/plug. The point is to try to explain the simple system rules in your own words. For triggering the rules, you will use those two sliders. And as you will use the system, you will get surprised/confused. Because this simple bathtub has emerging properties.
Here is what system analyst, aka, testers would do. It would change the input and observe the output. When we are surprised, this is a system diagnostic. When we figure out a rule between input/output, that is system modeling.
Then we have examples of simple systems where results change over time. The system handles more and more errors, and after some time, that error handling generates more error (feedback loop).
We can make simple systems more sensitive. Or we have two systems that could become in sync over time.
System complication is when small differences in starting points result in significant latter differences.
Summary
Do not ignore system truth.
Pay attention to system complications.