When we say the word “agile” different things come to our mind. It could be stand-ups it could be iterations , it could be many other different things. Term agile means flexibility or agility being able to navigate different constraints so how do we learn to be agile.
SHU-HA-RI is basically a model . As you learn something, you go through a progression of learning and there’s three stages from this model.
MartinFowler : Shu-Ha-Ri is a way of thinking about how you learn a technique. The name comes from Japanese martial arts (particularly Aikido), and Alistair Cockburn introduced it as a way of thinking about learning techniques and methodologies for software development.
The idea is that a person passes through three stages of gaining knowledge:
- Shu:In this beginning stage the student follows the teachings of one master precisely. He concentrates on how to do the task, without worrying too much about the underlying theory. If there are multiple variations on how to do the task, he concentrates on just the one way his master teaches him.
- Ha:At this point the student begins to branch out. With the basic practices working he now starts to learn the underlying principles and theory behind the technique. He also starts learning from other masters and integrates that learning into his practice.
- Ri:Now the student isn’t learning from other people, but from his own practice. He creates his own approaches and adapts what he’s learned to his own particular circumstances.
The fundamental idea here is that when teaching a concept, you have to tailor the style of teaching to where the learner is in their understanding and that progression follows a common pattern. Early stages of learning focus on concrete steps to imitate, the focus then shifts to understanding principles and finally into self-directed innovation.
Let me give you an example. Let’s imagine, I am new in the city. I don’t know anything I don’t know anyone except my friend Raju. So I called him up and I ask “Raju how do I get from my home to the Office ?”. He says “that’s easy, dude there’s five different ways to get from your apartment to the office” and he tells me all five . Did that help me or confuse me?
What I need is specific direction to follow so that I can reach office. Now I’m going to put on a GPS on and will follow it. I’m following precisely without modification that’s what is called SHU.
Then we move from SHU to HA. HA says this so I understand that there are five different ways to get from start to end right and I understand when to shift between these techniques based o situations or the scenarios.
Now we move in to RI. RI is when you’re just driving. You’re not thinking about GPS. The interesting part about RI is if there’s traffic , you can take an exit that you’ve never taken before OR go through roads you’ve never taken earlier, but you’re just driving unconsciously and navigating these constraints to reach your destination . As per the need, you may be inventing or discovering new routes that you’ve never taken before.
Where does “Agility” lives in – in SHU, in HA or in RI ? It’s in RI and the reason is obvious.
Imagine, to start with Agile Adoption, I’m going to say, you need to two week iterations , you need to do user stories like this , etc, etc . But here’s the problem people get stuck in SHU . They learn one way of doing things and they stop there, get stuck in the SHU box . That becomes the world of agile for them.
If a specific practice aren’t working, let’s invent something new that would works , creating new kind of practices. That’s where people need to get to . That’s where organizations need to get to. Create practices and new ways of working based on constraints that pop up at different points in time.
New practices should be evolved over time. What works for you does not necessarily also works for another team. Each team has to be on learning path and have build agility which will be unique for them.
Finally, assume you are in a rush and don’t have time. Will you even start to experiment with another route or be stuck in traffic thinking known route is better than risking in unknown route. For this you need to be seeking new techniques, new learnings, experimenting continuously. So the interesting part is agility manifests during constraints. New route may not necessarily reduce the cycle time, but when agility manifests it is the best possible in a given scenario.