Dependency Management – the Good, the Bad, the Ugly
Ruthlessly Mitigate Dependencies

Dependency Management – the Good, the Bad, the Ugly

Does your team struggle to get items to Done? Do they experience a high amount of spill-over into the next cycle because they are waiting on another team or another person? Do items sit in a blocked state and age out while waiting on other teams or people to complete work?

Dependencies are an epidemic in software development. There could be many reasons why - perhaps your organization has adopted an Agile framework, but you're not yet structured to support sustainable teams. You may have a strong reliance on vendors or specialists when you start your Agile journey. And, some large-scale systems changes require some level of dependencies. The reality is, dependencies are not going to go away. As you scale your Agile efforts, the dependencies scale as well. The good news is, there are strategies you can use to move your teams from managing dependencies to mitigating dependencies.

What the Scrum Guide says:

“Cross-functional teams have all competencies needed to accomplish the work without depending on others not part of the team. The team model in Scrum is designed to optimize flexibility, creativity, and productivity.” - K. Schwaber and J. Sutherland, Scrum Guide, 2013

That's typically not the reality for teams new to Scrum, or organizations new to Agile. While cross-functional teams are the cornerstone of Agile, it might take a very long time for your organization to evolve. If you want to fully realize the benefits of Scrum, don't just manage dependencies, ruthlessly mitigate them. Read on to learn how.

Thing we hear (or say):

  • Organizational Design: My team is mostly back-end; we rely on another team for the < … > (fill in with any component of software – front end enhancements, database layer, integration, API)
  • Immature Agility: My team is using Scrum, but many of the other teams we work with are using more traditional approaches, like Waterfall
  • Not Cross-Functional: My team uses a <Vendor / expert / lead > for a specialized skill, and they are in a completely different time zone
  • Complicated Architecture: We work with so many different <systems, tools, technologies> that it’s impossible to be truly cross-functional and loosely coupled
  • What are your “reasons?”

The Good, the Bad, and the Ugly

As with all things Agile, there is no silver bullet, no one-size-fits-all solution. There are some things we can do, however, to mitigate dependencies. Some are quick fixes, and some require longer-term, more involved solutions. The solution to ruthlessly mitigating dependencies lies in empowering people and enabling flow.

https://zoom.us/j/673958567

Got ugly dependencies? Let’s talk about getting to good.

In the short term, communication and proactive planning is key. For a longer-term, more empowering state, consider cross-training, opening up permissions, organizational design changes, even hiring and team forming strategies. It takes effort from everyone to see successes on a wide scale.

Short Term: Scrum of Scrums

A common approach to mitigating dependencies as you scale Agile throughout your organization is to use a scaling pattern called a Scrum of Scrums. In a Scrum of Scrums, delegates from each team meet to coordinate efforts and dependencies. A valuable practice is to visualize the dependencies and candidly prioritize according to the value and impact of the work. No pet projects or side jobs are allowed – all the dependencies must be made visible and evaluated against other demands. Another common practice is to ensure the decision makers are involved, so that resolution of impediments is fast and the group is focused on solutions.

If you are a team on the receiving end of dependencies, this is a good first step to relieve the need to attend multiple team meetings. But it is only one step on your journey to less dependencies - there is so much more you can do.

Long Term: Empower people, Enable Flow

Scrum Master or Tech Manager

Overall, be curious and ask powerful questions about each dependency. Don't accept the status quo - dependency mitigation is a complex problem without a clear solution. Open up a dialogue with the Scrum team, the leaders, even the Stakeholders to examine your work from various standpoints.

  • Get work to "Done." If you have a lot of spill-over in your team, and things just aren't getting to Done, first, analyze what might be causing the problem: Are items too big? Or were dependencies recognized during the execution of the work and not before? If items are just too big to be completed and fully tested within the time box, you may need to focus coaching and training efforts on vertically slicing small work items – with an emphasis on small. If the problem really is a dependency with another team or a specialist not on your team, discuss some solutions with your team, the Product Owner, and business leaders so they are committed to the behavior changes that are required to get items to a releasable state independent of other teams.
  • Get the team involved. If the flow of work in your team has the hiccups, perhaps indicated by a high spill-over rate, lots of starts and stops on work in progress, or aging items, consider a retrospective on how to smooth things out. No-one knows better than the development team the art of the possible when it comes to using technology to solve problems. They are also the closest to the work, and they will have good insight to bottlenecks caused by permissions, controls, and expert knowledge only held by a few people.

Product Owner or Business Owner

Communication and preparation are key. So is saying 'No.' One of the best things a Product Owner or Business Owner can do is to be proactive about planning dependencies, sequencing work, and negotiating scope. The leader's role in Agile to stay ahead of the team and to make difficult decisions every day is critical to the success of the team. (Read my 5 tips to Emotional EQ as a Product Owner.)

  • Plan at least 2-3 cycles ahead so that developers can help identify dependencies early. That will allow you to work with any other teams and get on their backlog and ensure the value of the request is communicated. Consider using the various planning cycles in Agile to allow your team three 'touches' to decompose work, from vision and roadmap, to release planning, to refinement.
  • Communicate the value, not priorities or deadlines. When teams have to balance multiple stakeholders with competing requests, we want to focus the conversations on the business value, not the deadline. Clarify for yourself and others: What is the business impact if this dependency is not resolved when we ask for it? What if it is not resolved at all? Is this dependency really critical to deliver something of value, or just preferable?
  • Teams should not begin a work item with an external dependency unless the other team is at the Planning Meeting to make their commitment, or unless the dependency is resolved before the work starts. Be willing to sequence work that requires dependency from 3rd parties, so your team can build out their learning and skills to support more of the dependent work, and lessen the reliance on others.

Development Team:

The Development Team is the first line of defense when it comes to dependency mitigation.

  • T-shaped Skills: Start cross-training wherever and whenever possible, so that more of the team can do more of the work. Consider pairing in when a specialist is needed, by having that person join your team for a few weeks to share the knowledge and expertise.
  • Accountability: Ensure that any refinement activities are hands-on, in the code, in the database. Take a personal interest in identifying where there is a reliance on other parties during refinement, instead of relying on others.
  • Agile Engineering: Consider how technology can assist, such as automation, micro-services, or continual integration to release as frequently as possible. Refactor code so that your team can work independent of others. Ask for permissions or controls to be lessened instead of accepting aging constraints.

Agile Leaders:

Enable Flow, Empower People. The role of managers and leadership needs to evolve as well as the organizational structure to support the move to cross-functional, self-organizing teams. The criticality of this element can be overlooked while it seems all eyes are focused on development. But no-one else is as uniquely positioned to make system-wide changes that can free up resources and remove constraints.

  • Enable Flow: Conduct lean analyses such as Value Stream Mapping to identify waste and delays. Your goal should be to evolve your organization into rational value streams and sustainable teams with a plan for less and less dependencies outside the value streams. 
  • Empower People: Create a Culture of Empowerment - are there single points of failure in your organization? Are there multiple levels of review? Is it a culture of centralized decision making or one of de-centralized, autonomy-driven decisions that creates bottlenecks and dependencies?

The difference between enablement and empowerment is that enablement focuses on the act of assisting, while empowerment is the granting of power to individuals or groups.

Empowering Product Owners and Business Owners to say “No” helps them limit work in progress, re-focus work on the highest, most valuable items, and eliminate the waste of coordinating complex, dependence-ridden efforts. Empowering Scrum Masters and Team Managers with more permissions and less reviews enables the flow of information and data. Empowering teams to say yes, and do more, helps the whole organization realize the full power and effectiveness of a unified and motivated workforce. 

We are curious to learn - How are your teams able to mitigate dependencies?

~ Julee Everett with Kim Andrikaitis

Hone your craft; speak your truth; show your thanks


Learn more about our Product and Innovation workshops and bootcamps at ClearlyAgile - we don't just talk about products, we build products. Review our training and services at www.clearlyagileinc.com. We offer both workshops and professional consulting in Product, Innovation, and Business Agility to help you pivot successfully in this shifting marketplace. 


Gowri Saba

ICAgile Certified Professional - Agile Coach | PSM ll Certified Scrum Master | Agile Delivery

11 个月

Great article Julie!

回复
Toby V. Rao

Enterprise Coach I Transformation Lead I Change Mgmt. Consultant

4 年

Great article Julie! Dependency is not our enemy. Our inability to deal effectively with it IS!

回复
Matt Keleman

Product Management...and beyond!

4 年

Great article! With the organizations I've worked with, the common denominator that seems to contribute the most to cross-team dependencies is the legacy-way of thinking and organizing work; department-based and project-based instead of product-based. The sooner we see teams think and organize in terms of products and ignore what departments folks report to who are needed to build/enhance/support those products, the sooner we see cross-functional teams formed. Only THEN is when we see velocity increase drastically, due to a significant reduction in the teams' (and programs') external dependencies. In my opinion, the old school "department" can be considered a "Community of Practice" or a "guild" in today's Agile organizations.

Anil K

Project Program Management | Business Analytics

4 年

Well great article and would like to have more . But thinking from an Org persecutive , many dependencies could be foreseen during the Release Planning meeting . On a small horizon they can be mitigated with 'Technical Debt' and it could continue within the Release Window. The Org design part is critical to have specialist but a DB arch can only do so, a Front end can only limit themselves to UI / server side but it depends on years of experience in that tech. This is resolved with 'platform engineers/arch' who can chime in whether its UI/Server/backend/DB etc. On a large scale the Spotify model works well or SoS/SAFe . Also most of the tech guys uses 'Technical Spike' to mitigate tech risk which spans a sprint and it could be with a Vendor or API or integrations etc. But what about the budget part of it. One cannot have all these achieved unless you have budgeted these extras or defer them to next release or till you do AOP. Many agile coaches/agents harp empowering people. It doesn't work. Agile works on 'Pull' mechanism. Finish task and help others . But empowering people comes once they gain expertise. You can't have broken branches/code merge failing if you just empower and things fails in Prod. Happy to discuss more.

Yolanda V. Martinez, ICF-PCC, ICF-ACTC, CSP-SM, A-CSM, CSPO

Leadership & Team Performance Coach | Agility Lead-Scrum Master I coach teams to create a culture of continuous improvement and adaptability delivering high quality results consistently through effective Agile practices

4 年

I love that this article has helpful suggestions for the various roles - from the scrum master to the agile leader! Awesome work here!

要查看或添加评论,请登录

Julee Everett的更多文章

  • 3 Steps to Grow Your Product Mindset

    3 Steps to Grow Your Product Mindset

    To read my previous post on The Product Mindset Manifesto; 4 Principles to Grow Your Product Mindset, click here…

    3 条评论
  • The Product Mindset Manifesto: 4 Principles, 3 Steps

    The Product Mindset Manifesto: 4 Principles, 3 Steps

    One day we had full schools, workplaces, gyms, and spas. The next, we were all at home.

    3 条评论
  • Scrum AND Design Thinking

    Scrum AND Design Thinking

    There is a shift happening - to a human-centric approach to creating products that people love and are loyal to. This…

    3 条评论
  • Which Scrum Certification is Right for You?

    Which Scrum Certification is Right for You?

    As a Professional Trainer and Consultant, I often field questions about certifications in Agile, and particularly the…

    2 条评论
  • Making Technical Debt Visible

    Making Technical Debt Visible

    As a Product Owner, there is nothing more frustrating than having to use valuable development time to deal with…

    6 条评论
  • Scrum and Six Sigma - Can they co-exist?

    Scrum and Six Sigma - Can they co-exist?

    I have clients in two diverse domains - material sciences and life sciences - that are currently investing in maturing…

    14 条评论
  • 5 tips for new Agilists

    5 tips for new Agilists

    Hey! Does your agile coach's job look like fun? It is! I believe it’s the best career possible in the market today -…

    5 条评论
  • Scrum Masters: 3 tips and an 8 second habit that will change the emotional climate of your team

    Scrum Masters: 3 tips and an 8 second habit that will change the emotional climate of your team

    Scrum Masters, are you a natural servant LEADER, or do you struggle to be the inspiring coach that creates…

    1 条评论
  • 5 tips to increase Emotional Intelligence as a Product Owner

    5 tips to increase Emotional Intelligence as a Product Owner

    A Product Owner is constantly balancing expectations from the business, the team, and users. It’s a tough job.

  • Motivation, not medication

    Motivation, not medication

    Once I got a $30,000 raise. It was the worst job I ever had.

    4 条评论

社区洞察

其他会员也浏览了