Skip to content

Shu-Ha-Ri

Some months ago Stephan Wissel pointed me to an article on Shu-Ha-Ri, which refers to Alistair Cockburn's Agile Software Development. It's well worth software developers being aware of the concept, because it is crucial to the developer's life journey.

The concept of Shu-Ha-Ri, which dates back to Japanese Noh theatre, is used to demonstrate how you need to tailor your teaching to the level where the student is at:

Shu: learning how to do a task and not worrying about the underlying theory. Ha: starting to learn the underlying theory and principles, and learning different ways to achieve an outcome. Ri: learning from their own practice, creating their own approaches, and adapting what they've learned to their particular circumstances.

It's an interesting concept, one very relevant when working in a software community.

A Padawan Amongst Masters

When I started becoming active in the Domino community around 2010, I very much surrounded myself with developers at the Ri stage. And anyone who has been around that community for many years will know the names I mean. But I was already blogging and speaking at conferences within months of starting blogging. Although my area of expertise when I was blogging was quite narrow at the time - mainly XPages - I believe I was already deep into the Ha stage myself.

My first session at Engage 2010 was encouraging developers to move beyond the Shu stage of displaying view data in XPages, namely using View Panels, and to use the more advanced different ways to achieve that outcomes, Repeat Controls. And this was done by teaching about the underlying principles of displaying collections of data in JSF, namely Data Tables. My next sessions covered another underlying principle of XPages, Dojo.

Looking back, it's very apparent I was soaking up their knowledge, learning deeper on the underlying principles of Domino, XPages, Java, and open source. Never was this more apparent than my sessions on the JSF lifecycle behind Java - the first time I gave the session I was due to deliver it with Tim Tripcony, but at least we finally did manage to deliver it together. Taking the opportunities to get involved in the XPages Extensions Library book and Domino REST API reinforced that. I was always going to progress to the Ri stage.

After more than five years at HCL in the Labs organisation, it's become very apparent to me that being at the Ri stage - not just in one technology but many - is crucial to being able to be an effective researcher. Even with a new technology, I think I'm barely in the Shu stage. Almost from the start I'm trying to understand how the technology or product works under the hood, its strengths, its weaknesses. I'm already bringing in learning from adjacent technologies, and willing to try innovative approaches to achieve an outcome. It's key to getting quick, innovative outcomes. Just following the documentation and "developing by numbers" will leave you floundering before long.

The Ri mindset also means flexibility, making different choices depending on different circumstances. Decisions can be made so quickly, taking into account such a variety of factors, that explaining why a decision is made is often difficult. Depending on the mindset, some Ri people can find it frustrating to explain their reasons - they may find it difficult to understand why others cannot see those reasons. The converse can happen, as Alistair Cockburn's gives an anecdote in his book, where the author was talking to a conference organizer who operated in Ri mode and didn't need the level of detail provided.

The Ri mindset is also relevant to troubleshooting. I wrote what I still believe to be a very important blog post years ago on troubleshooting. The steps I covered there are ones I do instinctively now and have proven particularly useful recently. Working alongside a fellow Ri on a complex problem is very satisfying, when they can instinctively see where you're going and have similar levels of what they need and don't need to investigate or question.

Personality

The Shu-Ha-Ri journey is not related to age or experience. A lot also comes down to personality and, probably, imagination. Some individuals prefer following the rules rigidly. Of course there are others who prefer to break the rules, but without the level of understanding from the earlier stages, resulting in regular mistakes in judgement. These avoid the Shu stage, but will not gain the understanding to reach Ri. Attaining Ri, it seems to be me, requires a level of discipline to learn the basics, but also the confidence to try new ways and review effectively. It takes a logical mind but also a creative one - a mixture, it seems, between the scientific and the artistic. Maybe it's something that can probably be learned and practised, maybe not. But it's key to achieving great things.