Friday, 4 April 2014

Definition of Done?

I wrote this blog post back in 2009 on the blog site of the company (iMeta) I was work for at the time.  Just recently I try to find the post to give some context to colleagues, only to find the company no longer had the post on their site.  So I have reposted the blog post here.


Running an Agile project presents a different set of issues to a typical Waterfall project.  One of the most typical questions asked is “what constitutes done?”  How do we know when the software is ready?  Well without documenting what we mean by ready, how can we answer the question?  To overcome this issue it is important to define the project’s Definition of Done (DoD).  This enables anyone on the team to have a clear definition when answering questions, especially with stakeholders, about the progress and state of user stories, tasks, sprints, releases etc.

It is important to realise that a valid DoD for one project may not transfer directly to another project.  There is often cross over, but each project’s DoD should be carefully thought through by the team.

Recently I facilitated a session to define the Definition of Done for a client project that I am running as part of my role.  Below is the approach I took to guide the team through the process.  It worked well and we have a clear DoD for the project.  The DoD will evolve as the team experiences the project.



In preparation for the DoD meeting I gathered a number of sticky note pads and pens, enough for each attendee to have their own, some Bluetak and a number of large sheets of paper.

Finally I wrote the key objective onto a whiteboard in a prominent position in the meeting room.  This was to be the driving force for the meeting and if we start to go off topic could be used to bring us back on track.  The objective being:

“What do we need to do, as a team, to delivery software to the customer?”

We are now ready to start the workshop.

Part 1 – Brainstorm:

I asked the team to all take a Pen and Sticky Note pad and write on the sticky notes what they believed was part of achieving the objective written on the whiteboard.  Each time they thought of an idea they would write it down, then please the sticky note in the centre of the table and read out aloud their idea.  

In the brainstorming session it is important to empower everyone to contribute.  No idea is to be criticized!

Quickly we had a large number of sticky notes.  We found that after the first 15 minutes we started to struggle for new ideas, so we moved on.

Part 2 – Categories

Next I asked the team what categories should be used to facilitate our DoD.  We soon came up with a list of three categories that we could use to drive different levels of done for the project.

1.       Release

2.       Sprint

3.       User Story

For each of the categories I place a big sheet of white paper on the wall.

Part 3 – Categorise

Now I asked the team to take the sticky notes from the table and place them into the categories.   By placing the sticky notes onto the sheets of paper on the wall.

Part 4 – Sorting:

Next we started to look at the detail of the ideas.  If we believed that two or more ideas where similar or overlapped.  We overlap the sticky notes.  If any ideas where duplicates we placed them on top of each other.

Where ideas no longer seem valid, had lost their context or simply made no sense we moved these to another area outside of the categories.

Part 5 – Review:

We reviewed each of the sticky notes to analyse the meaning.  Importantly to query if the idea was required to be done?  Was it in the correct category?

This review resulted in a lot of discussion with sticky notes moving around the categories, the definitions being rewritten and consolidated. 

Finally the team settled on good set of definitions.

Part 6 – Document:

The finally part of the session was for me to document the DoD.  We placed the resultant document in a prominent place on the project wiki.  You could place a printed version in the team work space.

Below is our project’s version of a Definition of Done: