Once the Scrum Team has selected User Stories for a given Sprint, they should then consider any dependencies, including those related to the availability of people as well as any technical dependencies. Properly documenting dependencies helps the Scrum Teams determine the relative order in which Tasks should be executed to create the Sprint Deliverables. Dependencies also highlight the relationship and interaction between Tasks both within the Scrum Team working on a given Sprint and with other Scrum Teams in the project.
- Mandatory dependencies—Dependencies that are either inherent in the nature of the work, like a physical limitation, or that may be due to contractual obligations or legal requirements. For example, work on the first floor cannot begin until the foundation of the building is complete. Mandatory dependencies are also commonly described as hard logic.
- Discretionary dependencies—Dependencies that are placed into the workflow by choice. Typically, discretionary dependencies are determined by the Scrum Team based on past experiences or best practices in a particular field or domain. For example, the team can decide to complete one task before working on another because it is a best practice, but not required. For example, the team may choose to build the door and window frames before the full structure of the wall is in place.
- External dependencies—External dependencies are those related to tasks, activities, or products that are outside the scope of the work to be executed by the Scrum Team, but are needed to complete a project task or create a project deliverable. External dependencies are usually outside the Scrum Team’s control. For example, if the Scrum Team is not responsible for procuring the materials required for building the walls, then those materials and tasks related to their procurement are considered external dependencies.
- Internal dependencies—Internal dependencies are those dependencies between tasks, products, or activities that are under the control of the Scrum Team. For example, installing drywall must be completed before painting the wall can begin. This is an example of an internal dependency because both tasks are part of the project. In this case, it is also mandatory because it is based on a physical limitation. It is not possible to paint the wall before it is dry-walled.
In Large Projects, properly identifying dependencies helps the Scrum Teams determine which of their decisions may impact other teams. It may also influence the relative order in which a single Scrum Team executes its respective tasks to create the Sprint Deliverables.