Wednesday, October 22, 2008

What is Shu Ha Ri?

There are times when we try to communicate an idea to someone and we struggle to do so. My dad is a mechanic, so when he tries to explain the inner workings of a combustion engine to me, I'm lost. When I try to explain to him how software is built, he's lost. We have to recognize that as an expert on a certain domain, you can't talk to others as if they are too. This is where the concept of Shu Ha Ri comes into play. (For a more formal description of Shu Ha Ri, check out Martin Fowler's description.)

Shu Ha Ri is borrowed from martial arts. It defines 3 levels of learning-

Shu - Imitation. You do something by copying someone else. You don't question it. The teacher gives you a prescriptive solution to a problem that covers most of your needs. It may not be the most efficient or best solution, but it is simple to learn and covers most of the situations you encounter.

Ha - Understanding. You start to see the reason behind what the teacher taught you. You modify it to still fit the core philosophy, but streamline it for you. You also start to see that the solution doesn't solve every problem and therefore seek your teacher for new ideas and solutions, or you might even seek other teachers for solutions.

Ri - Mastery. You take everything you learn and apply it at will. You solve problems by blending solutions without even thinking. When someone asks what you just did is called, there is no name because you adapted a new solution on the fly. It just worked in that situation. Your own experiences outweigh your formal teachings.

(Literally translated: Shu-> Following | Ha-> Breaking Away | Ri-> Fluency -Cockburn 2007)

Important notes-
  • a Shu level person can not teach. They are not prepared to guide a peer in the journey of making mistakes and adapting.
  • a Ha level person benefits from multiple sources of teaching.
  • a Ri level person thinks in a language that the Shu level person can't understand since it is not prescriptive.
Why is this important? When you are having trouble explaining a concept, it's worth taking a moment to understand the gap of knowledge and experience between the two of you. You might realize that you are speaking at a Ri level when the listener is seeking a Shu level answer. They don't want philosophy or meaning, they want an answer for their immediate solution. There is also the reverse of this... don't talk down to someone who already knows the concepts and needs help blending them together.

Finally, don't teach above your level. Masters learn from their students, but students posing as masters can be dangerous.

The problem with having a Ri understanding of any topic is that you don't realize it. You don't know why they aren't getting it because it is so obvious to you. Stop and remember how you got to this point and strive to help them down that journey also.

1 comment:

  1. Very interesting post, gave me new insights into team management, agile and Kanban. Thanks.

    Stephan

    --
    Programming is hard - http://blog.codemonkeyism.com
    http://twitter.com/codemonkeyism

    ReplyDelete