 {"id":496,"date":"2023-08-16T11:10:17","date_gmt":"2023-08-16T11:10:17","guid":{"rendered":"https:\/\/wp.burcu.gokhansengun.com\/?p=496"},"modified":"2023-08-16T11:13:39","modified_gmt":"2023-08-16T11:13:39","slug":"scrum-master-challenges-4","status":"publish","type":"post","link":"https:\/\/wp.burcu.gokhansengun.com\/?p=496","title":{"rendered":"Scrum Master Challenges #4"},"content":{"rendered":"\n<p><strong>Asynchronously Dependent Teams<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency.jpg\" alt=\"\" class=\"wp-image-498\" style=\"width:338px;height:225px\" width=\"338\" height=\"225\" srcset=\"https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency.jpg 626w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-300x200.jpg 300w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-24x16.jpg 24w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-36x24.jpg 36w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-48x32.jpg 48w\" sizes=\"auto, (max-width: 338px) 100vw, 338px\" \/><figcaption class=\"wp-element-caption\">Photo by freepik.com<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Is your team unable to complete tasks in its sprint due to waiting for another team or individual? Do requests undergo changes while waiting for other team(s) to finish their work? Are team members left idle due to delays in sub-tasks from other teams?<\/p>\n\n\n\n<p>Dependencies are quite common in the world of software development. There can be several reasons for this: working with large-scale systems, improper configuration of agile transformation, and so on.<\/p>\n\n\n\n<p>The reality is that dependencies will always be a part of our lives. When it comes to dependencies, the prevailing notion is that the real issue lies not in synchronous dependencies but in asynchronous dependencies. It&#8217;s worth discussing what synchronous and asynchronous dependencies mean.<\/p>\n\n\n\n<p><strong>Synchronous Dependency:<\/strong> We can describe this as a dependency between teams developing components concurrently. In this type of dependency, teams collaborate and learn from each other instead of causing interruptions. This is a desired type of dependency.&#8221;<\/p>\n\n\n\n<p><strong>Asynchronous Dependency:<\/strong> In cases where two different teams work asynchronously on a single component, a type of dependency arises. This type of dependency can also emerge between teams working on different components of a product. For the product to be completed, both teams&#8217; contributions are necessary, but due to differing priorities, the teams cannot work concurrently. This situation leads to interruptions and conflicts within teams. This is the undesirable type of dependency.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/types-of-dependencies.jpg\" alt=\"\" class=\"wp-image-499\" style=\"width:273px;height:206px\" width=\"273\" height=\"206\" srcset=\"https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/types-of-dependencies.jpg 612w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/types-of-dependencies-300x226.jpg 300w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/types-of-dependencies-24x18.jpg 24w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/types-of-dependencies-36x27.jpg 36w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/types-of-dependencies-48x36.jpg 48w\" sizes=\"auto, (max-width: 273px) 100vw, 273px\" \/><figcaption class=\"wp-element-caption\">Copyright: Bas Vodde<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Bas Vodde, one of the founders of LeSS (Large-Scale Scrum), encourages the increase of synchronous dependencies. For those curious about the details, check out his thoughts on <a href=\"https:\/\/www.youtube.com\/watch?v=DTk2FXoOwbk\">Maximizing Dependencies with Interdependent Teams<\/a> .<\/p>\n\n\n\n<p>However, the critical aspect lies in how we respond to asynchronous dependencies. We either manage them or prefer to eliminate them. Our choice will vary based on the dynamics of the environment where the dependency occurs.<\/p>\n\n\n\n<p>Both choices have their advantages and disadvantages, each housing various strategies.<\/p>\n\n\n\n<p><strong>Choice 1: Managing Asynchronous Dependencies<\/strong><\/p>\n\n\n\n<p>The Scrum Guide states, \u201cScrum Teams are cross-functional, meaning the members have all the skills necessary to create value in a Sprint.\u201d , <a href=\"https:\/\/scrumguides.org\/scrum-guide.html\">Scrum Guide, 2020<\/a><\/p>\n\n\n\n<p>However, this may not be realistic for new teams in Scrum or new organizations adopting Agile. While cross-functionality is essential to Agile, reaching this maturity level within organizations takes time.<\/p>\n\n\n\n<p>Teams that are unable to implement cross-functionality often express sentiments like:<\/p>\n\n\n\n<p>\u201cWe are the end-system team, waiting for the source system to complete development for the delivery to be done.\u201d<\/p>\n\n\n\n<p>\u201cWe lack this expertise in our team; we need support from an expert.\u201d<\/p>\n\n\n\n<p>\u201cWe have so many integration points that being cross-functional is impossible.\u201d<\/p>\n\n\n\n<p>&nbsp;[\u2026]<\/p>\n\n\n\n<p>To manage asynchronous dependencies in the short term, communication and proactive planning are crucial. This can be achieved by establishing communication and coordination mechanisms between teams. An effective and commonly used model for this purpose is the Scrum of Scrums. Scrum of Scrums is a scaling model where delegates from each team gather to coordinate work and dependencies. Visualizing dependencies and prioritizing them based on value and impact is a beneficial practice during these meetings. All requests on the teams should be evaluated collectively. Overcoming obstacles swiftly is possible if decision-makers are involved.<\/p>\n\n\n\n<p>For long-term solutions, the first step is to identify the root cause of the dependency and work towards addressing it. Here are some actions we can take:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Start by asking powerful questions to identify the root cause of the dependency and avoid accepting the status quo. For instance:<\/li>\n<\/ol>\n\n\n\n<p>\u2022 Why do we have these dependencies?<\/p>\n\n\n\n<p>\u2022 Are the dependencies arising from the structure of teams? (Component vs. Feature Teams) \u2022 Are we frequently integrating into the &#8216;big&#8217; Product as early feedback and concurrent coordination mechanism?<\/p>\n\n\n\n<p>\u2022 Are we framing products from an external customer perspective or an internal perspective of system components or outputs that the customer doesn&#8217;t individually care about?<\/p>\n\n\n\n<p>\u2022 Are there items on the product backlog that resemble deliveries rather than tasks that generate value for the organization?<\/p>\n\n\n\n<p>\u2022 Why can&#8217;t we bring the work to &#8216;Done&#8217;? Are items too large? Are dependencies being identified during execution or not prior to it?<\/p>\n\n\n\n<p>2. Collaborate with the Scrum Team, leaders, and stakeholders. If items on the product backlog are too large to be completed in a sprint, coach and educate stakeholders and the team to break them down into smaller items. If the problem truly stems from a dependency on another team or an expert not present in your team, discuss potential solutions with developers, Product Owners, and business leaders. Engage in conversations about methods to resolve dependencies before items reach your team.<\/p>\n\n\n\n<p>3. Involve developers. Bring up the topic of dependencies in retrospectives. Discuss bottlenecks arising from exclusive authority, control, and expert knowledge held by certain individuals.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-Mitigation.jpg\" alt=\"\" class=\"wp-image-500\" style=\"width:535px;height:183px\" width=\"535\" height=\"183\" srcset=\"https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-Mitigation.jpg 1024w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-Mitigation-300x103.jpg 300w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-Mitigation-768x263.jpg 768w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-Mitigation-24x8.jpg 24w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-Mitigation-36x12.jpg 36w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-Mitigation-48x16.jpg 48w\" sizes=\"auto, (max-width: 535px) 100vw, 535px\" \/><figcaption class=\"wp-element-caption\">Image: scrum.org \u2013 by Julee Everett<\/figcaption><\/figure>\n<\/div>\n\n\n<p>4. Provide coaching to the Product Owner in the following areas and offer training if necessary.<\/p>\n\n\n\n<p>Being proactive in planning, prioritizing work, and negotiating scope with dependencies.<\/p>\n\n\n\n<p>\u2022 Enabling developers to identify dependencies early by planning at least 2-3 cycles ahead.<\/p>\n\n\n\n<p>\u2022 Focusing on value rather than the final delivery date (What would be the impact on the work if the dependency isn&#8217;t resolved?)<\/p>\n\n\n\n<p>\u2022 Not starting work on an item with an external dependency until the other team commitments are fulfilled in the Planning Meeting or unless the dependency is resolved before work begins.<\/p>\n\n\n\n<p>5. Explore ways to keep developers in a continuous cross-training process (e.g. Dynamic Reteaming) to enable more teams to handle more work. Consider pairing with an expert by having them participate in your team for a few sprints to share knowledge and expertise when needed.<\/p>\n\n\n\n<p>6. Consider leveraging technologies like automation, microservices, or continuous integration to release versions as frequently as possible. Evaluate the option of refactoring code to enable your team to work independently of others.,<\/p>\n\n\n\n<p><strong>Choice 2: Eliminating Asynchronous Dependencies<\/strong><\/p>\n\n\n\n<p>Eliminating asynchronous dependencies is a better ultimate solution than creating coordination mechanisms. This approach focuses on removing the root cause of the dependency.<\/p>\n\n\n\n<p>Let&#8217;s reiterate what the Scrum Guide says: \u201cScrum Teams are cross-functional, meaning the members have all the skills necessary to create value in a Sprint.\u201d<\/p>\n\n\n\n<p>The way to eliminate such dependencies is to make teams cross-functional, which is achievable by transitioning from Component Teams to Feature Teams. (For differences between Component and Feature Teams, refer to <a href=\"https:\/\/less.works\/less\/structure\/feature-teams\">Feature vs Component Teams<\/a>)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/feature-vs-component.png\" alt=\"\" class=\"wp-image-502\" style=\"width:380px;height:194px\" width=\"380\" height=\"194\" srcset=\"https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/feature-vs-component.png 853w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/feature-vs-component-300x153.png 300w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/feature-vs-component-768x393.png 768w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/feature-vs-component-24x12.png 24w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/feature-vs-component-36x18.png 36w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/feature-vs-component-48x25.png 48w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><figcaption class=\"wp-element-caption\">Image: http:\/\/less.works (BY-ND)<\/figcaption><\/figure>\n<\/div>\n\n\n<p>By making this transition, many dependencies are shifted from asynchronous to synchronous, as they move to feature teams. This allows all dependencies related to a value stream to be resolved in a single sprint, guided by a single team. The coordination challenge during integration between teams making changes in the same component can be addressed.<\/p>\n\n\n\n<p>The strategy for transitioning to Feature teams will vary based on the organization. Experts recommend taking slow but steady steps. One approach is to establish a single cross-functional team (feature team) within the existing organization and gradually increase the number of feature teams once this team demonstrates strong performance.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Feature-Team-Transition.png\" alt=\"\" class=\"wp-image-503\" style=\"width:271px;height:233px\" width=\"271\" height=\"233\" srcset=\"https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Feature-Team-Transition.png 797w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Feature-Team-Transition-300x258.png 300w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Feature-Team-Transition-768x661.png 768w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Feature-Team-Transition-24x21.png 24w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Feature-Team-Transition-36x31.png 36w, https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Feature-Team-Transition-48x41.png 48w\" sizes=\"auto, (max-width: 271px) 100vw, 271px\" \/><figcaption class=\"wp-element-caption\">Image: http:\/\/less.works (BY-ND)<\/figcaption><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Asynchronously Dependent Teams<\/p>\n","protected":false},"author":1,"featured_media":506,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[4],"tags":[15,18,8,11],"class_list":["post-496","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sa","tag-agile","tag-managing-dependency","tag-scrum","tag-scrum-master"],"uagb_featured_image_src":{"full":["https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-2.jpg",626,417,false],"thumbnail":["https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-2-150x150.jpg",150,150,true],"medium":["https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-2-300x200.jpg",300,200,true],"medium_large":["https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-2.jpg",626,417,false],"large":["https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-2.jpg",626,417,false],"1536x1536":["https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-2.jpg",626,417,false],"2048x2048":["https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-2.jpg",626,417,false],"menu-24x24":["https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-2-24x16.jpg",24,16,true],"menu-36x36":["https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-2-36x24.jpg",36,24,true],"menu-48x48":["https:\/\/wp.burcu.gokhansengun.com\/wp-content\/uploads\/2023\/08\/Dependency-2-48x32.jpg",48,32,true]},"uagb_author_info":{"display_name":"BS","author_link":"https:\/\/wp.burcu.gokhansengun.com\/?author=1"},"uagb_comment_info":3,"uagb_excerpt":"Asynchronously Dependent Teams","_links":{"self":[{"href":"https:\/\/wp.burcu.gokhansengun.com\/index.php?rest_route=\/wp\/v2\/posts\/496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.burcu.gokhansengun.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.burcu.gokhansengun.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.burcu.gokhansengun.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.burcu.gokhansengun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=496"}],"version-history":[{"count":2,"href":"https:\/\/wp.burcu.gokhansengun.com\/index.php?rest_route=\/wp\/v2\/posts\/496\/revisions"}],"predecessor-version":[{"id":509,"href":"https:\/\/wp.burcu.gokhansengun.com\/index.php?rest_route=\/wp\/v2\/posts\/496\/revisions\/509"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wp.burcu.gokhansengun.com\/index.php?rest_route=\/wp\/v2\/media\/506"}],"wp:attachment":[{"href":"https:\/\/wp.burcu.gokhansengun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.burcu.gokhansengun.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=496"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.burcu.gokhansengun.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}