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.
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.
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.
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.