Definition of DONE in Software Developent

Let’s imagine, that at the end of every iteration in SCRUM or any other Agile Software Development method, the developer is coming to you and saying: “I’m done with this functionality!” But you of course ask: “What do you mean done? Are you done or done done?”

What do I want to say here: Software developers think that software development begins and ends with them. It’s actually not really false, but…
The software development is much bigger than only writing the code. Code by itself isn’t that useful. When developing team is stating define Definition of Done (DoD), it will be much more than “just coding”.

Example Definition of Done

Development / Coding

  • Code is written with unit tests
  • Code has been merged to Main
  • Code reviewed by someone other than the author

Testing / Deployment

  • Written QA tests
  • Tested by QC
  • Tested by QA
  • Written UI tests
  • Accepted by Product Owner
  • Load tested Deployed to Production

As you can see, the real Done functionality contains much more steps, as just only code. And how to determine this Definition of Done (DoD)?

 Defining Definition of Done (DoD)

  • Get the team together before or just at the project beginning
  • Start to discus in which phase your functionality can be named as DONE
  • Try to avoid ambiguity and differences in definition
  • Write it down!
  • All team members should follow the DoD

So in next, when developer will come and say:”I’m done!”, all will know exactly what does it mean.