Coaching patterns

June 19th, 2010

As we get the opportunity to work with more people in more organisations helping them transform their world of work, two things stand out again and again:

  1. Scrum teams need both a full-time and committed Product Owner and ScrumMaster to become high-performing. To think that we can treat these two as part-time, add-on roles while we get on with our “real day-jobs” is just kidding ourselves and, worse, it is robbing us of the very gains we seek. I see this embodied in the first two Scrum Values: commitment and focus.
  2. Management is rooted in old practices and habits that have been proved by empirical research over many decades to be just wrong. Yet these ideas persist. Our hardest job as coaches is to help such managers to trust that their people really want to do their best and are only asking for an opportunity to do so. I think the remaining three Scrum Value of openness, respect and courage speak to this problem.

Carlo sent me a lovely animated rendition of Dan Pink’s famous talk about the science of motivation. It omits to the lovely example of the “candle problem” in the original TED talk, but it captures the essence of his message that what drives us are the intrinsic motivators of autonomy, mastery and purpose.


A proposed taxonomy for technical debt

June 9th, 2010

A few weeks ago someone had a fantastic post on Refactoring entitled, “You keep using that word, I’m not sure it means what you think it means“. I’ve started to get the feeling that this true for Technical Debt also.

Last week the always (in)credible Aslam Khan did a talk last week at the monthly SUGSA event on Technical Debt, which again got me thinking about this topic.

I think when Ward Cunningham coined the phrase “Technical Debt” it was a bit like the first time you hear the word “Schadenfreude” and realise that you’ve had a feeling all the time but never had a word for it till now. And then we began using the word for everything we tried to avoid doing. So I’d like to propose a new taxonomy for technical debt.

Undone Work
The first category is taken from Ken Schwaber’s “Scrum Guide“. Ken has a knack for picking words which drive a sense of urgency (see backlog). In Ken’s description of “undone work” he picks items which indicate a failure in the team’s ability to deliver “done-done” software. As agile coaches, new teams we encounter typically have fairly time consuming processes for releasing software. Build scripts which are not automated. Manual regression testing processes. Manual release processes, copying files, endless checklists of actions. All of these things are non-value adding in the customer’s eyes, but need to be fixed in order to allow the team to  improve. Fixing this is necessary, but in my view, this is not technical debt. Firstly, and most importantly it does not conform to Ward’s fundamental assumption about technical debt, namely that it should be accumulated as a conscious decision.

Mess
“Uncle” Bob Martin coined this term for the crap we accumulate and we call technical debt. It reminds me of a term from Phillip K. Dick’s masterwork, “Do androids dream of electric sheep?” – kipple

Kipple is useless objects, like junk mail or match folders after you use the last match or gum wrappers or yesterday’s homeopape. When nobody’s around, kipple reproduces itself. For instance, if you to go bed leaving any kipple around your apartment, when you wake up there is twice as much of it. It always gets more and more.
No one can win against kipple, except temporarily and maybe in one spot.
From Do Androids Dream of Electric Sheep?, by Philip K. Dick.

You may recognise this as a restatement of the law of entropy. I’ve also heard this referred to as “bit rot“. The reality is that without strong supporting technical practices (or to put it another way, eXtreme Programming) the tendency is for any system to accumulate mess over time. Without the conscious effort to improve the code base over time, the unconscious degradation over time will eventually overwhelm. For me, this is the most common route to a “design dead” product.

But this is not technical debt either; it’s still being accumulated unconsciously. We usually have no real handle on how much mess there is in a code base (although static code analysis will give you an indirect indication). As a result we have no idea of what the required effort will be to rehabilitate the code base. This is also usually the kind of code base developers itch to re-write. This is because they feel things are so bad, that is not possible, (never mind feasible) to tame this beast.

If you find yourself with a code-base like this what you need more than anything else, is information. You need to understand what the extent of the mess is. As mentioned static code analysis (duplication, cyclomatic complexity, code coverage, unused code paths) will assist in quantifying this. The Cutter Consortium is now offering services to help with that, all the way through to measuring the cost of your technical debt. This is likely overkill for many; but establishing both a baseline and a trend over time in these measures will assist in the prioritisation of technical debt.

Next what you will need is a strategy to clean up this mess over time. And then; START! The longer mess is allowed to accumulate the longer it will take to clean up. Also key to the long term success of this program is education; everyone in the team, including the Product Owner needs to understand what this mess is and how to clean it up and keep it clean. A good way of doing this is in regularly reviewing the “Definition of Done” and making sure that this attention to quality is maintained and extended over time.

This lesson of focusing on quality was primary in the work of Edwards Deming and remains a key path to unlocking the value of an agile team.

Design Debt
For me, this is the only real kind of technical debt. This is a conscious decision where the choice of design is explicitly constrained by the implementation time. And again here, I agree with Uncle Bob. That if for example, under time pressure you decide to use a hard-coded value & case statement rather than an enumeration, you’ve incurred technical debt. But you better be writing a clean implementation, with clear naming conventions, which meets all your team’s required “Definition of Done”. And this choice needs to be tracked explicitly; the clean up of this constrained decision should be tracked in your backlog. It should appear there with an estimate of sizing to clean up.

A tip I can pass on from one of the teams I’ve coached is to make use of a visualisation of the pain technical debt causes. Every time someone in the team is negatively affected by the piece of technical debt, add a sticky dot to it. When the time comes to groom the backlog, it should be easy to identify the most painful (and hence valuable) piece of technical debt to clean up. This helps the team and the Product Owner prioritise technical debt stories. Just having this in your team room can provide a healthy relief to the team.

The reason I think I hardly ever come in contact with this form of technical debt is because so few teams have a truly collaborative relationship with their Product Owner. It is only when the decision to take a design debt on is made through discussion and deliberation that it truly is technical debt. The real value of agility and agile teams is only unlocked when we collaborate.

Posted via email from scrumsense’s posterous


Using Open Space as a retrospective format

April 11th, 2010

I was lucky enough to attend the Orlando Scrum Gathering in March this year, and even luckier to hear Harrison Owen talk about Open Space and then to have him facilitate the Open Space at the Gathering.

As he was introducing the days event, I was suddenly and powerfully struck by an idea; why had I never thought to use Open Space as a format to facilitate a team retrospective!

On returning to Cape Town I discussed with Peter, and we decided to try running it with one of our clients for a multi-team retrospective.

So, firstly, Harrison Owen’s rules for Open Space:

  • Whoever comes, are the right people
  • Whatever happens, is the only thing that could have
  • Whenever it starts is the right time
  • When it’s over, it’s over
  • The law of two feet applies; when you feel you can no longer contribute or learn something from the session you should move on. This is not a judgment on the people or the topic.
  • The person with the passion for the topic has the responsibility to facilitate the discussion and provide feedback to the whole group,
  • Respect each other, hear what everyone has to say
  • Allow yourself to be surprised


We snuck the Open Space concept in under the radar. We started by getting everyone to put their chairs into a circle, so that you could see everyone. I introduced the rules to everyone and then we waited for the first person to introduce their topic.

We created a market place with three slots of 15 minutes and seven tables for discussion. We had 29 people which meant about 4 people to a topic at any one time. This was done with some flip chart paper stuck to a wall. We then arranged the tables and placed an identifier on the table.

The initial topic proposals were somewhat slow in coming. The important thing is to allow the space for people to think and then propose their topics. This does take some guts to let there be silences. The important thing is that when people propose topics they should not put too much detail into the proposal; the discussion should happen in the session. Within a few minutes we had a good number of topics on the wall and people went up to start looking at the board and figure out where to go.

The actual running of the session was fantastic; I had some reservations going in that people would be too reserved and would not engage with this process but the level of engagement was fantastic. Unlike some retrospectives where the role of the ScrumMaster in ensuring that everyone participates is critical, there seemed much higher levels of engagement due to the smaller groups and the passion of the individuals for their topics.

At the end we then got everyone back in the circle for the feedback time. We unfortunately ran out of time for the full feedback to happen.

Some learnings for us as coaches out of the 2 hour session:

  • We needed multiple marketplaces for a first time as people are still becoming acquainted with the process and a number of topics emerged as part of the discussion which then we didn’t have time to announce to the group
  • We should have planned for fewer total number of sessions
  • The amount of time planned for the feedback round was inadequate
  • This is a superb way to encourage self-organisation in an organisation which has low levels of self-organisation.

I am really looking forward to running this style of retrospective again.


Do Better Scrum

December 14th, 2009

Do Better ScrumAs a SUGSA Scrum Day sponsor I distributed a little booklet I compiled. I titled it “Do Better Scrum”. Since then several people has asked me for copies. And Tobias Meyer was kind enough to suggest several improvements. So here is the second edition which you can download and use as you wish. If you have a smart digital print shop like Top Copy, you should be able to get them to print and bind it for you as an A5 booklet with a colour cover for around R10 per copy. Let me know how you find it.

Download “Do Better Scrum”


David Anderson coming to Cape Town in Feb 2010

December 4th, 2009

Kanban Software Development

David J. Anderson

I’m thrilled to announce that David Anderson will be in Cape Town from 4-12 February 2010 to conduct a series of events focussed on  Kanban Software Development.

David is credited with the first implementation of a kanban process for software development in 2005. David was a founder of the agile movement through his involvement in the creation of Feature Driven Development and continues to be a thought leader in the Agile space. The full programme, which will be run at the BMW Pavilion Conference Centre in the Waterfront, comprises:

2-day class: A Kanban System for Software Engineering (1 & 2 Feb)

If you want to learn how to implement a Kanban system in your organisation, this course is for you. It is full of case studies and practical exercises that will help you to get started when you return to work. There is no pre-requisite Agile knowledge for this course. The cost is R8000 (excluding VAT). Only 30 places are available.

1- Day Seminar: Management Success with Common Sense Application of Agile and Lean (3 Feb)

If you are a function manager in a technology organization, director, vice president, head of department or senior executive seeking to understand where to leverage more from your technology investment then this seminar is for you. If you are mystified by Lean and Agile jargon but wonder that there might be value to be found if only you could unlock it then this seminar is also for you. The cost is R2000 (excluding VAT). Only 100 places are available.

3-day Kanban Coaching Workshop (5-7 Feb)

This workshop is an opportunity to learn and share knowledge about coaching the introduction of Kanban in an organization. This workshop is restricted to practising Agile coaches who have at least three years’ experience working with Agile methods such as XP, Scrum, Lean and Kanban. Participants will join the community of coaching practitioners that David J. Anderson and Associates can recommend. The cost is R12000 (excluding VAT). Only 12 places are available.

For more information visit our events page. You can also book online.

David will also give a short talk about Kanban at the next Scrum User Group South Africa meeting on 4 February 2010.

This exciting programme is presented by Scrum Sense.


Measuring for Results

October 29th, 2009

At the first South African Scrum Day, held in Cape Town on 1 September, 2009, I gave a talk on the topic of agile metrics. You can just download the slides and save yourself the pain of listening to me!

Peter Hundermark – Agile Metrics from Carlo Kruger on Vimeo.


TED talk on motivation

September 7th, 2009

Watch and listen as Dan Pink tells us what we already know in our hearts: extrinsic motivators are ineffective for complex work!


Agile Metrics

July 17th, 2009

Agile Metrics

We all know the saying “measurement drives behaviour”. Therefore Agilists are understandably wary when management demands metrics to prove that their investment in Agile practices is paying off.

I’ve done some work to identify a small set of Agile metrics that I believe to be helpful. I have drawn particular inspiration from an open space workshop facilitated by Pete Behrens (CSC, CST) at the Orlando Scrum gathering and have also been helped by my colleague Mike Freislich.

This PDF contains my conclusions thus far. I must confess that not all of these metrics are yet in place at any of my coaching clients, so I do regard this as a work-in-progress and expect the power of empiricism to show me my mistakes over time. I would also value the input of my reader ;-) .


Running, tested features revisited

June 3rd, 2009

rongraphic2light2
Five years ago, almost to the day, Ron Jeffries wrote a great post entitled “A Metric Leading to Agility“. In it he coined the term “Running Tested Features”.

More recently he has talked about another helpful metric for teams transitioning to Agile. It is “Running Automated Tests”. For those who need some guidance about choosing the right test automation tools (and avoiding the wrong ones), Elizabeth Hendrickson has written a great article.


The end of an era

June 2nd, 2009

As Lean enthusiasts might be tempted to celebrate the demise of General Motors and the assumption by Toyota of the #1 auto maker rank, James P. Womack* gives us pause to think about the end of an era.

*Author of “The Machine That Changed the World : The Story of Lean Production“.