Web Development

The Definition of Done

March 9, 2017

In development, we often split tasks up into smaller pieces and distribute them among multiple developers. We need to eventually bring this work back together, and this is easier when everyone agrees on what “done” means.

The definition of “done” is important in Scrum for calculating velocity – “a measure of the amount of work a team can tackle during a single sprint.” Agreeing on what “done” means helps ensure clear communication. Additional benefits of agreeing on a definition, as outlined in Agile Alliance’s Definition of Done, include:

  1. “[Creating] a checklist which usefully guides pre-implementation activities: discussion, estimation, design.”
  2. “[Limiting] the cost of rework once a feature has been accepted as done.”
  3. “[Having] an explicit contract limits the risk of misunderstanding and conflict between the development team and the customer or product owner.”

For example, it’s happened that someone has told me they were “done” with something, only for me to look at their work and find 5 more things they still needed to do.

Here’s what “done” means to me:

  • Done means that you are not planning on doing any additional work on the task. Everything that you wanted to do or were planning to do has been completed, including formatting, cleanup, refactoring, etc. This also includes updating any associated documentation, user manuals, or change logs, checking code in and pushing to an origin repository, getting code reviews, and ensuring that builds are passing.
  • Done means that all aspects of the initial request have been addressed and all acceptance criteria have been met.
  • Done means that all changes have been carried through to their logical conclusion. Consider the consequences of your changes and whether those consequences necessitate any additional changes. If an image asset has been removed from a page, for example, and is not used on any other pages, it should also be removed from the source code repository. If the only call to a function is removed then the function itself should also be removed.
  • Done means that everything you have created or changed has been tested. This may involve creating automated or unit tests, or having others test the change as well. If it hasn’t been tested you don’t know whether it works.
  • Done means ready to share with the world. For code this means deployable. In all cases it means we would be proud to put our name on it and show it to others.
  • Done includes communicating the completion of the work be that in person, via a task management system, or other means as determined by the project.

 

What does “done” mean to your team? We recommend agreeing upon a definition in the interest of creating accurate estimates of how long the project will take to complete.

Unless otherwise specified, source code in this post is licensed under a
Creative Commons Attribution 4.0 International license (CC BY 4.0).

You might also like...

12

May.

Should I Use RxJS in My Project?

If you’re thinking about using RxJS, you might as well be asking, “Should I use a jump kick in a street fight?” Unless you are Bruce Lee, probably not. As a disclaimer, I am not an RxJS pro. I only started learning about it a couple of weeks ago. Consider this post a record of … Continued

28

Feb.

The World of Website Accessibility

When building your website, it’s important to account for accessibility, designing your product so that users with disabilities can access it. Your business should care because the number of people affected by disabilities worldwide is large. The World Bank Group estimates that one billion people – 15% of the world’s population – have some level of … Continued

14

Dec.

3 Ways to Automate the Detection of Website Vulnerabilities

There is no such thing as perfect security, only varying levels of insecurity. -Salman Rushdie Although the context of this quote is completely irrelevant to the internet and web development, the content of the quote is perfectly applicable to web security. However, if you manage, develop, or run a website, and you value the security … Continued