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.