top of page
Writer's pictureJohn Basso

Chained Dependencies: Approaches to Identify and Remove Complex Dependencies

Occasionally, you observe something so obviously out of place and wrong that you immediately wonder, “Why hasn’t anyone fixed this issue?” It may be due to chained dependencies.

 

Examples can be found in everyday life. I remember a whole TV segment on why the city had installed power poles in the middle of the sidewalk instead of at the edge. Imagine somebody looking down at their phone, walking down a sidewalk, only to run right smack dab into a power pole.

 

It turns out that the city couldn’t place the poles where they wanted because of underground piping and fiber optic cables. The costs of relocating the underground infrastructure would be exorbitant. The sewer line would have to be moved. And before they could move the sewer line, they would have to relocate the water line. The fiber optic cables would have to be moved to move the water line.

 

My experience has been that as soon as there is more than one dependence stacked on top of another (chained dependency), nothing is going to change.

 

At work, these issues cause extra work, degrade the user experience, reduce quality, and so on. As a recent example, I was working with a client—a company that was generating tens of millions of dollars in revenue and has been around for over a decade—that didn’t have a corporate email. Not having a company email made it much more difficult to schedule meetings and almost impossible to off-board employees, secure their systems, and so on.

 

Setting up email is technically simple. It’s a task that requires only about an hour of work. But they couldn’t set up a new email until they could reserve a domain name. That name couldn’t be reserved until the marketing team agreed to it, but the marketing team couldn’t use the name they wanted because it was being used for something else, etc.

 

The company just gave up trying to unpack the chained dependencies. This is a simple issue, but you could imagine how much more technically complex matters would be affected.


Definitions


●        Chained Dependencies: Chained dependencies refer to situations where a series of tasks or conditions are interconnected in such a way that each one depends on the completion of the previous one. When multiple dependencies are stacked in this manner, any change or progress requires resolving each link in the chain. This can be a daunting process and often leads to inaction.


●        Opportunity cost: The value of what you give up when you choose one option over another. It’s not just about money; it’s about the benefits or opportunities you miss out on by making a certain decision. For example, if you decide to spend an evening watching TV, the opportunity cost might be missing out on exercising, learning a new skill, or spending time with friends or family. In other words, opportunity cost is the trade-off you make whenever you choose one thing instead of another.


Going from Suck to Awesome


  • Sucks – Issues intertwined with chained dependencies tend to remain unresolved indefinitely. New people may attempt to tackle them when they join the organization, but these efforts ultimately fall short. Over time, more problems get caught up in this web of dependencies, making the situation even more complex.

  • Sucks a little less – Chained dependencies are identified and slowly get resolved, but the effort required creates huge opportunity costs in the organization, and other valuable features and improvements are delayed.

  • Awesome – Your organization has the processes, skilled resources, and management support in place to unpack chained dependencies.


Resolving Chained Dependencies 


●        Special Considerations

●        Approaches


Identifying Chained Dependencies


While it’s not mandatory, identifying all chained dependencies can be very helpful. Once identified, these issues can be tagged and handled through a special process. Since story points reflect effort, complexity, and uncertainty, issues with chained dependencies should be estimated accordingly—usually with higher point values compared to issues without such dependencies.


Regardless of Sprint duration, these types of complex issues will often require an epic. Epics typically span multiple Sprints, and caution should be exercised when attempting to complete a complex issue within a single Sprint.


Here are some signs of when you have a chained dependency:


  • There have been previous attempts to make a change, but they were unsuccessful.

  • The last person in your position tried to address the issue and failed.

  • Every suggested solution is met with another reason why it can’t be done.

  • The problem or situation appears to be completely out of place or illogical.

  • The existing approach goes completely against established best practices.

  • People suggest leaving things as they are without a clear reason why they can’t be changed.

  • Discussions about the issue often lead to increased anxiety or tension, signaling underlying complexity.

  • Multiple teams or departments are involved, each with their own dependencies, making coordination challenging.

  • Resolving one issue appears to require addressing a sequence of unrelated tasks or obstacles.

  • There’s a history of workarounds being implemented instead of solving the core problem.

 

Special Considerations


Here is the refined list of special conditions concerning chained dependencies, with descriptions and examples for each:

 

  • Finding Hidden Stakeholders

 

Description: Hidden stakeholders are individuals or groups who are affected by or have influence over the issue but are not immediately obvious. Identifying them is crucial for making progress.

 

Example: When planning to redesign a product feature, you discover the legal team needs to be involved due to compliance concerns, even though they weren’t originally consulted and aren’t typically involved in feature design.

 

  • Enrolling the Team Doing the Work

 

Description: To effectively address chained dependencies, it is essential to gain the support and commitment of the team responsible for executing the work. This includes aligning their goals and understanding their challenges.

 

Example: A developer team might need to be convinced to prioritize technical debt over feature work. Ensuring they understand the value and receive support can help motivate them.

 

  • Additional Planning

 

Description: Chained dependencies require extra planning to avoid surprises and mitigate potential risks. Breaking down dependencies and anticipating blockers can help manage complexity.

 

Example: When launching a new product feature, getting approval from multiple departments—such as marketing, legal, and finance—requires extra planning. Each department may have different requirements, such as compliance checks, budget adjustments, or promotional strategies.


Creating a summary that includes review cycles and approval checkpoints helps ensure all departments are on board and aligned, avoiding last-minute delays or conflicts.

 

  • Additional Time and Resources

 

Description: Dealing with chained dependencies typically requires more time and additional resources. This could mean extending timelines or allocating more budget to tackle the issues effectively.

 

Example: A company attempting to compress from two data centers to one may need to allocate extra funding for IT infrastructure changes due to the interconnected nature of these tasks.

 

  • Identifying Layers of the Issue and Having a Plan for Each Layer

 

Description: Chained dependencies often have multiple layers that need to be addressed sequentially or in parallel. Identifying these layers and developing a specific plan for each can help gradually untangle the overall issue.

 

Example: In resolving a data integration issue, you may need to handle database upgrades, system API changes, and user interface adjustments, each requiring careful planning and execution.

 

  • Building Cross-Functional Collaboration

 

Description: Chained dependencies often span across different teams or functions, making it important to foster collaboration across those silos. This ensures each department is aligned and can work together efficiently.

 

Example: To implement a new CRM system, you may need the IT, sales, marketing, and customer service teams to collaborate. Each team has unique requirements, and their involvement is crucial to success.

 

  • Risk Assessment and Contingency Planning

 

Description: Issues with chained dependencies come with heightened uncertainty. Performing a risk assessment and creating contingency plans help address potential failures or roadblocks before they occur.

 

Example: If moving data to a new storage system could potentially impact customer access, creating a contingency plan—such as scheduling the migration during off-peak hours and having a rollback plan—can reduce risk.

 

  • Clear Ownership and Accountability

 

Description: Assigning clear ownership helps ensure someone is accountable for resolving the issue, managing dependencies, and moving things forward. This prevents responsibility from falling through the cracks.

 

Example: Product Owners should know who is accountable for each dependency.

 

By refining the list to add crucial aspects like cross-functional collaboration, risk assessment, and clear ownership, this approach comprehensively addresses the challenges of working through chained dependencies.

 

Approaches


  • Scoping the Issue

 

Determine whether to scope out the entire project or focus only on the work included in the current Sprint. Smaller, iterative scopes may be more manageable, while full scoping helps identify long-term dependencies and risks.

 

  • Consider Starting Fresh

 

Evaluate if it’s more efficient to abandon the current solution and start over. Sometimes, the complexity of chained dependencies makes a fresh approach more cost-effective and practical. Be mindful of starting fresh, though. One downside is that existing systems often have hidden features that aren’t documented or well-understood. This is especially true for systems that have been around for a while.

 

  • Bring in an External Perspective

 

Consider bringing in an external consultant or specialist who isn’t affected by internal politics or existing commitments. This fresh perspective can help cut through biases and entrenched mindsets. Interestingly, consultants also may not have previously conceived notions on why something can’t be done since they haven’t been dealing with the issue for as long as the internal team. This lack of emotional drag can be a big advantage.

 

  • Bottom-Up or Top-Down Approach

 

Decide whether to tackle the innermost dependencies first (bottom-up) or address the higher-level issues first (top-down). Each approach has its advantages depending on the situation—bottom-up can untangle core issues, while top-down can address overarching problems.

 

  • Expanding the Scope for Better ROI

 

Expanding the scope by incorporating related work can sometimes yield a higher return on investment. Tackling multiple interconnected issues at once may create efficiencies and greater value compared to addressing them separately.

 

However, it’s important to avoid making a project overly large and complex, which could lead to failure due to unmanageable scope. A balanced approach often works better financially. For instance, replacing two outdated systems simultaneously with a single, integrated system could be more cost-effective than replacing each system individually, providing long-term savings and improved performance.

 

  • Collaborate with Other Teams

 

Engage other teams within the organization to assist in resolving dependencies. Cross-functional collaboration can provide additional skills and resources. They can also help manage dependencies more efficiently.


Conclusion


Chained dependencies are often the root of persistent issues in both everyday life and the workplace. Their interconnected nature makes them difficult to resolve, leading to stagnation and unrealized potential. However, by understanding the complexity of these dependencies, identifying hidden stakeholders, planning appropriately, and employing effective strategies—such as collaboration, clear ownership, and expanded scoping—we can begin to untangle even the most intricate challenges.


The above approaches can help your organization move from being “stuck” to slowly but steadily improving and even achieving breakthroughs. Whether it means taking a fresh start, collaborating cross-functionally, or involving new perspectives, tackling chained dependencies is key to creating lasting positive change. By strategically working through these challenges, your team can improve processes, enhance efficiency, and ultimately deliver better outcomes with a higher return on investment.


Don’t let chained dependencies remain roadblocks. Instead, use these strategies to turn them into opportunities for growth and improvement.

 

 

0 views0 comments

Recent Posts

See All

Comments


bottom of page