Transitioning between Sprints/Iterations with TFS


February 6, 2012 / 8 Comments

When transitioning from one Sprint (or iteration) to another it is necessary to modify all “current sprint” queries and any additional custom queries that are sprint/iteration specific. This is not a one time activity per team project but rather something you have to do after every sprint.

One way to eliminate this step is by creating a “release” called “Current” and moving the specific current sprint (Sprint 1, Sprint 2, or 2012-02-06 for example) under this release. The current sprint is simply moved from its defined release into the Current release when the sprint starts. When the sprint ends, the sprint is moved back to its original release and a different sprint moved under the Current release. Then, by changing all the sprint specific queries to select item under Current release, it is no longer necessary to change the queries every release – they just work.

Here are the steps in more detail:

  1. To create a new release for Current, use the Areas and Iterations dialog and add a new Child Node.
    Open Areas and Iterations Dialog 

    Once created, we position Current as first in the list. The dialog below shows Current and Sprint 1 as a member, indicating that Sprint 1 is the current sprint.
    Insert Current release node into Areas and Iterations dialog

  2. Next, all the queries defined under Current Sprint are modified to use the “under Current” clause. This modification only needs to be made one time when the project template is being configured. Below is a screen shot after modifying the Sprint Backlog query.
    Update TFS work item query to use Current release node.
  3. When moving from one sprint to the next, simply change the sprint hierarchy so that the new sprint (Sprint 2 for example) appears below the “Current” release and the previous sprint (Sprint 1) is returned to the correct release structure.

With these changes in place, the queries will just work as is when you transition from one sprint to the next.  Furthermore, this technique is valid and expected to work for TFS Preview, TFS11, Microsoft Visual Studio Scrum 1.0, and MSF for Agile.

(Note: Releases are not required, you can just have a parent node (Current) that appears anywhere in the hierarchy and move the Current Sprint below that – with corresponding queries to match.)


8 Responses to “Transitioning between Sprints/Iterations with TFS”

  1. SadasK says:

    A very efficient way to get the information we need, while TFS team implements some kind of dynamic filter. I like it because if you have many queries there’s no need to ever change them. We have created three iterations of 1st level: “Done”, “Current” and “Planned”, and then move each sprint throughout these iterations. Very good job! Thank you! ;)

  2. Puneet Bhagat says:

    Excellent workaround. This is so much better than updating queries every new iteration. Thank you!

  3. Kimberly Young says:

    How do you recommend populating the Iteration Path in the work item. Do you update it to “IntelliTrec.ARCGIS\Current” for when it is the current sprint, then change it back to the actual Release/Sprint after the Current Sprint is over.

    • Mark Mark says:

      Hi Kimberly,
      I assign the work item iteration path to the specific sprint (not just to ..\Current). That way, I don’t need to change every work item. I just move the sprint from under ..\Release to ..\Current. At the end of the sprint I move it back to ..\Release and move the next sprint under current.

  4. Jim says:

    Great post Mark. We’ve implemented it and the the Excel workbooks work well with the approach. We take the same approach with a future iteration and we move seemlessly between sprints.



  5. John Hughes says:

    It doesn’t look like TFS 2013 has a built in solution, does it?

  6. James says:

    How do you account for branches? Since we use a check-in policy to ensure that check-ins occur on the proper branch, and there is a correlation between branch and iteration path, I’m curious if you’ve seen or done something similar.

Leave a Reply

Contact Us
Phone: (509) 315-3400


Mark and his IntelliTect team performed a number of tasks for Brahma including an architectural review of our solution, setting up and configuring Team Foundation Server including continuous integration builds and providing guidance and training on development processes and unit testing.
- Brahma Holding, La Jolla, CA
CONTACT US: (509) 315-3400 | | Jobs | Site Map