Back in 2002, Alistair Cockburn wrote about three levels of practice: learn, detach, transcend that we can apply to our listening, reading and coaching. He used Shu-Ha-Ri from Aikido to illustrate that these three levels of practice are found in other skill areas.
- Shu, the student copies techniques without adapting them.
- Ha, the student reflects on what has been learned and breaks free from traditions.
- Ri, the student is now a practitioner extending the art.
In the 2nd edition of Agile Software Development, Alistair adds "You can apply Shu-Ha-Ri to designing courses and writing technique materials."
Although he takes care to say "Organize your material to reassure the advanced people in your course that it is not being presented as a cure-all, but simply as another technique in the toolbox of the professional. .. But before you finish, put the technique into a larger context so that the beginners can start to see where they will expand to and so that the advanced people can see how this technique bridges to others they might already know or want to learn."
I've seen Agile rollout programs styled around Shu-Ha-Ri for years. In the early days of both XP and SCRUM, it was stressed that you should first do all the practices by the book. Only then would you be in a position to adapt them. You would avoid the travesty of Pretty Adventuresome Programming where the team avoids any difficult new practices and also drops stuff not mandated like documentation!
Jeff Sutherland relies on the same Shu-Ha-Ri philosophy when he expounds "You enter the dojo and do what the Sensei (teacher) says. You repeat exercises over and over until it is part of muscle memory. Only when you have mastered the basic practices are you allowed to improvise. And the last and most important – Before you have gained discipline, centering, and flexibility, you are a hazard to yourself and others."
I'm uncomfortable with approaches that force students to follow agile practices without questioning. These approaches seem to violate the first value of the Agile Manifesto "Individuals and interactions over processes and tools." I question whether introducing agile software development techniques to people is anything like martial arts training. Software development is knowledge work and our aim is to build a team of reflective practitioners. To do this we need to engage with how people think about their work. Are techniques from physical arts that build muscle-memory really applicable here?
For me, agile Boot Camps and Shock Therapy approaches lack basic respect for the team's unique context and the experience of people on the team. Agile software development is a much looser discipline than a martial art like Aikido. Organizational culture and nature of the product being built are major factors in what agile techniques the team will benefit from most. If we establish a sensei-novice model, we're not fostering the independent thinking and reflection that will take the team beyond the Shu level.
A different approach that draws from martial arts is the Coding Dojo . Dojos are becoming a popular way to encourage learning in groups without this emphasis on a sensei.
Installing a basic set of agile practices by force can be done quickly so the organization starts getting benefits from new ways of working faster. Teams are superficially at the Shu level in the space of a few weeks. Often, the management team considers the agile rollout is now complete. It's assumed that teams will continue to apply what they've learned. But without any experts around to enforce agile practice, pretty soon a team falls back to their old ways or sometimes worse carries on with agile practices that don't make sense for their project.
I was pleased to see "cargo-cult agile" called out in the new book "Practices for Scaling Lean & Agile Development" by Craig Larman and Bas Vodde. They say "Avoid forcing--When coaching we encourage: volunteering; do not force any agile or lean approach onto people; people should be left the choice to think and experiment...with concentrated long-term, high quality support. The best, the most sticky adoptions we have seen had this approach."
Learning new ways of working takes time. As Ron Jeffries once said "They're called practices for a reason".."You have to have done them. Practice makes perfect." If you base an agile adoption on Shu-Ha-Ri model, the trick is to remember the goal is beyond the first-level. Your teams need more than training. Allow plenty of time and on-going coaching support for teams to get them into the Ha phase and beyond.