{"id":1883,"date":"2017-12-22T13:53:09","date_gmt":"2017-12-22T12:53:09","guid":{"rendered":"http:\/\/178.62\/?p=10"},"modified":"2017-12-22T13:53:09","modified_gmt":"2017-12-22T12:53:09","slug":"tricky-definition-done","status":"publish","type":"post","link":"https:\/\/fabiocicerchia.it\/project-management\/tricky-definition-done","title":{"rendered":"The Tricky Definition of Done"},"content":{"rendered":"
Most of the times the word “done” has a very subjective meaning, especially when we are in a business context.<\/p>\n
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.<\/p>\n
<\/p>\n
Let’s start with some dictionary definitions:<\/p>\n
No longer happening or existing.
\n– Oxford Dictionary<\/a><\/p><\/blockquote>\ncompleted; finished; through
\n– Dictionary.com<\/a><\/p><\/blockquote>\nIf something is done, or you are done with it, it is finished, or you have finished doing, using it, etc.
\n– Cambridge Dictionary<\/a><\/p><\/blockquote>\nWe’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.<\/strong><\/p>\n
Let’s use the previous statement as DoD, Definition of Done, to see\u00a0how this applies to web development. An activity to be done from stakeholder’s point of view\u00a0should be at least:<\/p>\n
\n
- Implemented following the agreed specifications regards:\n
\n
- Algorithms<\/li>\n
- Business Logic<\/li>\n
- User Interface<\/li>\n<\/ul>\n<\/li>\n
- Efficient\n
\n
- Performance focussed<\/li>\n
- Security Paradigms applied<\/li>\n
- Edge-Cases covered<\/li>\n
- Not Error-Prone<\/li>\n<\/ul>\n<\/li>\n
- Readable\n
\n
- Coding Standard respected<\/li>\n
- Documented<\/li>\n<\/ul>\n<\/li>\n
- Tested\n
\n
- Unitarily<\/li>\n
- Functionally<\/li>\n
- Integrations verified<\/li>\n
- Cross-Browsers Compatibility<\/li>\n
- Multi-Devices Compatibility<\/li>\n<\/ul>\n<\/li>\n
- Stable\n
\n
- Continuous Integration is Green<\/li>\n
- No known (blocking) bugs<\/li>\n
- Non-Functional Requirements are met<\/li>\n<\/ul>\n<\/li>\n
- Approved\n
\n
- Peer Code Review<\/li>\n
- Technical Lead\/Manager<\/li>\n
- Product Owner<\/li>\n<\/ul>\n<\/li>\n
- Released\n
\n
- Deployed in Production Environments<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n
This “checklist” is just for reference, feel free to improve it and suggest your\u00a0definition of done.<\/p>\n
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.<\/p>\n
Further Reading<\/strong><\/p>\n
\n
- Definition of Done<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"
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. […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[50],"tags":[47,48,49,51,52],"aioseo_notices":[],"author_meta":{"display_name":"fabio","author_link":"https:\/\/fabiocicerchia.it\/author\/fabio"},"featured_img":null,"coauthors":[],"tax_additional":{"categories":{"linked":["Project Management<\/a>"],"unlinked":["Project Management<\/span>"]},"tags":{"linked":["agile<\/a>","completeness<\/a>","project management<\/a>","sprint<\/a>","task<\/a>"],"unlinked":["agile<\/span>","completeness<\/span>","project management<\/span>","sprint<\/span>","task<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 6 years ago","modified":"Updated 6 years ago"},"absolute_dates":{"created":"Posted on December 22, 2017","modified":"Updated on December 22, 2017"},"absolute_dates_time":{"created":"Posted on December 22, 2017 1:53 pm","modified":"Updated on December 22, 2017 1:53 pm"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/posts\/1883"}],"collection":[{"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/comments?post=1883"}],"version-history":[{"count":0,"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/posts\/1883\/revisions"}],"wp:attachment":[{"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/media?parent=1883"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/categories?post=1883"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabiocicerchia.it\/wp-json\/wp\/v2\/tags?post=1883"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}