Definition of a dependency
A dependency describes the relationship among activities and specifies the particular order in which they need to be performed. Dependencies arise in every decision making, planning and developing process and are ideally predetermined. Tasks can be successors and predecessors to other tasks whereby the instant of each execution may be aligned accordingly.
Examples of dependencies
There are four standard types of dependencies in product management. We classify them based on the relationship between the start and finish conditions of the two elements being compared.
For this type of dependency, one element requires the completion of another before you can begin it. This is common in iterative frameworks like DevOps, where the previous iteration needs to be completed before building the next.
Say you’re building a portfolio application. You’ll need to create some way of displaying photographs, but first, you need to make a process that allows the users to upload the pictures. You need to finish the upload function before you can start building the display.
A finish-to-finish dependency requires both elements to be complete. The second element does not rely on completing the first, so you can work on both simultaneously. This dependency arises when the second element requires the first later in development.
You’ll often find this dependency in physical products. For example, a computer will require memory chips and motherboards to be created. However, you can build each element without needing the other to be completed first.
With start-to-start dependencies, you can build two elements concurrently, but you need to start one of those elements first. This happens when both elements require substantial work, but the second element requires parts of the first.
For application development, this could include basic functionality and UI. The UI team can get started without waiting for the basic functionality to be completed, but they need at least one completed page to get started.
Start-to-finish dependencies are similar to finish-to-start in that one element must be completed before the other can be finished. This can be two concurrently running processes, but it requires the first element to be finished before the second can finish.
For example, if you’re building user profiles and log-in functions, you’ll need to complete the log-in functions before linking user profiles to the correct account.
Common challenges appear when dependencies are connected to external contributors. These so-called risky dependencies may occur e.g. when software from a third party represents a key component to your product or a task dependency has a constraint and its completion process cannot be forecasted. Another difficulty may be identifying dependencies in the first place. It is important to stay on top of them when a project gains traction and becomes more complex.
Advantages of mapping dependencies
Visualizing dependencies asserts the task management and timeline of any project schedule. Especially when managing a cross-functional team it is crucial to substantiate the level of awareness by including dependencies and status reports into e.g. the product’s roadmap. However, there are multiple approaches to doing so. Whether depicting dependencies in a Gantt Chart, diagram, table, or with other means, it will enable the team to reevaluate commitment and object to impractical measures if necessary.
How to define a dependency in product management: a step-by-step guide
Defining dependencies is crucial to ensure your product development cycle runs smoothly. Follow these simple steps to ensure you manage your dependencies correctly.
Standardize the procedure
Dependencies can span different projects, so you need a standardized definition process to ensure clarity throughout development.
Define a plan and scope
Before we can look at dependencies, we need to ensure a clear, agreed definition of a dependency. Once everyone is on the same page, we can create a plan with clearly defined milestones linked to dependencies.
The project manager now needs to identify the project’s dependencies based on the defined process. Dependencies should be captured for future reference and need to include who is responsible for delivery.
Once dependencies are identified, they need to be validated. You can do this by collecting data from conversations with relevant parties.
Track and report the dependency
Continuous management is essential to ensure dependencies are delivered upon. Identification and validation should occur regularly to ensure they are still relevant.
How to manage a dependency
Dependencies aren’t inherently problematic, but they do require a focused approach to product planning to reduce the risk of any issues.
As products grow in features and functions, they naturally grow in complexity. This increased complexity means that knowing where dependencies exist well ahead of timeis critical to successful product development — regardless of whether a development team works in a startup environment or inside an established organization.
Effective roadmapping is one of the most effective ways to reduce any potential risks of dependencies.
For example: say your design team has an unexpected delay and they need a few more days to complete some mockups. Development, QA, marketing, and sales will need to know about it well ahead of time to minimize disruption. This can be effectively handled with a dedicated product management tool — this will enable you to communicate the progress of all dependencies across key stakeholders, in real-time.