Most of the times the word “done” has a very subjective meaning, especially when we are in a business context.
It can be confusing understanding if a task or an activity has been completed or not. I’ll try to define the meaning of done (in a business context), or at least what it should be. This should avoid to end up in situations where we have to say “it’s done, oh no wait, now it’s done done” and keep adding each time a level of doneness based on arbitrary and vague definitions.
Let’s start with some dictionary definitions:
No longer happening or existing.
– Oxford Dictionary
completed; finished; through
– Dictionary.com
If something is done, or you are done with it, it is finished, or you have finished doing, using it, etc.
– Cambridge Dictionary
We’re safe to say that “done” is something which is completed, based on some criteria defined upfront. No longer requires any action about it, at least for a period of time not particularly relevant.
Let’s use the previous statement as DoD, Definition of Done, to see how this applies to web development. An activity to be done from stakeholder’s point of view should be at least:
- Implemented following the agreed specifications regards:
- Algorithms
- Business Logic
- User Interface
- Efficient
- Performance focussed
- Security Paradigms applied
- Edge-Cases covered
- Not Error-Prone
- Readable
- Coding Standard respected
- Documented
- Tested
- Unitarily
- Functionally
- Integrations verified
- Cross-Browsers Compatibility
- Multi-Devices Compatibility
- Stable
- Continuous Integration is Green
- No known (blocking) bugs
- Non-Functional Requirements are met
- Approved
- Peer Code Review
- Technical Lead/Manager
- Product Owner
- Released
- Deployed in Production Environments
This “checklist” is just for reference, feel free to improve it and suggest your definition of done.
This doesn’t have the intention of defining a universal meaning for everyone. You need to make your own within the company where everyone is on the same page.
Further Reading