Definition of done examples for software projects

Share This Post

Definition of done is crucial to an agile team. It is key to delivering high quality product and satisfying your management or client in terms of project management and results. To achieve this, you need to ensure that you are delivering features that are truly done, not only in terms of functionality but in terms of quality as well. Also, what is important to mention here is that sometimes features are iterative, there is always something to add or to check, so this definition of “done” is extremely important to understand to be on the same wave with your team. As it is easy to say but difficult to do, our agile team prepared a definition of done examples, which will probably help you with your current project.

What is DOD

But let’s start with the basics, what is DoD exactly? The definition of Done is a shared understanding of what it means for work to be complete. To be honest, each agile team has its own Definition of Done. Basically, a team agrees on and displays somewhere in the team room or in Slack, google drive, or whatever, a list of criteria that must be met before a product increment, normally it is a user story and there should be a clear definition of when it is considered “done”.

In other words, DoD is a checklist of features and activities, for example, writing code, coding comments, unit testing, integration testing, release notes, design documents, etc. that adds or demonstrates value to the product. Focusing on value-added steps allows the team to focus on what must be completed in order to build working software while eliminating wasteful activities that only complicate software development efforts.

  Software development project Postmortem

Well, DoD is a good reporting mechanism for team members. It helps to say that “This feature is done.” Using DoD as a reference for this conversation a team member can effectively update other team members and the product owner.

Definition of done examples

DoD can be different, but what is important to note here, is that the initial Definition of Done must be agreed before the first Sprint.

Let’s look at different types of DoD, according to Scrum Alliance, there are three main types:

  • Definition of Done for a feature ( user story or product backlog item)
  • Definition of Done for a sprint (collection of features developed within a sprint)
  • Definition of Done for a release (potentially shippable state)

For example, in software, a Definition of Done may be: “Done means coded to standards, reviewed, implemented with unit Test-Driven Development, tested with 100 percent test automation, integrated and documented.”

In a services context, it may be like this: “Done means every task under the User Story has been completed and any work created is attached to the User Story so the Product Owner can review it and make sure it meets his or her expectations.”

The idea of DoD is that it ensures everyone on the team knows exactly what is expected of everything the team delivers. It ensures transparency and quality fit for the purpose of the product and organization. What is more, moving tickets to done, makes the team more motivated and efficient.

CTA Software

Let’s look at definition of done examples for each type of DoD

1.Definition of Done checklist for User Story

  Product Leader - Not (only) agile

This is the first and the most basic level is a User Story, where we check compliance with the initial assumptions of single backlog item, which were described in it. On this stage we also control quality of written code and check if all necessary elements of our process were carried out, for example:

  • Produced code for presumed functionalities
  • Assumptions of User Story met
  • Project builds without errors
  • Unit tests written and passing
  • Project deployed on the test environment identical to production platform
  • Tests on devices/browsers listed in the project assumptions passed
  • Feature ok-ed by UX designer
  • QA performed & issues resolved
  • Feature is tested against acceptance criteria
  • Feature ok-ed by Product Owner
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

2.Definition of Done checklist for Sprint

The second stage is Sprint, where we check the greater part of our work. Here we can see if all the implemented features fulfill their original assumptions and if all the required conditions for the production deployment were met.

  • DoD of each single User story, included in the Sprint are met
  • “to do’s” are completed
  • All unit tests passing
  • Product backlog updated
  • Project deployed on the test environment identical to production platform
  • Tests on devices/browsers listed in documentation passed
  • Tests of backward compatibility passed
  • The performance tests passed
  • All bugs fixed
  • Sprint marked as ready for the production deployment by the Product Owner

3.Definition of Done checklist for Release

  • Code Complete
  • Environments are prepared for release
  • All unit & functional tests are green
  • All the acceptance criterias are met
  • QA is done & all issues resolved
  • All “To Do” annotations must have been resolved
  • OK from the team: UX designer, developer, software architect, project manager, product owner, QA, etc.
  • Check that no unintegrated work in progress has been left in any development or staging environment.
  • Check that TDD and continuous integration is verified and working
  Agile games for team building

Preparing a single definition of done that suits every situation is impossible. Each team should collaborate and come up with the definition that suits its unique environment. Teams that have just started with agile may find it difficult to reach a mature level immediately; therefore, they should take the steps, sprint-by-sprint, to improve their DoD and I really hope that these definition of done examples helped you! By the way, don’t forget about retrospectives, feedback from retrospective meetings should also help to improve the definition of done.

If you have a software development project and you need help to build scalable software, let us know! We are excited about working on high-quality projects!

And if you are interested in agile, I recommend you to subscribe to our monthly newsletter to receive latest news and best practices.

If you found this article with definition of done examples interesting, you might like…

5 benefits you get by doing agile project management

Agile games for team building 

How teams increase agility with agile retrospective

What should you know when building an agile team

Author

  • Ekaterina Novoseltseva

    Ekaterina Novoseltseva is an experienced CMO and Board Director. Professor in prestigious Business Schools in Barcelona. Teaching about digital business design. Right now Ekaterina is a CMO at Apiumhub - software development hub based in Barcelona and organiser of Global Software Architecture Summit. Ekaterina is proud of having done software projects for companies like Tous, Inditex, Mango, Etnia, Adidas and many others. Ekaterina was taking active part in the Apiumhub office opening in Paseo de Gracia and in helping companies like Bitpanda open their tech hubs in Barcelona.

    View all posts

6 Comments

  1. nexle

    I’m learning about agile to minimize some risks when hiring a software company. This article is very helpful.

  2. MOORTHY ESAKKY

    According to the Definition of Done, which activity must be completed for each Sprint?

    • SinghAgilist

      Depends upon your DoD. If DoD is for user story, all activities must be completed for user story to be called in “Done” state. If DoD is for feature then DoD will spill into multiple sprints till all user stories for feature are in completed.

  3. Amin Sajedi

    It was a great explanation with clearly describing the subject of DOD. Thanks for the article.

  4. Allison

    A similar article regarding definition of ready would be great!

    • Francis Brown

      A definition of ready you can use is INVEST:
      “I” ndependent (of all others)
      “N” egotiable (not a specific contract for features)
      “V” aluable
      “E” stimable (to a good approximation)
      “S” mall (so as to fit within an iteration)
      “T” estable (in principle, even if there isn’t a test for it yet)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Subscribe To Our Newsletter

Get updates from our latest tech findings

Have a challenging project?

We Can Work On It Together

apiumhub software development projects barcelona
Secured By miniOrange