{"id":11608,"date":"2025-08-12T07:00:00","date_gmt":"2025-08-12T05:00:00","guid":{"rendered":"https:\/\/deltaagile.com\/evolution-of-definition-of-done\/"},"modified":"2025-08-14T19:03:54","modified_gmt":"2025-08-14T17:03:54","slug":"evolution-of-definition-of-done","status":"publish","type":"post","link":"https:\/\/deltaagile.com\/en\/evolution-of-definition-of-done\/","title":{"rendered":"EVOLUTION OF DEFINITION OF DONE"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"11608\" class=\"elementor elementor-11608 elementor-5123\" data-elementor-post-type=\"post\">\n\t\t\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-1314858 e-flex e-con-boxed e-con e-parent\" data-id=\"1314858\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-997ad66 elementor-widget elementor-widget-heading\" data-id=\"997ad66\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What is Definition of Done?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e35462b elementor-widget elementor-widget-text-editor\" data-id=\"e35462b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Definition of Done (DoD) is an agreed list of activities that the team performs during an iteration for each item taken from the Product Backlog for development. DoD is a quality measure that every functionality developed by the team must meet. Features (user stories) that don&#8217;t meet the DoD at the end of the iteration are not presented to the client at the Iteration\/Sprint Review meeting, as they are not considered complete (Done).  <\/p><p>In environments where multiple teams work simultaneously on the same product, there must be a commonly agreed DoD, typically determined at the first <a href=\"https:\/\/www.scrum.org\/resources\/product-backlog-refinement\" target=\"_blank\" rel=\"noopener\">backlog refinement<\/a> meeting. Individual teams can set additional, stricter requirements for their DoD if they consider it beneficial. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3e66cfe elementor-widget elementor-widget-text-editor\" data-id=\"3e66cfe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Some examples of Definition of Done:<\/strong><\/p><ul><li>Integration tests completed<\/li><li>Regression tests completed<\/li><li>User tests completed<\/li><li>Refactoring completed<\/li><li>Architecture compliance confirmed<\/li><li>Acceptance criteria met<\/li><li>New API versions presented to other teams in workshop<\/li><li>Documentation updated<\/li><li>All images compressed<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8daf02e elementor-widget elementor-widget-heading\" data-id=\"8daf02e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Definition of Done vs. Acceptance Criteria<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b317014 elementor-widget elementor-widget-text-editor\" data-id=\"b317014\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #0000ff;\"><strong>Acceptance Criteria<\/strong> <strong>(AC)<\/strong><\/span> are measures that confirm the developed functionality meets customer needs. Each user story has one or more acceptance criteria. They are determined by the client based on their business needs. As such, acceptance criteria are different for each user story.   <\/p><p>AC can be descriptive or structured in a way that allows direct preparation of automatic tests in TDD (e.g., <a href=\"https:\/\/support.smartbear.com\/cucumberstudio\/docs\/bdd\/write-gherkin-scenarios.html\" target=\"_blank\" rel=\"noopener\">Gherkin syntax<\/a>). In the most mature environments, the client even provides AC in the form of a test. In this case, tests replace AC. Regardless of the form, it is definitely recommended that meeting AC is part of DoD.   <\/p><p>The image below shows an example of a <strong>Given-When-Then<\/strong> test scenario based on Gherkin syntax. I cover this topic in more detail in the context of product management during the <a href=\"https:\/\/deltaagile.com\/en\/produkt\/product-owner-course\/\" target=\"_blank\" rel=\"noopener\">Product Owner<\/a> course. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c7986ed elementor-widget elementor-widget-image\" data-id=\"c7986ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"950\" height=\"654\" src=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/08\/Gherkin-syntax.jpg\" class=\"attachment-large size-large wp-image-11130\" alt=\"Evolucija DoD\" srcset=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/08\/Gherkin-syntax.jpg 950w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/08\/Gherkin-syntax-300x207.jpg 300w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/08\/Gherkin-syntax-768x529.jpg 768w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/08\/Gherkin-syntax-18x12.jpg 18w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/08\/Gherkin-syntax-600x413.jpg 600w\" sizes=\"(max-width: 950px) 100vw, 950px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59b4d20 elementor-widget elementor-widget-text-editor\" data-id=\"59b4d20\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>On the other hand, <span style=\"color: #0000ff;\"><strong>DoD<\/strong> <\/span>rarely changes during a single iteration (or iterations). As a quality measure, it is primarily determined by developers in collaboration with the Product Owner. <\/p><p><strong>In general, we can say that DoD:<\/strong><\/p><ul><li>Ensures consistent quality of product increments<\/li><li>Reduces the need for rework<\/li><li>Aligns understanding of quality criteria among stakeholders<\/li><li>Enables more accurate progress measurement and consequently better planning<\/li><\/ul><p><strong>However&#8230;.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-element elementor-element-46f086e e-flex e-con-boxed e-con e-parent\" data-id=\"46f086e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-58bbd5f elementor-widget elementor-widget-heading\" data-id=\"58bbd5f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Evolution of DoD<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bf6a954 elementor-widget elementor-widget-text-editor\" data-id=\"bf6a954\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>&#8230;. &#8230;.with the right approach, DoD can become a catalyst for Agile transformation. <\/strong><\/p><p>Typically, Agile teams should deploy to production at least at the end of each iteration\/sprint. Business value is only realized when functionality is deployed to production. As long as developed functionality waits for release, the resources invested in it are not returning value and this is by Lean definition waste.  <\/p><p>Batch releases where multiple functionalities are pushed to production at once are risky from the perspective of end-user feedback. With multiple new functionalities released simultaneously, it&#8217;s difficult to prioritize urgent fixes (Helpdesk overload), hard to determine the source of errors, and more difficult to perform a roll-back if it becomes necessary (e.g., if system responsiveness falls below acceptable levels). <\/p><p>The task of a quality Definition of Done is to enable production release at least once per iteration. If functionality is \u201cDone\u201d, the release can happen even mid-iteration. Why wait for the official end of iteration? This kind of dynamism is enabled by the so-called ideal Definition of Done.   <\/p><p>The goal of Agile organizations is to achieve the ideal DoD. They approach this by gradually expanding DoD to include activities that remove barriers to continuous release to production. Getting closer to the ideal DoD can take years for larger organizations, but it&#8217;s possible. Amazon, for example, deploys to production every few seconds.   <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-99e92bf elementor-widget elementor-widget-heading\" data-id=\"99e92bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Practical Example<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-31a4219 only-sl elementor-widget elementor-widget-text-editor\" data-id=\"31a4219\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong><em>Note:<\/em><\/strong><\/p><p><em>Just a short branch descriptions. <\/em><\/p><ul><li><em><strong>Main (or master)<\/strong> \u2013 the always-stable branch containing production-ready code.<\/em><\/li><li><em><strong>Development (or dev)<\/strong> \u2013 the integration branch where ongoing work is merged before release.<\/em><\/li><li><em><strong>Feature<\/strong> \u2013 a temporary branch for developing a specific feature or change.<\/em><\/li><\/ul><p><em>There are minor differences between Trunk-Based-Development and Git Flow approach, but these variations don&#8217;t affect the message of this article.<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-afd27a8 elementor-widget elementor-widget-text-editor\" data-id=\"afd27a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #cb0300;\"><strong>1.)<\/strong><\/span><\/p><p>The development team starts with a DoD that states a Product Backlog Item (PBI) is complete when the following conditions are met:<\/p><ul><li><strong>All acceptance criteria are met<\/strong><\/li><li><strong>Refactoring is completed<\/strong><\/li><li><strong>Code is implemented and reviewed. This means the developer has tested the code locally, and another developer has performed a local code review. <\/strong><\/li><li><strong>Unit tests are written together with functionality implementation (in the same cycle), unlike TDD where tests are written before code.<\/strong><\/li><li><strong>Code is integrated into the development branch (not the main branch).<\/strong><\/li><li><strong>Functionality has successfully passed manual testing in the integration\/staging environment.<\/strong><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1b7fc6d elementor-widget elementor-widget-text-editor\" data-id=\"1b7fc6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #cb0300;\"><strong>1.1.)<\/strong><\/span><\/p><p>Issues the team noticed after a few weeks of development:<\/p><ul><li><span style=\"color: #000080;\">The development branch merges with main only every 1 to 2 weeks (at the end of iteration). Therefore, integration issues accumulate and are discovered late. <\/span><\/li><li><span style=\"color: #000080;\">\u201cDone\u201d actually means \u201cdevelopment complete\u201d, not ready for production.<\/span><\/li><li><span style=\"color: #000080;\">Even if the main branch is unstable, it doesn&#8217;t stop the team&#8217;s work because they rarely use it for development or testing. Main branch stability is important only on paper, but since it has little direct impact on daily development, the team rarely focuses on it. <\/span><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c9c85cf elementor-widget elementor-widget-text-editor\" data-id=\"c9c85cf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #cb0300;\"><strong>2.1.)<\/strong><\/span><\/p><p>Based on the above observations, the development team supplements the DoD. A PBI is now considered complete when: <\/p><ul><li>All acceptance criteria are met<\/li><li>Refactoring is completed<\/li><li><strong>New code is integrated into the main branch.<\/strong><\/li><li><strong>All automatic tests (unit, integration, regression) in the Continuous Integration (CI) pipeline are successful.<\/strong><\/li><li><strong>Code automatically integrates into the test\/staging environment. This eliminates the bottleneck of waiting for manual inclusion of new code into the test environment (early signs of DevOps?). <\/strong><\/li><li><strong>There are no open critical bugs. Statements like: <em>Feature is done, just this bug remains. We&#8217;ll fix it another time <\/em>&#8221; are not acceptable.<\/strong><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c298d7d elementor-widget elementor-widget-text-editor\" data-id=\"c298d7d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #cb0300;\"><strong>2.2.)<\/strong><\/span><\/p><p>The consequences of changing DoD are:<\/p><ul><li><span style=\"color: #000080;\">Developers are forced to integrate into the main branch more frequently. The main branch thus becomes the \u201cnerve center\u201d, as everyone uses it as a basis for their work. If the main branch is unstable, it immediately stops everyone&#8217;s work (because testers can&#8217;t test, developers can&#8217;t confidently work on new tasks). Thus stability becomes operationally critical and affects team productivity in real time. Consequently, daily integration (or multiple times daily) becomes the norm. The system is similar to the <a style=\"color: #000080;\" href=\"https:\/\/www.6sigma.us\/six-sigma-in-focus\/andon-cord-lean-manufacturing-tps\/\" target=\"_blank\" rel=\"noopener\"><span style=\"color: #0000ff;\">Andon cord in Toyota Production System<\/span><\/a>.     <\/span><\/li><li><span style=\"color: #000080;\">Because manual execution of all regression tests with frequent integrations is impossible, the team is forced to establish an automated Continuous Integration (CI) pipeline that builds, tests, and deploys the application to the test environment with every change in the main branch.<\/span><\/li><li><span style=\"color: #000080;\">With continuous integration, integration conflicts and environment issues are greatly reduced.<\/span><\/li><li><span style=\"color: #000080;\">Cultural shift towards CI mindset. Since CI has become essentially a requirement for the enhanced DoD, this leads the team towards being \u201cproduction ready\u201d after each change. <\/span><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-676a445 elementor-widget elementor-widget-text-editor\" data-id=\"676a445\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Let&#8217;s say a developer completes the \u201cUser Profile Picture Upload\u201d functionality.<\/p><p><span style=\"color: #cb0300;\"><strong>Old DoD:<\/strong><\/span> functionality merges into dev branch, QA tests it in the next sprint, then merges into main branch weeks later.<\/p><p><span style=\"color: #cb0300;\"><strong>New DoD:<\/strong><\/span> functionality needs to be integrated into the main branch today, which triggers:<\/p><ul><li style=\"list-style-type: none;\"><ul><li>automatic build,<\/li><li>static code analysis for detecting errors, standard deviations, and vulnerabilities (ESLint, Flake8&#8230;),<\/li><li>unit tests,<\/li><li>integration tests,<\/li><li>regression tests,<\/li><li>deployment to test\/staging environment.<\/li><\/ul><\/li><\/ul><p>If such a pipeline fails, the functionality is not complete.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3c0c298 elementor-widget elementor-widget-text-editor\" data-id=\"3c0c298\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>With such a comprehensive DoD, the team practically starts implementing Continuous Integration (CI) with every completed PBI, even if CI was never formally declared as a goal.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d6ad885 elementor-widget elementor-widget-image\" data-id=\"d6ad885\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"500\" height=\"500\" src=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/We-are-different.jpg\" class=\"attachment-large size-large wp-image-11026\" alt=\"Definition Of Done\" srcset=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/We-are-different.jpg 500w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/We-are-different-300x300.jpg 300w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/We-are-different-150x150.jpg 150w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/We-are-different-100x100.jpg 100w\" sizes=\"(max-width: 500px) 100vw, 500px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">We are different!<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9c8f047 elementor-widget elementor-widget-heading\" data-id=\"9c8f047\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Why Don't Organizations Deploy to Production Continuously?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e853587 elementor-widget elementor-widget-text-editor\" data-id=\"e853587\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The first reason is of course: \u201c<em>Our situation is different\/more complex\/regulated\/connected&#8230;<\/em> \u21d0 choose your favorite\u201d. Here&#8217;s a list of the most common \u201creasons\u201d and solutions:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3670eb4 elementor-widget elementor-widget-image\" data-id=\"3670eb4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"1000\" height=\"290\" src=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2025\/08\/Izgovori-in-resitve-EN.jpg\" class=\"attachment-large size-large wp-image-11314\" alt=\"Definition of Done\" srcset=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2025\/08\/Izgovori-in-resitve-EN.jpg 1000w, https:\/\/deltaagile.com\/wp-content\/uploads\/2025\/08\/Izgovori-in-resitve-EN-300x87.jpg 300w, https:\/\/deltaagile.com\/wp-content\/uploads\/2025\/08\/Izgovori-in-resitve-EN-768x223.jpg 768w, https:\/\/deltaagile.com\/wp-content\/uploads\/2025\/08\/Izgovori-in-resitve-EN-18x5.jpg 18w, https:\/\/deltaagile.com\/wp-content\/uploads\/2025\/08\/Izgovori-in-resitve-EN-600x174.jpg 600w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ee49d0d elementor-widget elementor-widget-text-editor\" data-id=\"ee49d0d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>From the table above, we can see that expanding DoD towards ensuring Continuous Integration\/Continuous Deployment also requires senior management cooperation, as it often affects the organization&#8217;s overall operations.<\/p><p>At the beginning of development\/project, DoD will likely be far from ideal. Reasons for this could be currently insufficient technical knowledge of developers, an insufficient number of developers to form real cross-functional teams, isolation of the Agile initiative from other parts of the organization, or unfamiliarity with the initiative&#8217;s challenges. <\/p><p>At the end of iterations, functionalities completed based on this incomplete DoD probably won&#8217;t be directly suitable for production. Unperformed (but release-important) activities could include unexecuted regression, performance and\/or user tests, use of different API versions and different design patterns in related modules. This unfinished work is what separates teams from the ideal of Continuous Deployment.  <\/p><p>Of course, the more iterations that pass without a release, the larger the inventory of unfinished work. This can create a false sense of progress.  <strong>However, when management decides it&#8217;s time for release, it turns out that functionalities are far from ready for production and still require considerable work.<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-784fb6d elementor-widget elementor-widget-text-editor\" data-id=\"784fb6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Organizations solve this predicament in various improvised ways:<\/strong><\/p><ul><li><span style=\"color: #0000ff;\">Hardening sprint\/iteration<\/span> is dedicated exclusively to optimizing code that should \u201csomehow\u201d already be ready for production, but obviously isn&#8217;t.<\/li><li><span style=\"color: #0000ff;\">Release sprint\/iteration<\/span> is dedicated to preparing developed code for production integration. Usually, this means that development didn&#8217;t test in a test environment that was a copy of production. <\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bf1d202 elementor-widget elementor-widget-image\" data-id=\"bf1d202\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"311\" src=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Release-Sprint.jpg\" class=\"attachment-large size-large wp-image-11031\" alt=\"\" srcset=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Release-Sprint.jpg 500w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Release-Sprint-300x187.jpg 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Creative commons license: less.works<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bd6414a elementor-widget elementor-widget-text-editor\" data-id=\"bd6414a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<ul><li><span style=\"color: #0000ff;\">Integration team<\/span>, which continuously integrates code from other teams into a functional whole.*<\/li><li><span style=\"color: #0000ff;\">Undone team<\/span>, which continuously takes over unfinished work and completes it, thus preparing it for release &#8211; dream job \ud83d\ude41<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9425eec elementor-widget elementor-widget-image\" data-id=\"9425eec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"330\" src=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Undone-department.jpg\" class=\"attachment-large size-large wp-image-11028\" alt=\"Definition Of Done\" srcset=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Undone-department.jpg 500w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Undone-department-300x198.jpg 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Creative commons license: less.works<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4aa514a elementor-widget elementor-widget-text-editor\" data-id=\"4aa514a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>All of the above are undesirable patterns.<\/strong><\/p><p> <\/p><p><em>* Some Scaled Agile frameworks (Nexus, SAFe) do include integration teams, but their primary task isn&#8217;t direct code integration, but rather helping teams with the integration process.<\/em><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9209375 elementor-widget elementor-widget-text-editor\" data-id=\"9209375\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Such unplanned release delay can be a hard blow for an organization, as releases are often coordinated with parallel activities that need to be planned in advance. These include marketing campaigns, public product announcements, partner conferences, after-sales support training, and financial flows. <\/p><p>We probably agree that a comprehensive (ideal) DoD is beneficial for achieving Agile flexibility, work optimization, and faster ROI. What prevents organizations from expanding DoD? <\/p><p>A generic answer to this question would be that<em> \u201cbarriers to DoD evolution need to be sought at all organizational levels. Especially by analyzing the interaction of individual system parts (systems thinking) &#8230;. bla, bla, bla\u201d<\/em>. In practice, however, each development team knows best what&#8217;s hindering them from achieving the goal of Continuous Integration\/Continuous Deployment and the related ideal DoD. <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e3d0e16 elementor-widget elementor-widget-image\" data-id=\"e3d0e16\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"334\" src=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Agile-is-comming.jpg\" class=\"attachment-large size-large wp-image-11029\" alt=\"\" srcset=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Agile-is-comming.jpg 500w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Agile-is-comming-300x200.jpg 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" title=\"\">\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Agile in the eyes of hierarchical departments<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-490d814 elementor-widget elementor-widget-text-editor\" data-id=\"490d814\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>When an organization identifies reasons for non-optimal DoD, their resolution is added to the organizational or product backlog (depending on whether they require strategic or operational changes). In the next cycle, changes are implemented and evaluated over the next few cycles. Successful changes are maintained or upgraded, unsuccessful ones are discarded.  <\/p><p>DoD expansion is a key tool for interested leadership in implementing organizational changes. The key word in the previous sentence is \u201c<strong>interested<\/strong>\u201d. Agile transformation is beyond the scope of this article. Scaled Agile frameworks <strong>LeSS<\/strong> and <strong>Scrum@Scale<\/strong> deal extensively with this challenge. Each in its own way, but the common thread of both types of transformations is following good Agile practices and spreading this mentality to the rest of the organization. DoD expansion can be a useful tool in this process.     <\/p><p>You&#8217;ll learn more about advanced Agile approaches in the <a href=\"https:\/\/deltaagile.com\/en\/produkt\/scaled-agile-course\/\" target=\"_blank\" rel=\"noopener\">Scaled Agile<\/a> course.<\/p><p>The table below describes organizational maturity levels that also condition the maximum possible scope of Definition of Done.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0172dbc elementor-widget elementor-widget-image\" data-id=\"0172dbc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Agile-Maturity-model.jpg\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-title=\"Agile Maturity model\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6MTEwMzAsInVybCI6Imh0dHBzOlwvXC9kZWx0YWFnaWxlLmNvbVwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNFwvMDRcL0FnaWxlLU1hdHVyaXR5LW1vZGVsLmpwZyJ9\">\n\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"525\" src=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Agile-Maturity-model-1024x525.jpg\" class=\"attachment-large size-large wp-image-11030\" alt=\"Definition Of Done\" srcset=\"https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Agile-Maturity-model-1024x525.jpg 1024w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Agile-Maturity-model-300x154.jpg 300w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Agile-Maturity-model-768x394.jpg 768w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Agile-Maturity-model-600x307.jpg 600w, https:\/\/deltaagile.com\/wp-content\/uploads\/2024\/04\/Agile-Maturity-model.jpg 1362w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" title=\"\">\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">by ThoughtWorks Studios<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8fdbf2c elementor-widget elementor-widget-heading\" data-id=\"8fdbf2c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Conclusion<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-88d5bbb elementor-widget elementor-widget-text-editor\" data-id=\"88d5bbb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Definition of Done is an essential tool for ensuring the quality of the developed product. At the same time, its enhancement towards Continuous Integration catalyzes necessary organizational changes. The result is an increasingly Agile organization that reaps more benefits from this approach.  <\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>What is Definition of Done? Definition of Done (DoD) is an agreed list of activities that the team performs during an iteration for each item taken from the Product Backlog for development. DoD is a quality measure that every functionality developed by the team must meet. Features (user stories) that don&#8217;t meet the DoD at [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":11312,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[70],"tags":[61],"class_list":["post-11608","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tools","tag-published"],"_links":{"self":[{"href":"https:\/\/deltaagile.com\/en\/wp-json\/wp\/v2\/posts\/11608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/deltaagile.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/deltaagile.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/deltaagile.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/deltaagile.com\/en\/wp-json\/wp\/v2\/comments?post=11608"}],"version-history":[{"count":0,"href":"https:\/\/deltaagile.com\/en\/wp-json\/wp\/v2\/posts\/11608\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/deltaagile.com\/en\/wp-json\/wp\/v2\/media\/11312"}],"wp:attachment":[{"href":"https:\/\/deltaagile.com\/en\/wp-json\/wp\/v2\/media?parent=11608"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/deltaagile.com\/en\/wp-json\/wp\/v2\/categories?post=11608"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/deltaagile.com\/en\/wp-json\/wp\/v2\/tags?post=11608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}