Last week I contributed at the annual global patterns conference, aka Pattern Languages of Problems or PLoP.
The site is here https://www.hillside.net/plop/2018/
We met this year in Portland Oregon. They do patterns and pattern languages, originally branching from Alexander’s seminal work in patterns in architecture into patterns around computer programming. Today they also do patterns of human interaction and problem solving.
The group that runs this conference also spawned the first wiki, which eventually inspired Wikipedia. It was founded about the same time that the “Gang of Four” book “Design Patterns: Elements of Reusable Object-Oriented Software” with involvement of Ralph Johnson, one of the authors of that book, and based on the ideas of Erich Gamma, another author.
This group is important to software and the internet! Patterns and pattern languages around computer programming are very well suited to describing and communicating effective solutions to common problems.
MetaAutomation – the pattern language I created – is a powerful way of re-organizing and expressing patterns of existing practices, to ship software faster, at higher quality, with better communication and collaboration, and happier teams.
One of the frequent participants and games leader Professor Dr. Christian Kohls of Technische Hochschule (TH) Köln presented a paper “Innovative Loops: how iteration fosters creativity.”
The pattern I found most engaging is Progressive Abstraction. The problem statement for this pattern: “Many innovations try to improve existing solutions without questioning the general approach. By focusing on an existing design, we miss an opportunity to find new alternatives to address requirements.”
I sometimes call this taking the big-picture view or looking to the bigger picture.
The example that Kohls uses in his paper is fossil fuel motors (or, what we in the electric vehicle community call “ICE” for internal combustion engines).
“…if we focus on improving fossile fuel motors we may miss alternative ways of transportations - or even reduce the need of transportation.”
Another example is fandom of sports teams. Suppose I’m a fan of the Seattle Slugs, and you’re a fan of the Portland Porcupines, and we’re having an argument over who is the better sports team. I decide to resolve the issue by punching you in the nose, and it even seems to work for a few seconds, but I’d be missing the bigger picture completely, and it really wouldn’t work at all to resolve the issue.
What is so appealing to me about Professor Kohls’ paper, and in particular the Progressive Abstraction pattern, is that it describes exactly what I’m doing for quality automation: questioning the general approach.
While the industry seems to be moving from individually implemented test case methods to keyword-based methods to BDD-style that uses implemented keywords, it has failed to deliver valuable runtime data on how the SUT is actually driven and measured (other than vague, not-trustworthy keywords where you really don’t know what goes on).
The “Meta” of MetaAutomation is about the bigger picture: what can we do best in the quality automation problem space? This requires questioning the general approach.
The samples here <link> implement the Hierarchical Steps pattern and show how to make driving the SUT self-documenting in highly trustworthy detail, so that the other patterns of MetaAutomation (or, something like them) can be implemented so that quality measurement and communication is faster and more effective, and quality management faster and more powerful.
The Progressive Abstraction pattern is about looking to the bigger picture to discover better solutions. MetaAutomation is the better solution to quality automation.