{"id":393,"date":"2010-08-17T15:56:59","date_gmt":"2010-08-17T13:56:59","guid":{"rendered":"http:\/\/www.pleus.net\/blog\/?p=393"},"modified":"2010-08-25T14:09:47","modified_gmt":"2010-08-25T12:09:47","slug":"definition-of-done-%e2%80%93-never-without","status":"publish","type":"post","link":"https:\/\/www.pleus.net\/blog\/?p=393","title":{"rendered":"Definition of Done \u2013 Never without"},"content":{"rendered":"<p>One of the keys to success in agile projects is a proper Definition of Done (DoD). Only if\u00a0everybody knows what has to be\u00a0produced\u00a0in order to complete\u00a0a sprint,\u00a0the goal can be achieved.\u00a0<\/p>\n<p>The ideal outcome of a sprint is a product increment that is\u00a0potentially shippable. To achieve that,\u00a0all necessary actions\u00a0to\u00a0create a high quality product,\u00a0such as\u00a0writing documentation\u00a0and thorough testing, have to be carried out within a sprint.\u00a0\u00a0<\/p>\n<p>In order to be really sure whether a an artifact is done, acceptance criteria are needed. Otherwise\u00a0&#8220;done&#8221; would not be measurable. The criteria depends on the produced artifact.\u00a0<\/p>\n<p><strong>Software-Artifacts<\/strong>\u00a0<\/p>\n<p>Software products\u00a0usually comprise the following:\u00a0<\/p>\n<li>Database structures (tables, stored procedures,\u00a0triggers, &#8230;)<\/li>\n<li>Application\u00a0(user interfaces, Services, &#8230;)<\/li>\n<li>Interfaces to external systems<\/li>\n<li>Data (probably migrated from older data, &#8230;)<\/li>\n<li>User documentation (online help, &#8230;)<\/li>\n<li>Installer<\/li>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\"><span style=\"text-decoration: underline;\">Acceptance criteria<\/span>\u00a0<\/span><\/p>\n<p>In order to prove that the above artifacts are really done, they need to be tested. Because the amount of test grows for each sprint, there is no way around automated regression testing. Therefore a continuous build,test and integration system, such as Team Foundation Server\u00a0or Hudson, is essential for\u00a0agile projects. The following tasks should be automated (in the brackets you can see an example of acceptance criteria for each task).<\/p>\n<ul>\n<li>Unit testing\u00a0\u00a0(error ratio maximum=10%,\u00a0code coverage minimum=60%)<\/li>\n<li>Load\u00a0+ Performance testing (concurrent users=20)<\/li>\n<li>User acceptance testing, UI tests\u00a0(error ratio maximum = 15%)<\/li>\n<li>Integration (successful installation and\u00a0availability)<\/li>\n<li>Code quality checks\u00a0(warnings maximum\u00a0= 20)<\/li>\n<\/ul>\n<p>Some tests, such as UI tests,\u00a0might be difficult to automate. But if you do it, you team will be rewarded with a highly accepted software product at the end of each sprint. As you can see the acceptance criteria is not\u00a00% errors or 100% coverage, because this would not be realistic.<\/p>\n<p><strong>Concept-Artifacts<\/strong>\u00a0<\/p>\n<p>Some projects develop their concepts using Scrum as well. Something that I would encourage to do. Although in Scrum the amount of written documents is greatly reduced, concepts are often\u00a0helpful and required. For\u00a0instance\u00a0to refine coarse grained user stories from the product backlog or if the implementation of an idea can not be\u00a0realised immediately. Concepts can be written in\u00a0many ways as long as they clearly describe the idea down to a level that is sufficient for the implementation. For instance\u00a0text documents, wiki pages, prototypes or design sketches.\u00a0<\/p>\n<p><span style=\"text-decoration: underline;\">Acceptance criteria<\/span>\u00a0<\/p>\n<p>How can\u00a0a concept be defined\u00a0as done in terms of a DoD?\u00a0As always! Conduct a review with people from within the team or other stakeholders from within the organization. When\u00a0a concept is successfully reviewed, it is done.<\/p>\n<p><strong>Summary<\/strong><\/p>\n<p>Having a proper Definition of Done\u00a0which clearly lists\u00a0the required\u00a0artifacts and acceptance critera\u00a0is essential for successful Scrum projects. It creates a common understanding of what &#8220;done&#8221; actually means and is a key artifact to deliver high quality software in agile projects.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the keys to success in agile projects is a proper Definition of Done (DoD). Only if\u00a0everybody knows what has to be\u00a0produced\u00a0in order to complete\u00a0a sprint,\u00a0the goal can be achieved.\u00a0 The ideal outcome of a sprint is a product increment that is\u00a0potentially shippable. To achieve that,\u00a0all necessary actions\u00a0to\u00a0create a high quality product,\u00a0such as\u00a0writing documentation\u00a0and &hellip; <a href=\"https:\/\/www.pleus.net\/blog\/?p=393\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Definition of Done \u2013 Never without<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,6],"tags":[73],"class_list":["post-393","post","type-post","status-publish","format-standard","hentry","category-agile","category-scrum","tag-scrum"],"_links":{"self":[{"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=393"}],"version-history":[{"count":21,"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/393\/revisions"}],"predecessor-version":[{"id":485,"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/393\/revisions\/485"}],"wp:attachment":[{"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pleus.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}