Agile Development – What Does a Good ‘Definition of Done’ for a Mature Team Look Like?

agiledevelopment-process

When looking at examples of definitions of done in various sources, they usually include points like

  • code completed
  • unit tests run
  • code peer-reviewed or paired
  • code checked in
  • documentation updated

In our team, we have a similar list, but nobody ever looks at it because those points seem so blatantly obvious that it wouldn't occur to anyone to skip any of these steps. So we were wondering whether that's mainly a tool for teams transitioning to an agile process and whether we shouldn't just get rid of it.

On the other hand, lots of literature claims that all high-performing teams have a strong definition of done. This kind of hints that we might miss an opportunity to improve here.

So what are examples of strong definitions of done of a mature team? What kind of points do they include typically?

Best Answer

The guidelines are there for everyone. In a mature team, as you mentioned, everyone is doing it, so it does not mean there is no place for it. Suppose, a new member joins, who has not been exposed to this methodology before. Having the structure in place, would be vital for him. He wouldn't have to bother other members, or wouldn't "forget" a deliverable.

In my opinion, List everything, including the obvious. Perhaps, have a "short cheat list" for non-obvious ones if it helps those who want a shorter list, but consider the case of new members hopping on.

It is an iterative process, every time you see something you can improve, add it in the definition of done. Overtime, you will develop a list which is relevant to your company. Anann has already mentioned some which are worthwhile.