Chaos aids learning - coaching software development teams

Blogged under Software by Mark Dalgarno on Thursday 12 April 2007 at 9:58 am

I’m in Oxford at the moment attending my first ACCU conference. This is running from Tuesday 10th - Saturday 14th and is a bigger affair than my usual SPA conference with a stronger focus on C / C++ / Java talks, although like SPA there is a good selection of sessions on general software development issues.

Of the four sessions I attended yesterday I got the most from Michael Feathers talk entitled Coaching Software Development Teams. This presented a number of techniques that Michael has used when working with software development teams over the past few years.

Michael began by describing the role of coach as a person who helps a team produce a desired effect - so coaches aid and provoke change, and a big part of their work is to find teachable moments i.e. occasions where the team can learn from some individual or team issue.

This learning is best achieved in tension / release cycles where a problem gradually emerges and starts creating tension within a team and then a solution is found and the tension is released. Letting a team discover for itself the solution leads to a significantly better (learning) result than providing a solution for them and the biggest problems (chaos) lead to the biggest learning experiences. One audience member compared this to the selling process - whereby a customer finds for themselves how a tool or service can address a problem they may not have fully known about or had a name for.

Some of the techniques Michael identified include:

Go Sideways - When problems don’t yields to pressure help people switch gears by showing them a similar or smaller problem. Often this helps the original problem yield.

Ask the room - If a team is tempted to break a rule then ask them to huddle in the centre of the room to discuss the problem. This helps build a cohesive team and builds a strong sense of how the team works and is also a good way of identifying hidden talents within the team as great designers and leaders can emerge from these discussions.

Make it physical - Take the abstract and make it tangible. Michael cited the example of a team that had reorganised their desks so that the QA people sat around the build machine. Developers had to physically walk a gauntlet to contribute code to the build and the presence of the QA people reinforced the goal of only checking in high-quality code.

The Flounce - Identify a hidden problem by asking pointed questions, soliciting comments and then ending with silence. This builds tension until the team eventually puts a name to the problem (release).

Push in the water - Ask people to go beyond their limits and try atypical solutions. Can have great results but take care to be supportive if necessary and handle breaches of organisational behaviour with care.

Michael also talked about the ethical and personal issues involved in coaching - talking about issues like whether every intervention should be “above board” for example. James Coplien (in the audience) noted that in his experience teams would still react positively if they knew the facts and so there was no need to hide things from them.

In terms of audience demographics there are certainly more people from the embedded space here at ACCU than at SPA. I guess this is a strong reflection of the C / C++ roots of ACCU and the types of organisations (still) using these languages. However there were a few familiar faces at the event including Giovanni Asproni & Kevlin Henney, Charles Weir and John Pagonis.

The evening was rounded off with a sponsor reception and then around 40 of us descended on Pizza Express much to the concern of the staff. I met up with Bernhard Merkle to quiz him on his session on Linting Software Architectures and it turns out he has a background in Model-Driven Development and Software Product Lines and worked with Axel Uhl, one of my Code Generation 2007 keynotes, on ArcStyler.

Proudly powered by Wordpress - Theme Triplets Identification Band, the girlish style by neuro