Tuesday, 30 September 2014 00:00

Scaling and Stabilizing Team Velocity in Agile Scrum Projects

Written by

In this article we will discuss why observing velocity in agile projects is important in addition to exploring ways to improve and stabilize team velocity.

What is Velocity in Agile?

In the Agile world, a velocity metric or chart helps to predict how much work the team can successfully complete in the given iterations (sprint). In other words, we can say it helps to track how much effort the team has put in completing the work in the given sprint.

koganti Oct1
Picture 1: Funny Velocity Chart with Team inside

The primary advantage of the velocity chart is that it helps to gage how much work the team can perform in the given iteration by comparing past iterations’ (sprints) velocity charts.

In general, we find people providing tips on how to improve team velocity. In this article, I am going to focus more on how to scale and stabilize the team velocity. If we find an effective team velocity, we can plan future sprints more easily. It also helps us to monitor and predict the team’s progress.

How to Scale or Stabilize Team Velocity:

We know by now that if we scale and stabilize the team velocity, it will help us plan future sprints easily and predict the team’s progress. The following are 7 important areas that we need to consider:

Clear User Stories

User Stories are meant to be simple to read: giving more clear information on user requirement and providing sufficient information on the business case. The reason the Agile world encourages User Stories with a specific format is because the format is meant to be easy to read and simple to understand, both for the development team and other stakeholders. We must keep that in mind and encourage it in developing more meaningful User Stories that provide more granular detailed information. If the User Stories are clear and easy to assess story points or estimate time, then it becomes much easier to the development team to come up with accurate story points. If the story points are accurate and precise, then the development team can reach their goals in the assessed time. This indirectly helps to have stabilized and predictable team velocity.

Define Team Roles and Avoid Changes in the Team

Your team should have a clear definition of their roles on the given tasks or backlogs. Make sure that there are as few changes in the team as possible. The reason is, whenever a team member adds to the team or moves away from the team, overall performance will be affected. Sometimes this effect is seen in more than two sprints (i.e., if the team uses two-week sprints). This, in turn, affects progress. Though we make all the arrangements and plans to keep the team stable, sometimes this is unavoidable. In order to have less effect on the velocity when the team member moves away, it’s always good to keep the rest of the team members engaged in all the areas of the project to make them familiar with the maximum number of possible modules. Another way is to keep a backup of one another and get the team familiar with others’ work in review. In order to have a stable velocity, we definitely need to give high priority to having a stable team.

Take Advantage of Retrospective

Although Retrospective is meant to discuss what went well and what can be improved, I would encourage teams to use Retrospective time to discuss how to scale or stabilize their velocity. This would consist of topics like how the team can improve coordination in completing tasks, successes and failures. It is also important to document and discuss how teams were able to complete the given work in time. This helps the team recap and follow the approach in future sprints. In the same way, if the team was having difficulty on a task, discussing how they can improve it in future sprints would definitely help in improving future sprint velocity. After Retrospective, the next sprint planning meeting will come. During your retrospective, the team can come to a consensus on the issues of how to improve or stabilize velocity. By using the agreed methods, the team can plan the coming sprint. This, in turn, helps to gain velocity in the coming sprint.

Always See the Big Picture in Planning

Proper, detailed and careful planning results in a successful sprint. This gives a clear definition of the desired outcome. In order to achieve it, we need to focus on three main areas. 1) Help the product owner in prioritizing and selecting what needs to be done in the given sprint, 2) Give the team a hand in discussing backlogs in detail, and 3) Make sure the team has a clear understanding of the accepted stories. This helps the team to provide accurate story points. By doing the above, you help your team develop a properly planned sprint. This indirectly helps in having predictable velocity for the given sprint. In the long run, this practice helps create a scalable and stable team velocity.

Eliminate Dependencies

Dependencies always delay the work of the team. I suggest to first start looking for dependencies in the User Stories. These help us know the internal and external dependencies. It’s best to select the stories where your team is most comfortable—whether in handling them together or one at a time. Also, look at the big picture and see if any other external dependencies will affect the sprint.

Automation/Process

Establishing a proper CM process for the code and deliverable will improve the productivity of the team and eliminate issues. This, in turn, improves traceability. Automating QA helps improve the validation process of the developed product. In the same way, we can extend the automation process to build procedures. These steps help in reducing the known and unknown issues, as well as help to improve the development process, thus helping to scale or stabilize the velocity.

Finally, work on eliminating impediments. Impediments will most definitely affect velocity. One needs to understand the importance of it and put work into this area to achieve better velocity.

Summary

Scaling and stabilizing velocity always helps in improving project progress. The careful analysis or examination of velocity helps in predicting future sprints and may also provide some guidance on improvements. Predicting, scaling or stabilizing the velocity of a project is an ongoing process. One needs to learn it with experience. Finally, remember to document the observations in your projects; they may help in finding better approaches in the future.

Don't forget to leave your comments below.

Read 10955 times
Sreedhar Koganti

More than 15 years’ experience in software and system development. Mastered in using software methodologies, policies and procedures in simple to complex projects. Experienced in leading the technical team in right direction to reach the project goals using the best possible project management methodologies and practices. Has got opportunity to architect applications using state-of-the-art technologies. Has got very good insight on languages, databases, and tools. Published articles in various websites, and magazines. Presented technology solutions at Code Camps, User Groups. Contributed to an ASP.NET Developer Cook book. Most importantly enjoys working at Bureau of Labor Statistics.

© ProjectTimes.com 2017

macgregor logo white web