The word “Meme” was coined by British evolutionary biologist
Richard Dawkins to describe the spread of ideas and cultural phenomena,
including cultural patterns and technologies.
Metaautomation describes a set of techniques and
technologies that enable a view of software quality that is both deeper and
broader than is possible with traditional software automation alone, and given
sufficient investment, this can be taken further to do smart automated test retries
and even automated triage and pattern detection that wouldn’t be possible with
traditional techniques.
For the more advanced metaautomation concepts, the investment
and risk are greater, and the potential reward in terms of team productivity
are much greater. So, I’m dividing the meme into two parts:
·
First-order metaautomation: making test failures
actionable, and minimizing the chances that a debugging session is necessary to
find out what happened
·
Second-order metaautomation: creating some
degree of automated triage, automated failure resolution, and automated smart
test retry
Metaautomation is an innovation analogous to the simple
structural arch: before arches, the span and strength of bridges was limited by
tensile strength (resistance to bending) of the spanning material. A famous
example of this technology is North Bridge in Concord, Massachusetts.
But with arches, the span and strength is limited by the compressive strength of the material
used. This works well with another common building material – stone - so the
technology allows much more impressive and long-lasting results, for example,
the Alcantara Bridge in Spain.
The techniques of metaautomation did not originate with me,
but in defining the term and establishing a meme for the pattern, I hope to
make such techniques more understandable and easy to communicate, easier to
cost and express benefits for the software process, and therefore more common.
The first order of metaautomation will become very commonly
used as the value is more widely understood. The second order of metaautomation
is good for large, distributed and long-lived projects, or where data has high
impact e.g. health care or aviation systems.
A helpful way to see the distinction between first-order and second-order metaautomation is that the former happens at automated test run time, and the latter happens at least on a different thread and possibly a different process, or in the cloud, or repeatedly, operating typically on artifacts of multiple test runs.
ReplyDelete