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.

You might also like...

25

Apr.

How to Create a Fuzzy Search-as-You-Type Feature with Elasticsearch and Django

Tutorial: How to Create a Fuzzy Search-as-you-type Feature with Elasticsearch and Django Recently, I had to figure out how to implement a fuzzy search-as-you-type feature for one of our Django web APIs. I couldn’t find any comprehensive tutorial on how to build this specific feature, so I decided to combine multiple sources and document the … Continued

12

Apr.

6 Things to Look For in a Web Hosting Provider

People often ask us who we recommend for web hosting. Different needs dictate different solutions but there are some universal requirements which almost always need to be met. We have client sites running on many different hosting providers but rather than discuss specific companies let’s go over what we recommend looking for in a web … Continued

26

Mar.

Why HTTPS Matters

What’s HTTPS? Hypertext Transfer Protocol (HTTP) is the underlying data communication system for the Internet. A simple example of the protocol is when you landed on this page, your browser (e.g. Chrome, Safari, etc.) made an HTTP request to the computer that’s hosting this website, and then the hosting computer sent back an HTTP response … Continued

Pacific Science Center

application maintenance and development

Pacific Science Center

Cisco

mobile development

Cisco

Deloitte

web design, microsite development

Deloitte

Seattle Public Library

ui/ux design, microsite development

Seattle Public Library