Saturday 14 August 2010

The Daily Scrum

One of the key aspects of an agile approach to software development is feedback and refinement. This pertains to the software product being developed but also to the processes used to develop it. Feedback from stakeholders is used to refine and steer the direction of the product. Feedback and reflection from the project team on software development practices is used to refine and continually improve the software development process.

Practically, this boils down to the team identifying useful practices and adopting them and identifying practices which don’t work and abandoning them. I think it’s rare, nowadays, that a team will adopt a particular ‘brand’ of agile approach wholesale. Far more common is an agile-flavoured approach combining practices from a number of agile ‘brands’ - XP, Lean, Scrum, DSDM, etc.

One such practice, that we adopted a long time ago, has value for a much wider range of practitioner than software development teams alone.This is the Daily Scrum.

Scrum is a flavour of agile software development/project management. The name is derived from a scrum in rugby and implies getting people to work closely as a team which is what it is all about. At it’s core, it is all about getting people to talk to each other.

The daily scrum (a.k.a. daily meeting, daily standup) is a short (circa 15 minute) meeting held every working day at the same time in the same place. Each member of the team takes a couple of minutes to outline what progress they made yesterday, what they are working on today, and what problems they have had. This gives everybody a good flavour of what work is going on within the team, it allows team members to help each other – if they have encountered a similar problem they can suggest getting together after the meeting, and it allows problems to be escalated via the team leader (aka scrum master) who is responsible for removing impediments and creating the environment to get the best out of the team.

With our department, and even our office, split over sites and parts of the buildings, getting awareness of what the rest of the department is working on, engendering a single multidisciplinary team ethos and providing the chance for team members to help each other with problems, has always proved difficult. I recommend the daily scrum as the most low cost (only 15 mins) but most effective tool we’ve discovered to help with this type of awareness-raising and communication.

If you want more information about Scrum, chickens and pigs, the Wikipedia entry for Scrum has nice summary: http://en.wikipedia.org/wiki/Scrum_(development)