Loading...
Quick Links

Creating an Agile Schedule with MS Project

Use Fields and Groups to Create an Agile Schedule with MS Project

Creating an Agile Schedule with MS ProjectI have read many comments that MS Project cannot be used for Agile projects. While I agree that Project is not the best tool for Agile, I disagree with those who say that it cannot be used at all. Customizable fields and groups are a powerful feature of Project that allow it to be used effectively for a wide range of projects. Here we will show how to use some of those features to create a schedule for tracking Agile projects. An organization with a broad range of projects that needs MS Project for the large complex projects can also use it for those projects that might be more effectively developed with an Agile or a hybrid strategy.

Custom fields allow you to add project-specific information. This information can be used to filter or group tasks to focus in on specific data or just to provide different perspectives on the vast amount of data that Project maintains. I use text fields most often and use the lookup-table feature to assure uniformity.

What Goes Into an Agile Schedule?

So what project-specific data must be added to create an Agile schedule? An Agile project starts with a backlog, which is a list of features to be implemented, and a number of iterations, or sprints, to implement those features. These are the tasks in the schedule. In addition, each feature will have a priority and a size estimate in story points and will be mapped to an iteration, or sprint. Each feature and sprint will also require a status-e.g., not started, in progress, or done.

This Agile-specific information is maintained in custom fields. Unfortunately, Priority is already a field in Project, so we will have to choose another name, and User Need is a good descriptive alternative. Similarly, Status is a field in Project, so this will be changed to State. Thus we have four custom fields to implement:

User Need                   Text Field

Lookup Table: Low, Medium, or High

Story Points               Number Field (Estimate of Story Points)

Set Calculation for task and group summary rows to Rollup: Sum

Sprint                            Text Field:

Lookup Table: Backlog and Sprint 1 through Sprint n

State                             Text Field:

Lookup Table: Not Started, In Progress, or Done

User Need, Sprint, and State use lookup tables. In addition, since features start out in the backlog before they are mapped to a sprint, the lookup table for Sprint will set Backlog as the default. Story Points is a numerical field. Since it is important to track totals, the summary task for this field will be set to Rollup: Sum.


To learn more about creating agile schedules in more recent versions of Microsoft Project, read this article by Tim Runcie.


Setting up the Custom Fields . . .

Below are some screen shots for setting up these custom fields. The custom fields dialog shows the three text fields. Sprint (Text3) is highlighted and you can see under Custom attributes that Lookup. . . is selected. Also note that below Custom attributes is Calculation for task and group summary rows. While the Text fields allow only None, the Number fields allow a Rollup, and in that dropdown menu there are many choices such as Sum, Max, Min, Average, etc. In the number field for Story Points, I chose Sum, and we will see how this is useful when we set up groups.

Creating an Agile Schedule with MS Project

Below is the lookup table for Sprint, and you can see that Backlog is highlighted and there is a check in the box to Use a value from the table as the default entry for the field. Whenever a new feature or sprint is added to the schedule, it will be in Backlog. The sprint task should be changed right away to the appropriate number and a feature should be changed from Backlog to the appropriate sprint number when it is mapped to a sprint.

Creating an Agile Schedule with MS Project

. . . and the Groups

With the fields defined, two Groups are needed to give the required displays:

Sprint                  Group by Sprint.

Lists all features in each Sprint; story point totals roll up for each sprint.
Features not assigned to a sprint will be grouped under Backlog.
This grouping can be used along with auto-filtering to select the highest need first.

Burndown         Group by State, then by Sprint.

Provides story point summary by categories Done, In Progress, and Not Started.
Story point totals roll up.

Below is the Group Definition dialog for Burndown. You can see that it is grouped first by State and then by Sprint, two of the custom fields. Also note that the name is preceded by an underscore and that Show in menu is checked. I do this for my custom groups because the underscore puts them at the top of the list and they will all be together at the top of the Group dropdown menu.

Creating an Agile Schedule with MS Project

Add the Specific Sprints and Features

The Agile schedule requires two summary tasks: Sprints and Features. Under Sprints enter the expected number of sprints, including the name and duration of the sprint, and link them in order so that when one is done the next begins. Then list the features under Features. Make each of these a milestone. The features will all be in Backlog. To assign a feature to a specific sprint, select the sprint number in the Sprint dropdown. Also, when you assign a feature to a sprint, set a finish-to-finish predecessor to that sprint so the expected finish date of each feature is known.

Following is an example of a schedule with four sprints and a dozen features. Each sprint has three weeks (15 days) and all of the custom fields are visible and have been filled in.

Creating an Agile Schedule with MS Project

Now, applying the Sprint group, the information is sorted according to sprint and you can see the start and finish of each sprint as well as the total number of story points assigned to each sprint.

Creating an Agile Schedule with MS Project

Applying the Burndown group, you can clearly see what is done, what is in progress and what is not started. You can also see the total number of story points for each of these states. Sprints 1 and 2 are done, with a total of 45 story points.

Creating an Agile Schedule with MS Project

When tracking the project, if one or more features is not completed in a specific sprint, it is easy to just update the sprint number and the predecessor to move those features to another sprint. Also, if you just want to see summary data, it is easy to close up the Sprint group.

Summary

Custom fields are a powerful feature of Microsoft Project, and when used with custom groups, filters, and views, they allow you to create schedules that are more than just schedules, to focus on what you think is most important at the current moment, and to change your focus easily and rapidly. This makes creating, tracking, and managing your schedules a lot easier.

 


Related Content

Webinars (watch for free now!):
Key Agile Concepts Illustrated
Using Agile Best Practices with Project PPM Technologies
Agile PPM – When Your Teams are Agile, but Leadership Thinks Waterfall

Articles:
What is Agile Project Management?
5 Metrics for Agile Development
The Basic Roles in Agile Projects
Leveraging Agile in Microsoft Tools
Agile Disciplines


 

Share This Post
17 Comments
  1. Thanks for an objective approach on how to schedule Agile projects. Many of the books out there are biased against using MS Project for Agile software development. I for one, am willing to give the Agile technique a try. It provides more flexibility and appears to work.

    Thanks again.

    Reply
  2. Very well explained. Thanks

    Reply
  3. Hi Vincent,

    Nice article. Thanks.
    want to check if you would be able to share the .mpp file created using these steps.

    Thanks,
    Manoj

    Reply
  4. Hi Vincent

    I’m using 2010 MS Project and tried following your sample above. I can’t get column names in my version to match up with yours so, guess I’m not getting this. Do you have more indepth detailed instructions available?

    Thanks

    Ric Talley

    Reply
  5. Hi Vincent

    I think, I too, would like a copy of the .mpp file created using these steps. There’s just something I’m missing on understanding how to set this up.

    Thanks

    Ric Talley

    Reply
  6. Kept working with it and finally figured out what I was doing wrong. Pretty cool!!

    Thanks

    Ric Talley

    Reply
  7. This is an interesting model. I can see how it might be useful. However, I don’t understand how you might deal with a story which fails to be completed within a sprint. For example:

    Story 99 is sized at 10 points in Sprint 5

    Story 99 is not completed, so it is not accepted in Sprint 5.

    The story needs to be continued in Sprint 6 (or later), perhaps with more or fewer points.

    How do you model this?

    Shawn

    Reply
  8. We’re initiating a project now where this would be applicable. I’m excited about that! I’m up for recreating with your instructions but was wondering if there was a chance you’d be willing to share the .mpp file?

    Best,

    Jim Torino

    Reply
  9. Well thought out and interesting article. Thanks for sharing with the community.

    Paul

    Reply
  10. Thank you for a great, concise approach to get started with an agile approach using MS Project.

    Reply
  11. May I have a copy of the .ppt template please? I can’t get it to work.

    Reply
  12. Community

    Reply
  13. Excellent! Thank you for the article.

    Reply
  14. Vincent,

    Great article and instructions on how to setup an Agile project.

    thanks!

    Reply
  15. This is very helpful in general, but I’m wondering if anyone has attempted to tackle the concept of resource loading in an agile blend type schedule in Project. We are looking at adding some agile-istic concepts to our schedules and resource loading seems to be the most difficult concept to tackle. I would love it if anyone had any suggestions.

    Reply
  16. Really very good and I started using it…thank you for creating a simple SCRUM template in Project and now I did it in Project 2016

    Reply

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Please complete this equation so we know you’re not a robot. *

Thanks for submitting your comment!
You must be logged in to comment.