Thursday, April 13, 2023

Calculating Velocity with User Stories in MS Project Agile (Scrum)


Velocity is a widely used metrics by Scrum practitioners, though velocity is not specifically mentioned in the Scrum Guide, 2020. With MS Project Agile software you can have this metric quite quickly, if you are working with user stories and story points. 

This came as a question in one of the recent international webinars, where participants wanted to know on the applicability of velocity. As per the question, the development is happening with work items estimated in stories, and they are not breaking them down into individual tasks. Can velocity be calculated in such a scenario?

You can watch the webinar and related questions here:

Practical Scrum using MS Project Agile (3 of 3) by MPUG

To answer the question on velocity: yes, absolutely you can have velocity metrics in MS Project Agile! In this article, we learn about this capability. To download and use the MS Project Agile, you can use the following step-by-step installation guide.

Step-by-Step Guide: Install, Set-up and Run MS Project Agile 

In-depth explanation with Velocity, User Stories, Velocity Histogram, Release Histogram etc. are explained in the following course:

Mastering MS Project Agile – Scrum, Kanban and ScrumBan

Important Note: Before proceeding further with this article, I’d strongly recommend that you understand the basics of User Stories and Story Points and how they are used with MS Project Agile (Scrum). The link is below:

Working with User Stories and Story Points in MS Project Agile (Scrum)

Velocity Basics

Velocity is simply the sum of stories delivered at the end of the Sprint, considering you are using the Scrum framework. There are no complicated formulas to calculate. Simply add the number of story points! 

Let’s take an example to understand.

You have three work items planned for the upcoming Sprint 1, estimated with following story points:

  • Work item 1:  5 story points
  • Work item 5: 8 story points
  • Work item 9: 5 story points

Why not work item 1, followed by work item 2 and work item 3? This is because of prioritization of bcklog work items, which you can also do with MS Project Agile.  

In the previous linked article with respect to working with User Stories, we have already created the Story Points custom field. We will build-upon that custom field. 

“Planned Velocity” Custom Field

The “Planned Velocity” custom field is not available by default in MS Project Agile. To have this custom field:

Go to the Task Sheet Tools > Format tab > Columns > Custom Fields command.  

The created custom field for Planned Velocity is shown below. As you can see, it’s just below the Story Points custom field that we have created earlier.  

As you create this custom field, do note the following:

  • It’s a number custom field, specially I’ve used Number 3.
  • The formula applied is simple. It directly equals “Story Points” custom field earlier or specifically Number 2.
  • Do note that roll-up has been applied for the calculation of summary tasks. And, when you use the roll-up, have the Sum function

“Actual Velocity” Custom Field

The “Actual Velocity” custom field is also not available by default in MS Project Agile. To have this custom field, again:

Go to the Task Sheet Tools > Format tab > Columns > Custom Fields command. 

Again, with the custom field command we will create this new “Actual Velocity” custom field. It’s quite simple and straightforward. This is shown below. 

As you create this custom field, do note the following:

  • It’s a number custom field, specially I’ve used Number 4.
  • The formula applied is simple. If the percent of complete (% Complete field) is 100%, then Actual Velocity will equal Planned Velocity, otherwise it won’t.
  • Again, do note that roll-up has been applied for the calculation of summary tasks. And, when you use the roll-up, have the Sum function

Backlog with User Stories, Planned Velocity and Actual Velocity

As we have added these custom fields, we can now visualize them in the Task Board Sheet view, Sprint Planning Sheet view or even the Gantt Chart view. You can choose any view you want. 

Considering the Sprint Planning Sheet view, which has information for all the Sprints, we will get the following view. While going for the view, I’ve applied the built-in Sprint grouping. Re-read the last line. It’s important! 


Obviously, as we have not tracked any item, the “Actual Velocity” for Sprint 1 is informed to be zero, whereas the Planned Velocity is 16.

Switching to the Gantt Chart and applying the Sprint group again, we have the following view. Do note that I’ve added a new column of % Complete. 


Interpreting the above figure, we can say:

  • Sprint 1 has three items estimated at 5, 8 and 3 story points, respectively.
  • When rolled-up the Planned Velocity is 16, which is basically the summation of all stories, i.e., 16 story points = 5 story points + 8 story points + 3 story points.
  • The Actual Velocity is 0, because we have not tracked any work items. In other words, the team has not started working on the items.

Track the Work Items – Current Sprint 

After you have planned for the current Sprint (Sprint 1 in our case), you can track the items in the Current Sprint Board view. For tracking, you have to just drag and drop the work items across the workflow states. 

Consider that we are on the final day of the current Sprint (Sprint 1) and we have made progress on a number of story items. This is shown below. 


Interpreting the above figure, we can say:

  • The work item of “As a user, I can log into the online systems…” has been completed, so also the work item of ‘As a user, I can buy a stock…”. These are 100% complete.
  • The work item of “As a user, I can create a new user…” is still under progress and it’s 50% complete. 

Visualize Actual Velocity – Current Sprint 

Now, you can switch back to the Gantt Chart view to see the Actual Velocity value being populated based on % Complete. This is shown in the below figure. 

Interpreting the above figure, we can say:

  • Sprint 1 has three items estimated at 5, 8 and 3 story points, respectively. Hence, the Planned Velocity is 16. We have seen this earlier. 
  • The Actual Velocity is 8, because we two work items estimated at 5 and 3 story points, respectively are now complete. Hence, the rolled-up value is 8.
  • One work item is 50% complete and it doesn’t count towards velocity, i.e., the work item of “As a user, I can create a new user…”. 

Conclusion

Is it really that simple to calculate velocity with MS Project Agile? Yes, it is!

As we saw in this article, with a minimal set of steps, you can calculate the velocity for any Sprint in a Scrum project. All you have to do is to have a couple of custom fields and use the available views and group to calculate the velocity for you.

If you want to see use the Current Sprint Sheet view, there too you can visualize the Planned Velocity and Actual Velocity.  


Another question that comes up: 

Can one plot a Velocity Histogram with these values? 

Yes, absolutely you can. As the fields are properly populated, you can quickly create a histogram with Report functionality of MS Project Agile. 


I hope this article helps you in planning your Sprint or Backlog plan with velocity and it helps in your work. If you have any comments or inputs, do put them below in the comment section.

References:

[1] Book: I Want To Be A PMI-ACP: The Plain and Simple Way, by Satya Narayan Dash

[2] Master Course: Mastering MS Project Agile, by Satya Narayan Dash

[3] Video Course: Microsoft Project Live Lessons, by Satya Narayan Dash.

No comments:

Post a Comment

Sign- or Log-in and put your name while asking queries in comments. Any comment is welcome - comments, review or criticism. But off-topic, abusive, defamatory comments will be moderated or may be removed.