My friend Dossy introduced to Shu-Ha-Ri sometime in the last year. From Martin Fowler's blog, he says, "Shu-Ha-Ri is a way of thinking about how you learn a
technique." The idea is a student should go through 3 phases when learning something new.
- Shu involves doing exactly what your master tells you to do so you learn his technique.
- Ha involves branching out, learning new techniques and focusing on the theory.
- Ri is where the student doesn't learn from a master but branches out on his own and learns from his own experiences.
We started a weekly studying/coding group a month back and it's already grown to 7 people. To help the group be successful, I started thinking it might be a good idea to incorporate a little ShuHaRi into our little session, but adapt it to the principles behind Pair Programming.
Pair Programming Shu-Ha-Ri Rules
- Break up into teams comprised of 1 experienced developer (Master) and 1 less-experienced developer (Student).
- The Student sits at the keyboard, the Master will dictate to the student what to do.
- The Student is responsible for setting the agenda. He tells the Master what he wants to work on (Task List, Web Crawler, etc.). The task can be something he worked on over several weeks, but it should be small.
- The Master will break up the Student's goal into small workable pieces. The Master will break these pieces up into very specific and small realistic goals that can be accomplished in an evening.
- The Master will guide the Student to finishing the goals for the evenings and the Student will do it in the way the Master tells him.