"Wait a minute. This sounds like rock and/or roll."

Agile

Seattle Kaizen Camp 2014

Last week I attended my fifth Kaizen Camp at The Foundry in Seattle.  As usual it was a magical experience with awesome people, exceptional food and unmatched conversations.  Kaizen Camp started as a traditional Open Space conference and through a series of…ahem…Kaizen’s it morphed to what one might call “Scaled Lean Coffee” format this time.

Our meeting space is an open banquet facility. You would think it would be too noisy with close to 100 people all talking at once, but it is surprisingly quiet. I believe there are two things that contribute to this: 1) everyone is at a round table so there is no clear leader or lecturer trying to talk over everyone, and 2) because we are all in the same room everyone is more mindful and respectful of their volume

Meeting Space

Our beautiful meeting space at The Foundry

The day started with an intro in front of the main Kanban board. We heard from a sponsor, Dashcube, who makes an impressive Lean/Agile planning tool. This is followed by Jim Benson explaining the Lean Coffee procedure.

Starting the day

Starting the day at Kaizen Camp

Next, people share their ideas while we populate the backlog.

Reviewing the backlog

Reviewing the backlog

Notice the strict limit of eight cards.  Masking tape physically limits the Work In Progress to correspond to the eight tables where the Lean Coffee sessions are held.

WIP Limit

WIP limits are good

We collectively “pull” stories into the In Progress boxes. This is an open forum where everyone bum-rushes the wall to pull their favorite story into one of the eight slots. Surprisingly this goes very smoothly. The very first session is always the busiest —  however there are typically only two or three really enthusiastic folks that run up to the board.  Everyone else waits to see what gets pulled.

Pulling Stories

Pulling Stories

Here we are at the first session discussing Scaling Agile. We decided that Agile concepts and principles scale beautifully but that prescriptive methods do not necessarily scale without tailoring. Organizations are complex and require some iteration to find a process that works.

Discussing Scaling Agile

Discussing Scaling Agile

After each session we share any epiphanies the group had before we do another “pull” to choose the next round of sessions. By the end of the day there are a LOT of epiphanies.

Sharing Epiphanies

Sharing Epiphanies

The Ephphanie Wall

The Epiphanies Wall

I recently read an excellent book I discovered at Powell’s Bookstore in Portland and hosted a session to discuss it.  It was very popular and resulted in many epiphanies. Apparently lots of us have had experiences that made this book compelling.

My Session

My Session

And finally, there was dancing.

Dancing at Kaizen Camp

Dancing at Kaizen Camp

All-in-all Kaizen Camp 2014 in Seattle was another fantastic adventure filled with intense learning, great food and even better discussion.  Keep an eye out next year and sign up if you get a chance!

Advertisements

How To Score A Goal in Soccer

If you are coaching a soccer team, here is a proven plan to score a goal:

  1. Have the Center kick the ball back to Left Defender. This must be done quickly as the opposing Center will be rushing the ball
  2. At the same time have the Mid-fielders and Forwards all rush to the opposing goal, being careful not to go off-sides. This will give you seven men on the opposing teams’ side.
  3. When the Left Defender receives the ball have him tee it up for the Right Defender.
  4. Have the Right Defender punt the ball to the Left Midfielder who will be about half way between center field and the goal box.
  5. Have the Midfielder head the ball to the Left Forward who will be just outside the Goal box. This will draw the Goalie out.
  6. Have the Left Forward fake a goal shot while setting up a header for the Right Forward.
  7. With the Goalie out of position, the Right forward should head the ball in for a goal.

This should all be accomplished in about 9 seconds.  Continue this pattern until you have won the match!

Seems simple right? Just follow the plan as prescribed above and you will score a goal.  There is even a video which “proves” this method works.

If you have ever played, coached or watched soccer you probably recognize that trying to script a play to this level of detail would be ridiculous.  Why? Variations in player speed, ball control, and the actions of an opposing team interfere with the prescribed plan and the team will need to adapt quickly to changing conditions. In reality this team likely practiced something conceptually similar, but ultimately relied on the skills and judgment of the team to execute to the “goal” (pun intended). In fact, the team was hired based on their capabilities and past performance. The owner(s) and manager(s) expect three things from them:

  • Understand the goal
  • Maintain Good skills and judgment
  • Put forth their best effort

So, why is it so hard for businesses to apply the same type of management to their knowledge workers?  We expect good skills and judgment. We demand best efforts. However, instead of focusing everyone on a common goal, we focus them on producing and executing to a detailed plan that attempts to minimize risk at the cost of both schedule and skills performance. So we have this team of people with great skills and good judgment and we prevent them from using either – what does this do for motivation?  Next we notice a lack of motivation from our team and apply some “incentives” to get the team to work harder to follow the prescribed plan.

We hear a lot about the notion of “Agile” in the business and technology world today. However, if we look at the management model for Soccer we see a pattern that is much more aligned with the spirit and intent of “Agile”. How can we learn to apply these type of Soccer management techniques to our teams of knowledge workers in the Business world?

 


Kidzban

So my wife is trekking in Nepal with Above and Beyond Cancer for three weeks and I am playing single dad with my 3rd and 6th grade kids.  I knew there was no way I could keep track of all of the kids various activities not to mention my own busy schedule even though my wife had meticulously documented everything in our shared Google calendar.  So the first thing I did the day she left was to set up a Kanban board on the sliding glass door that leads to our back yard.  This is the single most visible space in the entire house — it is the first thing you see when you walk in the front door.  I knew for it to be useful my board had to be extremely visible.  Next I instituted a new program with the kids — each Sunday we would spend a half hour planning the upcoming week: what homework is due?  what sports activities are there?  what play practices? etc.  Those cards went up top; color coded by person.  Then each night we would spend 5 minutes planning the _next_ day; moving the cards from the top section to the “Today” section.

Mack with Kanban board

Mackenzie

We are now one full week in and so far it has been smooth sailing.  No missed homework, no missed practices, good meals each night and the house is reasonably clean!  I even got my son to pick up dog poop in the yard so he could move a card to “done.”

Jack and Mack with Kanban board

Jack and Mackenzie

Update 10/2/2012:

My parents came over to help out for a couple of days.  My mother reviewed the Kanban board and with a puzzled look said:

“Isn’t that stressful to see all of the things you have to do?”

To which I replied:

“Not as stressful as NOT seeing it!”

 


Practice makes perfect

In my spare time I decided to build out a website on AWS.  I haven’t been in the nitty gritty details of writing software and configuring web servers for close to 10 years — and back then I was working in a Windows environment.  Needless to say there is a bit of a learning curve to overcome when going from 10 year old Windows IIS configuration to current Linux/Apache configuration.  Fortunately a few people have done this before and left plenty of documentation that is only a quick Google search away.  After numerous battles with certificates, public keys, private keys, security groups, opening ports, ssh-ing, scp-ing, vi-ing, bashing, and sudoing I finally got “hello world” to appear on my website.  I took a moment to revel in my triumph….and then I promptly deleted my AWS instance and created a brand new one.  Why you ask?

As I was getting close to the finish line I thought to myself “I wonder if I could get this thing working again if I had a problem?”.  The answer was “maybe but it would be a challenge”.  At the same time I recalled guitar and piano lessons from my youth where my instructors encouraged me to practice until I could play an entire song (or passage) all the way thru without mistakes.  This made me realize that even though I had a working website on AWS it didn’t really count because I made so may mistakes along the way.  So I started over from scratch.  Surprisingly this time I was able to get the website up in about 90% less time without any “mistakes” along the way.  I bet I can knock off another 90% the 3rd time around.

Over the course of my career I have wasted much time debugging poorly configured systems — some that I have built and some that others have built.  I think I am going to take the advice of my music teachers and practice more often from now on.

 

 

 


Forget Priority and Severity when writing Bugs

Several years ago I was struggling with a very complicated set of rules governing the setting of Priority and Severity in a bug tracking system I was working in.  I did a bunch of reading about best practices but I kept finding answers suggesting complex rules about setting Priority and Severity.  In bug triage meetings I wanted two answer two simple questions: 1) is this bug in the release or not? and 2) in what order should this bug get fixed relative to the others?  I finally found some more compelling articles like this one from Fogbugz which suggested a single Priority field whose purpose was to answer my first question: is this bug in the release or not?

This method has worked fairly well — but more often than not the answer to “is this bug in the release?” is “it depends”.  Rarely did the actual spoken semantics translate to the semantics in our bug tracking system (Blocker, Critical, Major, Minor, Trivial).  We had lots of discussions like this: “This bug is a Major — does that mean it’s in?”, “This bug is just a spelling error, does that make it Trivial?”.  It was still difficult to tell what was in and what was out because we were conflating the size and complexity of the issue with it’s priority; and the semantics weren’t helping.

Here’s what we did: MoSCoW.  I renamed all of the Priorities in our bug tracking system as follows:

Blocker ==> MUST.  This issue must be fixed for the upcoming release or we will not release.  Period.  Fix all of these first.

Critical ==> SHOULD.  This issue _should_ be fixed for the upcoming release.  If push comes to shove we can defer it to the next release. Fix these after the MUST’s

Minor ==> COULD.  This issue is a “nice to have”.  Work on this when all of the MUST’s and SHOULD’s are done or if you need something small when all of the SHOULD’s are too big.

Trivial ==> WON’T.  This one isn’t going to get fixed.  Sorry.  It gets to stay in the system for posterity — maybe some day it will get reanimated.

Major ==> This is the default in our tracking system and was causing problems because it was indicating “not prioritized” but was always stuck on a release.  Therefore Major became UNKNOWN which indicated it needs to be prioritized.  UNKNOWN bugs do not get to be assigned to a release.

Now the rules for setting Priority are simple and the answers to my questions are easy — we get to spend more time fixing and building things and less time talking about Priority.  Incidentally for all of the Lean thinkers out there this change had the side effect of turning us into a Pull system instead of a Push system.

 


Speed Boat for Process Improvement

Back in January I had the privilege of attending a Software Advisory Committee meeting at SolutionsIQ that was facillitated by Luke Hohmann of Innovation Games. Among the many great games we played was one called Speed Boat. Today I had the opportunity to facilitate an Agile Retrospective for the Product Development team at Imprev using Speed Boat. I was very pleased with the outcome and thought I would share my experience.
After an introduction and a nice drawing on the white board by our resident Flash design expert

the whole team sat down and wrote their “anchors” for about 5 minutes. The team then placed their anchors at various depths according to the perceived “weight” of the anchor.

After a bit of logical grouping each team member cast three votes on which group we should focus on.

The result was a surprise to me. As the defacto “system owner” for our wiki I have been operating under the impression that no one really cared about or used it — and have been giving it the attention it deserved based on that impression. At this point we made a short list of tactical things we, as a team, can improve: I had no idea the team cared about our wiki nor that they had specific ideas to improve it AND would pick it as the top thing to fix in our retrospective.  Confluence 101 class will be facilitated by me tomorrow.  Our next retrospective will be in one week and “wiki” will not show up as an anchor.  Our Speed Boat will be slightly faster.


The cost of estimation

I went to a SeaSPIN meeting this last Tuesday where Jim Benson gave a talk called “No Innovation without Information”. It was a great talk and primarily focused on Kanban related topics — however we briefly touched on the subject of Estimation. We do estimation at my company and it made me wonder just how expensive it is to estimate our work, especially if we end up not doing a significant amount of the work we estimate. The next day I took a picture of our Planning Board and reviewed our Jira queue to find all of the User Stories the team has estimated but not taken in, AND that were likely stale. Using a little bit of Cost Accounting I estimated the cost at roughly $6,000. Now that might not seem like a lot of money — but for a small company like ours that represents enough money (time == money) to build out a new feature on our platform.