Rachel Davies has written a thoughtful and thought-provoking article: Shu-Ha-Ri considered harmful? In it she captures the essence of what has been making me feel uncomfortable about the various Shu-Ha-Ri articles I’ve read – that Shu-Ha-Ri is a philosophy and teaching approach designed to help total novices in Aikido (and other martial arts; Aikido is a modern evolution of age-old Japanese traditions of both combat and teaching) achieve mastery of the art over a period of many years. What it is not is an approach for aiding functioning software teams or practitioners adopt new techniques that might help them in the short- to medium-term.
I’ve personally experienced the good and the bad of Shu-Ha-Ri as applied to martial arts. In seven years of Shotokan karate I started as a total novice, built strength and basic technique through constant repetition of stances, blocks, punches and kicks, and gradually evolved through some level of understanding to taking classes of new students. After a period of constant injury I could no longer practice karate so I took up Aikido. Sensei commented that I was a “deeply unusual student”: whilst I had a Ri level of appreciation of what I needed to learn and, more importantly, unlearn his usual approach to teaching wasn’t working for me. My karate technique, based on power and force rather than the balance and harmony of Aikido, was actively blocking my learning; even though I knew and understood this. Sensei had to take a different approach to teaching me than his other students which was ultimately only partially successful (due to my inability and struggle with injury rather than his teaching).
There is much that is beguiling in applying an analogous Shu-Ha-Ri system of learning to adopting agile software development practices and processes. How many old hands at XP suggest “just do the practices” as a good way to start? Isn’t an understanding of what stage of learning you’re at helpful when adopting any new process or practice? Equally, how many teams or practitioners come to agile as total software novices? How many of them already have a Ri-level of appreciation of software delivery that just happens not to be based on agile? How many of them are willing or able to subjugate themselves to the student/master relationship that Shu-Ha-Ri is built on? And how many coaches really have the experience it takes to become Sensei anyway?
In short, there’s some good and useful stuff to acknowledge about Shu-Ha-Ri but let’s not get carried away thinking that adopting agile is like becoming a white-belt in Aikido.
This is not the first time software practitioners got caught in the trap of a juicy looking analogy, nor will it be the last. Sometimes I wonder that, as practitioners of one of the world’s youngest disciplines we are desperate for approbation from and connection to the much older ones. When it was all about Architecture rather than Agile, the software-as-building analogy was everywhere. One of my favourite instances was someone at a conference explaining that the database was just like foundations of a house and then going on to explain that you should use stored procedures and triggers for business logic. Right, because most houses have 20′ deep foundations with all the important functional stuff in and only extend 2′ above ground. Which isn’t to say that we can’t learn from the built environment – Stuart Brand’s ‘How Buildings Learn’ has been far more influential on me in making agile development work in large organisations than anything else I read at the time or since – just that we should approach every analogy with trepidation.
Whenever I see something like the Shu-Ha-Ri articles, or the later and related articles on coding dojos and programming kata, I remind myself of the talk that Kent Beck gave at OT’99: “Software is Software”. Kent’s point was that software, and the people, processes and practices that combine to build it is a unique discipline. Sure we can, and should, learn from other disciplines but at every step of the way we have to beware getting carried away with the idea that what we do, or some aspect of it, is just like Aikido, or Architecture, or Civil Engineering, or Science, or Music, or Improv, or Manufacturing, or …