Original URL: http://www.theregister.co.uk/2006/02/13/i_am_a_professional/

But I'm a professional!

Kanban, thank-you ma'am

By David Putman

Posted in Developer, 13th February 2006 10:55 GMT

Comment As a practitioner of agile principles, I value communication and feedback. Indeed, I insist on regular feedback and, if it's not forthcoming, will go in search of it. I've worked with a few teams over the years and one of the first things I always try to introduce is a Kanban system, Kanban being the Japanese word for 'sign' or 'placard'.

Lean thinkers (see Mary & Tom Poppendieck's Lean Software Development) use Kanban to monitor progress, and Kent Beck also uses index cards in much the same way in Extreme Programming. The work available (requirements) is broken down into quite small tasks, or stories, and written onto the Kanban cards, which are then placed in a to-do section on a wall in priority order.

When a developer is available for work, he simply takes the highest priority card from the to-do section, discusses the acceptance criteria of the story with the customer, then moves the card to the in-progress section while he works on it. When he finishes the story, and after verifying the correctness of the implementation with the customer, he moves the story card to the work-completed section of the wall.

In this way, anyone can, at any time, see exactly where the team is in the iteration or project. No need to load a file or update any project software. No need to draw any Gantt Charts. We can simply raise our heads and look at the wall. Hence the term Kanban. It's all part of the visible workplace, simple and effective.

Of course, running a Kanban system requires the co-operation of the team members. After all, they are responsible for breaking the customer's requirements into small stories and updating the wall. Unfortunately, this is where I've occasionally run into conflict. Apart from the usual resistance to change, developers sometimes claim that breaking requirements down into small tasks and having to discuss each and every one of them in detail before and after implementation is an affront to their professionalism.

I hear claims like, "but I'm a professional! I shouldn't have to do those things" Usually qualified by such statements as, "I am an expert. You don't need to keep checking up on me, just let me know what you want built and I'll let you know when it's finished. Just leave me alone to get on with the work!"

Interesting, don't you think? I'm actually very keen on professionalism myself and we hear a lot about it in the industry. Most developers are degree educated and there are numerous professional bodies, at least one of which has chartered status. Said bodies also have professional codes of conduct (more about these later), so I guess there must be other people interested in professionalism, too.

I had a little think about professionalism and other professionals that I come into contact with on a fairly regular basis and thought I'd contrast my relationship with them with the relationship programmers have tried to convince me they should have with their customers. One that sprang immediately to mind was the mechanic, or rather the team of mechanics, at my local garage. I've been going to the same garage for years precisely because they are very professional and give excellent service. I'd previously tried a different garage every year until I found the one I was happy with.

When I arrange for my car to be serviced, they tell me exactly what will be done during the service and how much it will cost. They also advise me that if any consumable items are worn out, I will be charged extra for replacements but only after they have confirmed with me that it is OK for them to do this. If they come across any problems during the service, they make a note of them to discuss with me later unless it is something really urgent or dangerous, in which case they will try to contact me immediately and even put the work on hold if necessary. After the service, along with the bill, they will inform me of any problems they've found, advise me of the urgency of each one and give me a breakdown of the cost of repairing each of them. All their prices are prominently displayed in the office and work area. I am never made to feel obliged to accept their proposals and they make it clear they are happy for me to go elsewhere if I am not happy with their terms.

On the other hand, I have heard stories on consumer affairs programmes of customers that have left vehicles with unscrupulous garages and then been presented with ludicrous bills when they arrived to collect them. In these cases, the tradesman usually gives the excuse that, in his expert opinion, the work needed doing and so he went ahead and did it without consulting the vehicle's owner, usually claiming it to be a so-called favour. You can find examples of this type of behaviour in many industries and, without exception, the perpetrators are considered shady, if not criminal. No one in their right mind believes any of their excuses and the tradesmen concerned is often labelled a cowboy.

Software developers also try similar tactics. "I can't give you an estimate up front. I won't know how long it will take until I've actually done the work." Or, "I can tell you how long it will take to do the whole job but I can't break it down or itemise it". I find it very interesting that software developers try to defend such behaviour by labelling it 'professionalism', but in other industries it's considered just the opposite.

So when I hear the cry, "but I'm a professional", I'm about as convinced the proclaimer really is a professional as I am when I hear Mr Walliams declare, "but I'm a lady" on the popular TV sketch show. I only wish I were as amused.®