When teams understand and adapt the Definition of Done they can develop the best product ever. Look at how your team can aim to develop and deliver products through collaboration, accountability, and iterative progress when working with Agile.
Have you ever heard about “Definition of Done” (DoD)?
If you are a team member in a project and you work with the Agile methodology, I’m pretty sure you know what I mean. But, do you really apply this process in your project to have better results?
Here in this blog post, I’d like to talk about how “DoD” can help you with all the stages during a project’s life, and how implementing this concept can help the team involved improve the product in a good way.
In case you’ve never heard what Scrum in Agile is, or if you’re not sure how it works, I’ll explain it briefly in the next chapter.
The Definition of Done is really an important subject in Agile product development. Share on XWhat is Scrum in Agile?
Scrum is an Agile Project Management methodology (or framework) used first and foremost for software development. This framework is also known for delivering new software skills every 2 to 4 weeks because of its aim to develop and improve.
Scrum Project Management is an Agile framework. This means that it is a structure used to implement the ideas behind Agile Project Management. Share on XScrum in Agile aim’s to develop, deliver, and maintain complex products through collaboration, accountability, and iterative progress between all team members. It also encourages team decision making and constructive feedback, so higher quality products are delivered in a more efficient way.
With that in mind, I’ll say that the most basic benefits of Agile are:
- Higher productivity
- Better-quality products
- Reduced time to market
- Improved stakeholder satisfaction
- Better team dynamics
- Happier employees
So, what is DoD?
A brief definition would be: “Consistent acceptance criteria across all User Stories. A Definition of Done drives the quality of work, and is used to assess when a User Story has been completed.”
It is important to say that every team has to set its own definition of “done”. I’ll say that “Definition of Done” means to be the owner of your own work by taking a task and carrying it out during all the stages in the defined process, not leaving it halfway.
Moreover, it means to be ready at each stage to be able to solve any questions that may other members of the team have. All of this must be done so the product can be released into production.
The Scrum Guide tells us that a Definition of Done “creates a shared understanding of what it means for work to be complete” and, “is used to assess when work is complete”. Share on XWhat benefits do we get with the DoD?
- No re-working
- Reducing risks
- Quality
- Efficiency, and
- More…
How to be sure that you are correctly implementing a DoD in your project?
A project has several stages and tasks during its life cycle. Before complete it (or close it), the team can set in each one of them a “DoD”. Each member needs to be the owner of that consented work, carry the activities out, and raise awareness about them —of course, always with the best quality possible.
When you work on a task, you have to be able to fulfill the requirements at each stage.
These are the most common stages teams work with:
1. Unit test without errors
At this stage, the engineer must ensure that all tests pass without errors, as well as try to add the most possible tests to the suite. The more he or she can cover, the better it will be for the overall quality assurance.
A unit test is a built-in framework of test cases applied to a module to determine if it's working properly, or without errors. Share on X- Some questions you can ask yourself at this stage:
- Have the tests passed?
- Are all of them in green?
- Can I cover something else?
Remember: you need to have accountability of your own tasks!
2. Code Reviewing
Code review helps us to be better developers. But, sometimes it becomes a bottleneck if it’s not done carefully by other team members.
At this stage, it is important that everyone (especially engineers) are cautious.
All the team needs to be accountable for the whole process: you need to take time to review the code, to approve it, and to make comments about it. And, if something is found, you have to correct it and ponder about why you are coding it that way.
Code reviews are manual testing processes that transform the way development teams works to improve quality assurance. Share on XIn addition, here are some important points that you need to keep in mind:
- Move the ticket to the Code Review column
- Tag people to review it
- Do some comments management
- Fix comments (if necessary)
Oh, and remember to have accountability of your own tasks.
3. Meeting Acceptance Criteria
When building something it’s important that it is ALWAYS exactly what the Product Manager requested, no more and no less. At this stage, the mission must be complete each of the acceptance criteria conditions that are on tickets, since they are “the source of truth”.
In Product Development, it’s important that the product is ALWAYS exactly what the Product Manager requested, no more and no less. Share on XReview your tasks, make sure everything is correct. Make questions if you have doubts about anything. Once you’re sure that it works as requested, you’ll be able to continue with the next stage.
Again: you need to have the accountability of your own tasks!
4. Functional Tests Passed
Time to test! You may think that since it’s the testers’ job, engineers won’t be involved. Let me tell you this: that’s not true! You should be able to answer any doubts or questions that may arise. Also, engineers have to help with everything a tester needs to do their job the best way possible.
You must be able to answer questions about YOUR work. Because you had the accountability of your own tasks, right?
5. Product Owner Accepts the User Story
Once a ticket passes the quality process, it’s time for the Product Owner to review the work done. By doing it, they will make sure that what was requested is implemented correctly.
Here we must also be available to clarify any questions that may arise.
6. Release
A product release is one of the most important events in the product management process. All arrangements for the release require a lot of effort and a lot of time. It also requires the participation of the team, and many successful and unsuccessful attempts. Share on XIn the last stage, be aware that your work will be sent to a production environment. So, if you need to improve some last details like activate/deactivate some functionalities, run a test, or modify the database in production, it’s time to do it.
It will be very important that you communicate this specification to the team as this will affect the whole system!
How Definition of Done Delivers The Best Product Ever
Basically, having excellent quality in each of the tasks, processes, and stages is very important. It helps us improve and be more practical. It also encourages us to deliver and release better things.
“DoD” is the key to making every project successful! The Definition of Done ensures that you do it the right way.
It is also important to know that “DoD” can be adapted to all teams since we all work differently. It is not necessary to use each of these rules in your project: take what is best for you and apply it to the process that you are working on.
Last but not least, I’d like to add the small quote that has helped me a lot in every project that I’ve worked:
“Everyone must be in charge of their own quality”.
– Elizabeth Cobián
Thanks for reading!
@ElizabethCobián, QualityAssurance at MagmaLabs