There are no formal dependencies in agile software development. However, in practice pieces of work are often tied to one another. For example, if the core team is building an API, some or all of the other teams' work may be dependent on the core team's progress. Or, if the infrastructure team is doing technical maintenance, the production team's work is on hold until the maintenance is done. Keeping track of these informal dependencies in your head can be tiresome.
In Targetprocess you can track such dependencies via Relations.
How to add a Relation
You can create a relation for any entity (user story, bug, feature, task, etc.) via the Relations tab in views:
To create a Relation with an existing entity or multiple entities please click on the ‘magnifying glass’(search) button.
To add a new entity and create a relation with it in one step, you can use ‘quick add’ button.
Types of Relations
The relations can be identified as Dependency, Relation, Link, Duplicate or Blocker at your discretion.
- Blocker does not literally block the flow of entities in a project. That is, you can still change states for an entity with a Blocker. A Blocker could be an issue that has to be resolved before the entity for which you are adding the Blocker relation can be completed. Find more about Blockers and Impediments.
- Dependency means that a user story/task etc. depends on another user story or task, or any other entity. For example, the core team is working on an API, and the other teams are dependent on the core team's progress.
- Duplicate relations are especially useful when you work with bugs and requests. There is special Duplicates box in the right panel of the detailed view for every bug and request. It allows you to mark a bug or a request as a duplicate of another one. Once you mark an entity as a duplicate, a relation of the Duplicate type appears, connecting the two entities.
- Relation and Link are any other ad hoc relations. For example, you’ve created a User Story and a Bug from an incoming Request. All these entities are related to each other, and you can add them as Relations. In basic setups Relation and Link behave the same way. They are aliases and the only difference between them is the icon and label. Which you choose to use for your particular use case is based on your personal preference.
In Advanced setups relations of types Relation and Link may work differently when the Portfolio Management features are activated. These features are now not available for production usage. They are in early preview (alpha) state.
You can set a relation between any entities in Targetprocess, no matter which Project or Team they are assigned to.
Directions of Relations
Relations can be Inbound or Outbound.
- The Inbound entities should be completed before the current entity is started.
- The Outbound entities should be started after the current entity is completed.
Sometimes Relations do not have an obvious inbound/outbound direction, which you choose many cases is a matter of personal preference.
Relations always appear in the Relations tab for both of the related entities, either as “inbound” or “outbound”. If User Story1 depends on Bug1, and Bug1 is shown as an inbound relation for User Story1, then you will see the same relation in the Bug view as outbound.
You can easily remove a relation, if created by mistake. A click on the Unlink button breaks any relation between entities.
Also, the type of a relation can be easily changed.
To add a new relation or change/remove one, a user must be able to modify both related entities.
If you do not want to include someone to all projects to make relations, you can consider Contributor access that allows setting relations easily.