ShuHaRi as an Agile wisdom

Coaching Agile TeamsIn “Coaching Agile Team” Lyssa Adkins presents the ShuHaRi metaphor.  It’s not a coincidence if more and more books use this metaphor (“Pragmatic thinking and learning” to name only one).  It’s a very interesting piece of wisdom.  In the martial art (and in agile), ShuHaRi represents the 3 stages from apprentice to master.

Shu is the first stage.  The apprentice learns the rules, apply it, and repeat until he really gets the rules.  He applies a practice really by the book.   Rules are simple things coming from a trusted master or mentor that say this way is working.   This avoids the apprentice to get lost into the many ways that could work.  He repeats this practice until he really gets the rules.

Ha is the second stage.  The apprentice learns why the rules are working.  He learns the principles sustaining the rules by trying some variations and experimentations.   The principles are things much more complex to express and understand than rules.  Unlike the rules, the principles cannot simply be ‘teached’ by the master.  They have to be learned by the apprentice, and they have to be learned by practice and personal experience.  It is a second stage because it should come only after the apprentice has successful experience with the practice rules.  Without such positive experience, any failure with the variations would remove the trust in the practice itself.  In the Ha stage, the master/mentor should still guard the apprentice about variations that violates the sustaining principles.

Finally Ri is the master stage.  To reach the Ri stage, the apprentice must have practice the rules, he must have experimented consciously in order to really get the principles.  In Ri mode you have so well understood the principles that you are able to state your own rules.  The Ri stage is not the end however.  In Ri stage, you can still learn and practice some new rules coming from other master (who are maybe your former apprentice) in order to discover or rediscover new principles.

I like very much this model because it has a wide range of application.  You can follow this approach individually on a specific practice.  But you can also apply this model to an entire team to progress together.

Applied with a team, this model help us in the [classical] situation where the team is mostly in Shu stage, but one or two member taken individually are in Ha mode. This situation might be difficult to handle because the person in the Ha stage want and need to experiment, while the rest of the team still need some time to practice the rules.  I’m convinced that having this model in mind can help to allow the team and the individual to progress more smoothly.

Leave a comment

Filed under Agile, Leadership

Safe publication : A secret to reveal

Programming in a multithread environment has never been simple and certainly not in java.  If you have already some experience with threads synchronization, you will certainly agree.  The problem is that most of the code we write should run in a multi thread environment (think to J2EE) and because computers tends to have more and more parallel CPUs, we can expect to write even more multithread code in the future.

So, it is difficult.

But there is fortunately a secret potion to solve that!  Brian Goetz revealed this “secret” in his book “Java Concurrency in Practice” (JCP for the initiated).  If you read this book, and get into the confidence, you will understand why, for example, the Double-check idiom (http://en.wikipedia.org/wiki/Double-checked_locking) is broken.

Let me reveal just a part of the secret:  Java multithread programming is not just about protecting your code about concurrent modification (what I thought before getting in the confidence).  It is about managing properly the memory, and making safe publication.

Every thread that create an object or write something in memory that will be used by another thread must make sure that the object is safely published to the other thread.  The “secret” revealed by Goetz is that java.concurrency package provides some tools to do that.  The others tools you can use are the class static initialization, the final fields, the volatile fields and finally proper handshaking with synchronized locks.

Before I read this book, I was thinking I knew how to write thread safe code.  I have to admit that I have put in production multithread code without knowing what a memory barrier is.  Thanks to this book, I know now that this code was probably broken.  If you write code, please don’t make the same mistake.   Be sure you know what a safe publication is before sharing objects accross thread.

The JCP book will explain you this.  If you have other good sources, thanks to share it with us.

Leave a comment

Filed under craftmanship

Triple Nickels in Retrospectives

Agile Retrospective: Making Good Teams Great” is a great book.  It presents a good approach to organize a retrospective and dozens of small “game” that can be used.  Triple Nickels is one of them.  It is a brainstorming approach where it is very easy to have everyone express their bought and that encourage everybody to be attentive to what others think.

Here is how the Triple Nickels works : the team sits in a circle.  If the team is too big, you make 2 or more circles (4 or 5 persons per circle is good).  Each team member writes its ideas about the topic you are brainstorming.  After 5 minutes, everybody give its paper to the person on its right.  That person will then read the thinking of its colleague and complete or responds.  After 5 more minutes, they move again the papers to their right and we continue the process until the papers come back to their original writers.

At this stage, everyone has normally expressed his idea, and everyone has read and reply to the most ideas of the others.   You can then debrief with the entire team, with already a better understanding of the topics and of the ideas on the table.

This approach is very useful when you have some very quiet persons in the team and some persons that have tendency to push strongly/quickly their ideas.

This is one of the nice activity (or say game, or workshop) presented in this book.  Read this Esther DerbyDiana Larsen book to find out more useful tools.  You can also search on the web for free available resources like http://retrospectivewiki.org or http://www.gogamestorm.com

1 Comment

Filed under Agile

Motivation 3.0

In his book Drive, The surprising Truth About What Motivate Us, Daniel H. Pink demonstrates the limits of the “Carrots and Sticks” approach that he called “Motivation 2.0”.  I say demonstrate because he refers thorough the book to a list of convincing scientific experiments.

Instead of the Carrots and Sticks, Pink presents the Motivation 3.0.  Today, in a world of innovation and nonroutine work, brain workers are much more motivated by :

  • Autonomy : People can take motivations from their autonomy about the Tasks (what they do), the Time (when they do it), the Team (with who they do it) and the Techniques (how they do it).
  • Mastery : Nothing is more motivating than a challenging tasks realized very well.
  • Purpose : More than profit maximization, we need purpose maximization.  We want to contribute to a greater cause.

Finally, maybe the most interesting part of the books presents companies practices that embrace Motivation 3.0.  He presents practices like the Google 20% time, the Atlasian FedEx days or companies using a ROWE (Results-only work environment) and much more other examples.

Leave a comment

Filed under Leadership