Definition of Done - best practice to succeed in software projects

22532 Views
0 Comments
18 Likes

Definition of Done - best practice to succeed in software projects.

Definition of Done - best practice to succeed in software projects

How do we know when a user story is “done“? Can we say that the user story is done when it is coded and all acceptance tests for it are passed? Business representatives may say yes, but they do not know all the peculiarities of software development. So, such criteria as quality are not fully visible to them.

Or let’s have a look at another situation: a new feature that changed the business process was developed and tested according to the best software practices, but users struggle to use this feature because they are not sure about the changes this feature brings. Maybe a proper user manual or user training is needed in this case?

In this article, a simple, but very powerful technique which is called Definition of Done (DoD) is explained.

This technique helps:

  • identify all activities which need to be completed for the user story to meet the customer needs
  • bring all participants of the product development to the common understanding when the user story should be considered done
  • reduce risks, as all activities are listed there is less risk that some important activity will be missed

Per Agile Extension to the BABOK® Guide v2, Definition of Done is a technique where the team agrees on, and prominently displays, a list of criteria which must be met before a backlog item is considered done.

That is the team has to create a well-defined, unambiguous, measurable, agreed-upon, and shared Definition of Done between all team members.

The best form of Definition of Done representation is a checklist of activities that has to demonstrate the agreed value and quality of a user story. So, this checklist should include:

  • acceptance criteria (to satisfy customer requirements for a product)
  • quality criteria (to satisfy quality requirements for a product)

Definition of Done may be defined for different levels of project work. For example, in Agile / Scrum framework these levels of work could be user story, sprint, and release.

Table 1: Example of Definition of Done for a user story.

  Definition of Done for a user story

  Code completed

Code is written

Code is in agreed standard format

Code is committed into VCS

Peer code review is completed

  Build is deployed to the testing environment

  Tested

Unit tests are passed

Acceptance criteria are met

Non-functional requirements are met

Functional tests are passed

All known bugs are fixed


Table 2: Example of Definition of Done for a sprint.

  Definition of Done for a sprint

  DoD of all user stories are met

  Build is deployed to the integration environment

  Tested

All known bugs are fixed

Regression tests are passed

Integration tests are passed

Performance tests are passed

  Product backlog is updated

  Design documentation is updated


Table 3: Example of Definition of Done for a release.

  Definition of Done for a release

  DoD for a sprint is met

  Compliance requirements are met

  End-to-end testing is completed

  End-user documentation is updated

  Release notes are written

  Build is deployed to the production environment


To summarize, the benefits of Definition of Done technique are:

  • Decreasing misunderstanding
    We no longer have to ask “how done are you?” With Definition of Done it is visible for all team members and customer representatives.
  • Decreasing risk of delay and budget overrun
    ​With Definition of Done, the team has a clear vision from the beginning of what it takes to make the user story / sprint / release completely done, not “nearly done”. Thus, the cost of rework, delay and customer dissatisfaction are decreased.
  • Ensuring the user story / sprint / release success
    With a clearly defined Definition of Done agreed value and quality of the product is brought to the customer.

Author: Olena Konchenko, Project Manager, Business Analyst | CBAP, CSM, CSPO

Olena Konchenko, CBAP, CSM, CSPO, holds M.Sc. in Computer Science, is a specialist in Project Management and Business Analysis in the software development field. Over 10+ years of experience she worked in different domains starting from web start-ups to telecommunications and banking with customers across the globe. Olena is passionate about technology and how it can help create great products customers love.

 



Upcoming Live Webinars

 




Copyright 2006-2024 by Modern Analyst Media LLC