As a team member in Agile team, What do you mean exactly when you say: The user story is done!
Do you usually say: The user story is done but it still needs some testing.
Some others say one of the following:
- It’s done but I still need to refactor it and fine-tune the code.
- It’s done but I need to push the code and merge to main and deploy it so the customer can give us the feedback!
- It’s done but I haven’t work on the design yet
So different team members use different ways to explain how the work is done.
First, please let’s agree on this:
after “Done” there shouldn’t be any “But” !
Here is an example:
Product Owner : I tried to check the user story XYZ but It’s still not in the server? I don’t see it.🤔
Team member: I told you it’s done but not deployed yet!😑
Product Owner: You marked it as done so I thought it’s deployed.😤
Team member: No, I said that clearly in our previous team meeting, It’s Done but NOT DEPLOYED Yet!!😡
Product Owner: I wasn’t in that meeting! I checked the dashboard and It’s done on the dashboard!🥺 OK, Anyway, When will you deploy it so I can work on it?
Team member: I am working on another User Story. I will finish it and deploy both of them. 😖😩
After a while!
Team member: User Story A is deployed. You can work on it now😎
Product Owner: I checked it and it returns your usual lovely 500 HTTP status code!!
Team member: Strange ! it was working on my machine! 🤔 Maybe it’s an issue related to the database. Let me finish User Story C and then fix it for you. You know we should organize our work so I will not go back to A before finishing C.
If you are getting involved a lot in such a conversation, this blog post will help you and your team to g
When anyone in the Scrum Team uses the word “Done” to describe a backlog item (User Story) status, all the team members should have a
When you update your team members in Daily Scrum about the backlog item, The “Done” word should have crystal clear meaning in every team member’s mind.
So how can you define one “Done” meaning across the team?
What is the definition of done?
DOD “Definition of done” is a checklist of criteria that should be met before marking a backlog item as Done.
This “Definition of Done” list is agreed on by the development team and the organization. It is a well-written document that is accessible by anyone on the team.
It is also a good idea to have the definition of done as a big poster on a wall.
After having a clear DOD, When a team member says it’s done, all members know what that it means.
Why is DOD important in Scrum Team?
The DOD “Definition Of Done” might be different from team to another but here are some of the main goals of having a clear definition of done:
- To enhance the communication in the team and make sure that “Done” as a keyword has the same explicit meaning across the team
- To maintain one level of quality among all the user stories that are achieved and marked as done.
- To enhance the accuracy of the estimation of the user story
- Minimize the misunderstandings or the conflicts with the customer in terms of the feature or backlog item goals by having explicit acceptance criteria as a part of DOD.
A DOD criteria checklist could be like the following:
- Code is committed and pushed to the Repo branch
- Code is peer-reviewed and approved that it matches the code standards
- The implementation matches the acceptance criteria of the backlog item
- An automated build is triggered and completed without errors
- Unit tests are passed
- Code is deployed to [Dev] or [else] environment successfully
- An integration test is passed
- The user story is marked as done in the team board
I would like to draw your attention to number 3. Part of the definition of done is to meet the acceptance criteria of the backlog item.
Embedding backlog item acceptance criteria in DOD makes it more dynamic because each backlog item will have different acceptance criteria.
Let’s go back to the previous conversation.
Let’s see how it would be after applying DOD:
Team member: User story A is done.
Product Owner: Thanks, I will check it and get back to you.
As you see the conversation is short, clear and no misunderstanding occurred in the team.
Final word!
DOD is not just a policy that must be followed by the team members. It should be part of the culture and the common language in the organization.
Applying Agile is a bit challenging for some organizations and individuals. Having a good definition of done in an organization is a good start.
It is a good start because DOD will affect the whole development life cycle, starting with analyzing, planning, estimating, implementing, code standards, and deployment.
To recap here are some questions:
DOD is the definition of done. It is a checklist that should be met before marking any backlog item as done.
The Definition of Done should be created by the team according to the Scrum guide.
To enhance communication between team members. To maintain the quality. It minimizes the conflicts with the customer and reduces the rework.
This blog post is Done. 🙂