Problems and use cases that epics and roadmaps solve
Work breakdown structure
- Issues are useful for scoping and tracking work that can and should be done with one merge request. I want to capture work that spans multiple issues and merge requests. I can link issues together. But I want a native experience for the integration benefits mentioned later. Epics helps solve this.
- I want to track a unit of work that should be separated into multiple issues. Furthermore, the work would likely not be released all at once, since I release often. So even if my entire unit work (an epic) is not completed at once, I want to still group those issues together in an epic.
- I am able to release multiple parts of that epic iteratively, since issues can have their own milestones and associated merge requests.
- Issues: ~"portfolio management" in 10.2, 10.3, 10.4, 10.5
Planning and tracking work over time
- I need a way to plan and track work across time.
- I need a way to estimate and document when that work is scheduled to begin, and when it anticipated to be completed.
- When that work has not started yet, I want to see how delayed it is.
- When that work has already started, I want to see if it is on schedule, if it will be ahead or delayed.
- Issues: #3559 (closed), #3729 (closed), #3638, #3675 (closed), #3678 (closed)
Release planning and tracking
- For a given release, I want to know what I plan to ship to my customers.
- For a given release, I want to know how the features are related to each other.
- For a given release, I want to know if I am making significant progress toward a particular epic.
- For a given release, I want to know if the newly released capabilities paints a coherent picture and is a strong offering for my customers.
- Issues: #3675 (closed), #3848 (closed),
Coordinate with other software teams
- I need to see other ongoing activities, plan for them, and track them as my own work is progressing. Those other activities may be strongly interdependent on my own work. If that is the case, I need to coordinate with other teams or individuals to ensure we are not blocking each other, and that we are not waiting for each other.
Coordinating with other non-software teams
- I don't want to block another team. But at the same time, I don't want to finish too early, because stale work that is not released is a bad practice with many negatives.
- I need to coordinate with other teams that are not creating software. I need to coordinate with the marketing team to align timelines for their campaigns. If the marketing team has a planned campaign that depends on my shipping a feature, but the feature is delayed, I need to see that timeline immediately and react to that situation.
- I need to coordinate with the operations and support team. The support team needs to be trained on new features and new processes introduced by new features my team creates. Timelines need to be coordinated.
Organizational goals
- I want to see if my roadmap of features reflect the goals and priorities of the greater organization.
- I want to the know if the planned timelines in my roadmap reflect the business priorities and timelines of the greater organization, especially to remain competitive in the marketplace and adhere to long term company goals.
- I want to see the tradeoffs I am making as an organization. By expanding into one new area of business, what am I giving up in different parts? Where am I making my investments?
Drilling down and bubbling up
- Suppose I am looking at a broad company strategy, and I've decided to potentially deprioritize a large feature/feature set (probably an epic). I want to quickly dive into the epic to see the what are potential impacts. Is there any crucial planned functionality that I should take out of that epic and move elsewhere? Is there any planned functionality that I promised to a customer that I have to deliver on?
- Suppose I am looking at a broad roadmap, and I see that an epic is at risk of not being completed on time. I want to quickly drill down and see any risks to mitigate. Are there any partners or vendors to contact based on a particular issue? Is there any functionality or dependency that I have to account for?
- Suppose I am looking at a particular planned issue, and I've discovered that there is a huge technical blocker that cannot be resolved immediately. I want to see the broader impact right away to the epic and other epics and the business as a whole. I need to quickly bubble up and see the broader context. Is there any other feature that can serve as a workaround? Do I need to re-arrange issues from other epics to accommodate?
Edited by Victor Wu