ADO Area Paths vs. Iteration Paths
We have a multitude of teams that work on the same product, for the same release, but on different projects/features. Sometimes a team will be working on multiple releases (that are at different stages in their life cycle), or a project (if it’s big enough) may involve multiple (Scrum) teams.
The shift that we’re making is to adjust the Iteration Paths to be less about the project, and more about the (Scrum) team(s).
Iteration Paths are meant purely for planning (it answers: when, i.e. time).
What work did we do in the past.
What work are we doing now.
What work are we planning to do next.
For an Agile team, it’s just a list of Sprints.
A team could be working on a multitude of products and features on any given Sprint.
To add to that, there are multiple active releases in various different stages of their life cycle.
Additionally
It’s hugely valuable for all teams to adopt a standard convention for team centric iteration pathing so that we can automate the calculation & visualization of KPIs.
Likewise, we want to continue to build the culture around long-lasting-persistent-teams (vs. transient project centric teams).
A key clarification is that the team isn’t name after the project, that would make it transient. The team names last in perpetuity (I’ll admit that word has stuck with me from Kevin O’Leary using it so often on Shark Tank), giving them a sense of identity and unity.
Thus, the following iteration path model is what we’ve gravitated towards:
Team A\
Sprint 1
Sprint 2
Sprint 3
Team B\
Sprint 1
Sprint 2
Sprint 3
Etc…
Areas Paths (it answers what)
What product.
What feature.
What component.
What project.
Etc…
Target Version (a custom field)
Because of point 1.5 above, we can differentiate the total scope of the project vs. the way a release is measured via the Target Version.
It’s the simplest way to derive what are all the things that add up to the Release, allowing us to burn down all the scope that makes up a Release, and forecast its completion.
Noting that a project may be released across multiple Releases (that would be ideal actually – that way you can start getting some early feedback). So although you may have an Area Path for the product/project/feature, the Target Version makes it easy to discern what’s targeted for which Release.
Other teams might approach this via Release X\Sprint Y iteration path conventions, which we’ve tried, but doesn’t work because of point 1.5 above.