You have probably heard the phrase “practice makes perfect”, but let’s take that thought up and out. It is really the experience of practice that is more interesting!
Consider a jazz band you’ve heard or seen live, or really any type of music where improvisation plays an important role. Great bands work together effortlessly, and when things go sideways or “wrong notes” are played, they quickly adapt to the changing conditions in order to keep the music going. This emergent complex system manifests itself in the awesome jams you hear.
Continuous Verification techniques adopt the Practice of Practice
To approach the problem of how to better understand increasingly complex software systems, we can learn a great deal from improvising musicians. We can build our group intuition like they do with ongoing practice and turn the next incident into just another time we’re getting together to practice. We may find that incidents become non-events, like those “wrong notes” in jazz, after all the complex system is doing the same things when it is successful as it does when it fails: regular work.
And we humans are right there in the middle, with our unshareable mental models and assumptions about what others know. We are susceptible to losing Common Ground all the time, but especially in a high-pressure Joint Activity like musical performances… or, you know, incidents in software.
Consider the technology teams you are in and adjacent to, or even the ones you don’t know about. Think about the complex system that is your software platform, that relates all these teams. When that incident happens, how much of a surprise is it? How quickly does the team adapt to the “wrong notes” and keep the music going?
Derek Bailey, a well-known English guitarist and improviser, put it succinctly: “Improvisation has no existence outside of its practice”. In fact, he embodies Improvisational Music as “the practice of practice”. When that band gets together to play a show, it is just another time they’re getting together to play, and it won’t be like any other practice because they will keep learning new things.
When a technology team employs Continuous Verification techniques, they are leaning into this Practice of Practice. It helps bring stubborn mental models together so the team can better navigate the complex system at hand, guiding it through turbulent conditions and learning in the process.
Resilience and Diversity in complex systems is the foundation for my talk: Music in Resilience: The Practice of Practice. The talk juxtaposes Improvisational Music and Software Engineering, most notably how the Joint Activities of musical performance transfer to the way we think about the Joint Activities of software operations. Download the slides from Sparklecon VII 2020 or see the full video from RE:Deploy 2019.