Definition of Done
Have you done this already?
What should a common employee answer to this? There are two options, but both of them are not quite good. If he answers "Yes", it means that he can take extra work, even if his previous task is not fully complete. If he answers "No" he can be considered slow and hampering.
Such a question is usually raised countless times during the software development stage or during working process in general. At such moments, it should be possible to minimize, optimize or eliminate the negative sides of the process. People who understand Scrum philosophy should understand the meaning of Definition of Done notion. A task which is done – is a task which doesn’t require any finalization. But how can we evaluate whether the task is done or not?
At first sight it seems, that a question is rather stupid. What do you mean by evaluation? If a task is done – it’s done, if it’s not done – it isn’t done.
Here is a typical example. Let’s say that during the development stage of a part of the software we realize that our code could have a number of possible bugs. But we cannot check if they are present, because the modules, used to perform this action are not developed yet. In this case, marking this task as "Done" we lie to ourselves, as we will have to return to this task in future. Even if we have the testing modules up and ready, it is necessary to perform a test? Maybe it would be more correct to mark it with "Done" only after the results of the code review? Lot of questions which prevent us from establishing a correct working process. This uncertainty leads to much bigger problems. We ourselves cannot understand whether the task is done. And now imagine the attempts of other members of the group to do the same. As you might have already guessed, the Definition of Done is used to help us with this problem.
Definition of Done protects our serenity.
Everyone’s serenity, to tell the truth. Either is we don’t completely understand if the task is complete, we must notify the team about the results.
Let’s give some examples of finished tasks using the Definition of Done:
- Done= the payment functionality is implemented and tested by Alexey.
- Done= the specifications document is created and discussed with the clients.
- Done= the authorization module is fully developed, tested and demoed during the Sprint Review Meeting
- Done= a module is implemented and exported for usage
As we see, each description begins with "done=", which tells us what do we need to pay attention to. It is better to input the kind of results which could be verified. There is no use in describing your thoughts, e.g.: "done=got the idea how the interface should look like", because there is no way to verify such a description.
It’s advised to create guidelines for the Definition of Done in order for everyone in the Team to write in one style. This will lead to a quicker understanding of your colleagues.
Another famous way of tracking the Definition of Done is to create a simple list.
One shouldn’t neglect the Definition of Done, as it shows not only what has been done, but also gives us a hint of what would have to be done in future. Thanks to the Definition of Done, each team member will try to describe their tasks in a more clear and specific manner in order to be able to say "Surely done!" whenever a task is completed. Besides, the Velocity rank would be easier to gain.