A dependency is a relationship between two elements which reflects a logical, constraint-based or a temporary relationship. These tasks rely on each other in a way that one has to be finished in order to proceed.
Dependencies can exist because of a variety of reasons. In this article, we will explore why dependencies exist, how they should be handled and examples of popular scaling frameworks that implement a method to reduce these dependencies.
Cause of Dependencies
Imperfect or complicated organization structures coupled with a lack of cross functionality results in harboring dependencies. Multiple teams that fail to coordinate with each other also fuels the issue as there isn’t any open communication on what needs to be done. The presence of fewer roles, with a very rigid organizational structure, that does not allow freedom to adapt, all lead towards creating dependencies. The larger the number of dependencies, the larger the chances that the feature will not be completed on time that will affect the cycle time and quality of the product.
How to Solve Dependencies
Agile expert Mike Cottmeyer suggests three ways to reduce dependencies:
- Never commit to a feature that depends on a component capability that does not exist yet
- Sometimes commit to a component capability on the near term roadmap.
- Rarely commit to a component capability with a hard, date-driven dependency.
Mapping your dependencies in a way that they are visible to everyone is a good technique. These dependencies can be mapped out physically or with the help of software. Create cross functional teams that are skilled in more than one domain to filter out any problems that may rise. You need to have an architecture that is simple, which promotes coordination and has more roles such as Product manager, integration or system teams or architecture owner.
Managing Dependencies in Scaled Agile Framework (SAFe)
SAFe scales agile on to hundreds or even thousands of practitioners. It is suitable for creating large scale products. In SAFe, you have to look at the bigger picture. A long term vision has to be set. Thus it is critical to ensure that dependencies have to be reduced to an absolute minimum. The first step taken to do so is done in the Program Increment (PI) Planning session.
During this ceremony, there is a massive audience that consists of all the team members of the Agile Release Train, stakeholders and business owners. All of them band together to map out all the inter team dependencies. This is done on a PI Roadmap that acts as a guide which helps identify and breakdown the dependencies.
Furthermore, requirements are refined, prioritized and reallocated to the teams. These modes of actions ensure if the dependency can be delayed, can it be resolved in the PI or is the team really responsible for the task or should it be someone else? Teams have their regular scrum of scrums in which they discuss and address any dependency that may have been overlooked.
Managing Dependencies in Large Scale Scrum (LESS)
Similar to the PI Planning in SAFe, there are few ceremonies that ensure this coordination.
- The scrum masters of the teams meet with the Product Owner
- The teams meet and discuss related features.
- Scrum masters of each team meet with the Product owner to refine and prioritize the Product Backlog.
- Teams or their representatives meet each other to further refine the Product Backlog.
- One Sprint Review for all teams
- Final Retrospective
LeSS focuses on direct cross-team collaboration to create an integrated product. There has to be a solid vision for achieving the goal that motivates the team to be geared towards creating a cohesive product. Teams are open to learning from each other that share their work with each other and are always finding ways to relentlessly improve.
It is rather naïve to think that dependencies can never exist. They do. They have to be addressed transparently and clearly. They should be identified first. Recognizing them before makes other sectors of the company like marketing, estimating release dates and financing to consider budget and funding before time.
Dependencies are important as it gives a sense of accountability for why a task is not being completed. It also gives a trace to exactly what is wrong. Thereby, enhances transparency into what is being done. It gives control of how things need to be done.
Digital boards to manage dependencies, multiple teams and program increments for scaling agile initiatives. Kendis works on top of JIRA and other agile tools, your teams can keep on working with their existing JIRA boards and program level and above is planned and managed at Kendis.
Try out 30 days free trial or book a demo with our product expert.