Nathan Swain

Working with Iterations in Tracker

Productivity

If you’re new to Tracker (or Agile in general), our methodology might seem a bit strange at first, especially when it comes to the behavior of Tracker’s iterations (i.e., sprints) and how your stories move through them. Hopefully this will serve to answer any questions related to this and get you on a path to tracking with confidence.

Tracker was designed to automatically plan your iterations for you based on the average amount of story points you complete over a predetermined number of iterations. We call this average velocity, and in Tracker, velocity is the governing force behind every project. It determines what will be planned for future iterations and is constantly changing based on your actual rate of completion.

A Pivotal Tracker screenshot highlighting velocity

Calculating velocity

Let’s touch more on how velocity is calculated. In every iteration (or at least, most), you will mark stories as completed (accepted) that you previously estimated using a predetermined point scale. After the current iteration ends, any stories that were accepted in it will move from the Current panel and into the Done panel automatically. The sum of all the points completed in that iteration will then be used to calculate your velocity. By default, Tracker will calculate your velocity based on the number of story points that were accepted over the last 3 completed iterations (also know as your Velocity Strategy, which you can set in your Project Settings to be anywhere from 1–4 iterations). Completed iterations will be located in your Done panel. Every time an iteration’s worth of stories moves to the Done panel, Tracker recalculates your velocity. In this way, you are always operating off the most up-to-date information based on your most recent production rates, and in turn, can expect the most accurate planning predictions for the future.

So, let’s say you completed 10 points in Iteration #1, 5 points in Iteration #2, and 15 points in Iteration #3. Tracker will take the sum of those points (30) and divide it by your Velocity Strategy (3 for this example) to get to a velocity of 10—fairly simple. Then every time a new iteration completes and moves to the Done panel, the figure recalculates. So, let’s say that 5 points were completed in Iteration #4; we take the sum of all the points completed over the last 3 iterations (i.e., iterations 2, 3, and 4, which comes to 25) and divide it by the Velocity Strategy (3) to get to a new velocity of 8 (technically 8.33 but we always drop the decimal; see table below).

Iteration Completed points Calculation Calculated velocity
1 10 10 10
2 5 (10 + 5) / 2 7
3 15 (10 + 5  + 15) / 3 10
4 5 (5 + 15 + 5) / 3 8
 

Velocity and planning

Now that we know how velocity works, let’s dive a little deeper into how that affects how your iterations are planned. After an iteration completes and velocity is recalculated, the first thing Tracker does is look to fill your current iteration with as many story points as your current velocity value. You might ask, “Where is Tracker going to get these stories?” The answer is your Backlog. The Backlog contains all of your “Scheduled” stories, or stories that you’ve manually placed there to be completed at some point in the future. Stories at the top of your Backlog are the highest priority and should be completed first, while stories at the bottom are lower priority, to be completed last. When Tracker is looking to fill up the Current iteration with new stories, it’s going to pull in the highest priority stories from the top of the Backlog. In the scenario above, we ended iteration #4 with a new velocity of 8, so for this example, let’s say Tracker pulled in four stories from the top of the Backlog that were worth 2 points each, for a total of 8 points.

Screenshot showing velocity in a Pivotal Tracker project

Now that the Current iteration has been replenished with new stories to complete, your Backlog will shift up as well. Now let’s say you’ve completed all 8 points worth of stories in the Current iteration and you have plenty of time left before the iteration ends. Although you won’t be able to drag and drop more stories into Current (you cannot drag more story points into Current that your velocity is currently worth), you can click Start on any story in the Backlog and it will automatically move to Current by default. You’re never limited to only completing the stories that Tracker pulled into Current for you.

Visibility into future iterations

As your iterations progress and your stories move from the Backlog to Current, you will see the planned iterations in your Backlog respond accordingly based on the total points planned compared to your current velocity.

For example, let’s say you have 40 points worth of stories planned in your Backlog. Because your velocity is currently 8, Tracker will plan these out over five iterations of 8 points each (assuming all stories are evenly estimated). After the current iteration has ended, all the stories from the upcoming planned iteration in the Backlog will shift over to the Current panel. As a result, the Backlog will now only contain four planned iterations versus the previous five. If you then start adding more (estimated) stories to the Backlog, you’ll see it react accordingly, and new iterations will be created to accommodate the newly planned stories, based on your current velocity.

As you plan your Backlog and add to it, you may notice stories move out of one iteration and into another when a new story is pulled into it—this is Tracker readjusting what can be completed in that planned iteration based on the number of story points that were just dragged in. For instance, in the above scenario we were left with four iterations that contained 8 points each. Now, let’s say you want to pull in a new 3-point story from the Icebox to the top of the Backlog. Upon doing so, all the stories below it will have to shift downward out in the future by however many additional iterations it will take to accommodate what was just added; for this scenario, more than likely the Backlog will now contain one more iteration for a total of five planned iterations versus the previous four.

So again, Tracker will only allow you to plan as many stories in a single future iteration as your velocity is currently worth. That said, as stories flow in and out of the Backlog and your velocity changes, the number of planned iterations in your Backlog will fluctuate as a result.

For more on velocity, please see this and this.

Reflecting reality

When you need to reflect variations in your team from iteration to iteration, due to unforeseen illness, vacation, or other temporary team fluctuations, you can do so by adjusting your Iteration Team Strength. For example, if half of your team leaves for a conference one iteration, you might set your the team strength for that iteration to 50%. Likewise, if your team works all weekend to prepare for launching your product, you would set the team strength to 140% (since they worked seven days instead of a normal five-day work week).

Setting Team Strength in Pivotal Tracker

Go here for more on Team Strength.

Changing iteration start dates

In Tracker, each iteration has a start date so that you can get an idea when a given story might be worked on. That said, depending on the date your first completed story was accepted, you may have ended up with iteration start dates that are out of sync with your iteration date range in real life. In this case, editing your Project Start Date (from Settings) won’t always help to correct this because if you have a story that was accepted prior to the start date you indicated in Settings, Tracker will have to use that stories accepted date instead.

The most effective way to change an iteration start date is to manually edit the length of one previously completed iteration (in weeks) to effectively cause all future iterations to shift up or down as a result.

So if your iteration lengths are one week and you want your current iteration to shift up by a week, simply edit one previously completed iteration to be two weeks, which in turn will cause your current and subsequent iterations to move up by one week. Alternatively, if your iteration lengths are two weeks and you want your current iteration to move back a week, you would edit one previously completed iteration to be one week, which will cause the current and subsequent iterations to move back one week.

To override the length of a completed iteration, first choose an iteration to edit in your Done panel (the most recently completed iteration is probably best) and click on the date link on the iteration header itself. You will then see a box that will allow you to override the iteration length in weeks.

Changing iteration length in Pivotal Tracker

I hope this helps to bring transparency to how your iterations function within Tracker. However, if you have any questions or need further clarification, we’re happy to help—just email our Support.

Happy Tracking!

Category:

Tags: