and planning are crucial tools in Agile project management. They help teams forecast workload, set realistic goals, and maintain a sustainable pace. By tracking these metrics, teams can make data-driven decisions and improve their planning accuracy over time.

Understanding velocity and capacity allows teams to commit to the right amount of work each . This balance ensures consistent delivery of value to stakeholders while avoiding burnout and maintaining team morale. It's all about finding that sweet spot of productivity and sustainability.

Velocity in Agile Projects

Measuring Team Progress and Productivity

Top images from around the web for Measuring Team Progress and Productivity
Top images from around the web for Measuring Team Progress and Productivity
  • Velocity is a measure of the average amount of work a team can complete during a sprint, usually measured in or hours
  • Velocity is used as a metric to forecast how much work the team can complete in future sprints and to guide sprint planning
  • Velocity may increase or decrease over time as teams become more familiar with the project, technology, and each other (ramp-up period, learning curve)
  • Velocity is not used to measure individual performance, but rather the overall capacity and capability of the team
    • Focuses on team output, not individual productivity
    • Encourages collaboration and shared ownership

Calculating Velocity

  • Velocity is calculated by totaling the points for all fully completed user stories at the end of the sprint
    • Only stories that meet the definition of "Done" are included
    • Partially complete stories, bugs, and carryover items are excluded
  • Velocity becomes a trailing metric, calculated based on historical performance over the last 3-4 sprints
    • Provides a more stable and reliable benchmark
    • Smooths out sprint-to-sprint variability

Calculating and Tracking Velocity

Velocity Calculation Formula

  • Velocity is calculated at the end of the sprint by summing up the total of story points from only fully "Done" user stories
    • Velocity=i=1nStoryPoints(UserStoryi)Velocity = \sum_{i=1}^{n} StoryPoints(UserStory_i)
    • Where UserStoryiUserStory_i is a fully completed user story and nn is the total number of completed stories in the sprint
  • Partially complete stories and bugs do not contribute to velocity since they are not potentially shippable product increments
    • Avoids rewarding partial work and encourages completing stories end-to-end
    • Keeps focus on delivering value, not just logging hours

Tracking Velocity Over Time

  • Track velocity over time, usually an average of the last 3 sprints, to establish a benchmark for future sprint planning
    • RollingVelocity=i=1nVelocityinRollingVelocity = \frac{\sum_{i=1}^{n} Velocity_i}{n}
    • Where VelocityiVelocity_i is the velocity of sprint ii and nn is the number of sprints (usually 3)
  • Velocity is a trailing metric, so it becomes more reliable after 3-4 sprints once the team normalizes
    • Initial sprints may have high variability due to unfamiliarity with process, technology, or domain
    • Allows team to stabilize and find a sustainable pace
  • Velocity metrics should be tracked in a shared information radiator, like a spreadsheet or wallboard, visible to the whole team
    • Provides transparency and enables collaborative inspection and adaptation
    • Acts as an input for sprint planning and release forecasting

Capacity Planning in Agile

Determining Team Availability

  • Capacity planning is the process of determining the team's availability for the upcoming sprint based on the team members and their allocations
    • Considers each team member's availability, usually in person hours or person days
    • Takes into account any planned time off, holidays, meetings, and other non-project activities
  • Capacity is typically measured in person hours per sprint and takes into account any time off, meetings, and other non-project activities
    • Capacity=i=1nAvailableHours(TeamMemberi)Capacity = \sum_{i=1}^{n} AvailableHours(TeamMember_i)
    • Where TeamMemberiTeamMember_i is a member of the team and nn is the total number of team members
  • Capacity planning helps avoid overcommitment by considering each team member's actual availability to work on the project
    • Ensures sprint commitments align with the team's real availability
    • Avoids planning based on unrealistic or idealized capacity

Variability in Capacity

  • Capacity often varies sprint-to-sprint based on vacations, holidays, organizational events, etc. so it needs to be updated each sprint
    • Helps surface short-term changes in availability that may impact velocity
    • Enables the team to adjust sprint scope to align with available capacity
  • Changes in team composition will impact capacity and velocity, so both need to be recalibrated when team members are added or removed
    • Adding or removing team members changes the total available person hours
    • Team dynamics and productivity may shift as the team forms and norms

Velocity and Capacity for Sprint Planning

Using Velocity to Forecast Sprint Scope

  • During sprint planning, the and developers use velocity to forecast how many story points they can complete in the upcoming sprint
    • ForecastedStoryPoints=RollingVelocityForecastedStoryPoints = RollingVelocity
    • Where RollingVelocityRollingVelocity is the average of the last 3 sprints' velocity
  • If the planned stories exceed the team's average velocity or available capacity, then stories should be removed until the team is comfortable with the scope of the
    • Avoids overcommitment and sets realistic expectations with stakeholders
    • Enables the team to deliver on their commitments and maintain a sustainable pace

Capacity as a Validation of Velocity

  • Capacity planning provides insight into the total person hours available which is used to validate the velocity forecast and avoid overcommitment
    • Converts story points into estimated hours using historical data
    • Compares total estimated hours to available person hours from capacity planning
  • Velocity and capacity are complementary metrics - velocity provides a top-down forecast while capacity gives a bottom-up validation
    • If velocity and capacity are misaligned, the team should discuss to understand the discrepancy
    • May indicate a change in focus factor, scope assumptions, or other factors impacting the team

Key Terms to Review (18)

Burndown Chart: A burndown chart is a visual representation of work completed versus work remaining in a project over time, typically used in Agile methodologies to track progress during a sprint. It helps teams monitor their progress, predict timelines, and identify any issues that may hinder successful delivery. By illustrating the relationship between planned and actual work, it fosters accountability among team members and supports effective decision-making.
Capacity: Capacity refers to the maximum amount of work that a team can handle in a given time frame, often expressed in terms of story points or hours. It plays a crucial role in planning and helps teams assess their ability to deliver work based on available resources, skill sets, and external factors. Understanding capacity allows teams to make informed decisions about workload distribution and project timelines.
Continuous Improvement: Continuous improvement is an ongoing effort to enhance products, services, or processes through incremental and breakthrough improvements. This concept is essential in various methodologies to foster a culture of learning and adaptability, enabling teams to respond to changes effectively and efficiently.
Ideal Hours: Ideal hours refer to the optimal amount of time a team would need to complete a specific task or set of tasks without interruptions or distractions. This concept helps teams estimate effort more accurately and provides a benchmark for understanding workload and productivity, making it easier to measure progress and performance against planned work. Understanding ideal hours is crucial for effectively managing resources and setting realistic deadlines.
Increment: An increment is a tangible, usable piece of software that is delivered at the end of each iteration, known as a sprint, in Agile methodologies like Scrum. Each increment builds on the previous increments, adding new features or improving existing ones, which enables the team to gradually refine and expand the product while ensuring that each version is potentially shippable.
Kanban: Kanban is a visual workflow management method that helps teams visualize their work, limit work in progress, and maximize efficiency. It encourages a continuous flow of work by using a Kanban board to display tasks, allowing teams to manage and optimize their processes effectively.
Planning Poker: Planning Poker is an agile estimation technique used to reach a consensus on the size and complexity of user stories, by allowing team members to assign story points through a card-based voting system. This method encourages collaboration and discussion among team members, leading to a more accurate understanding of the work involved. It connects closely with relative sizing and story points, helps refine estimation techniques, and plays a key role in measuring velocity and planning for future capacity.
Product Owner: The Product Owner is a key role in Agile project management, specifically within the Scrum framework, responsible for maximizing the value of the product resulting from the work of the development team. This role acts as a bridge between stakeholders and the development team, ensuring that the product backlog is prioritized and that user stories reflect the needs and expectations of users and stakeholders.
Relative estimation: Relative estimation is a technique used in Agile project management to assess the effort or complexity of tasks based on their relation to one another rather than assigning absolute values. This method emphasizes comparisons, helping teams understand the size of work items in relation to each other, which can lead to more accurate planning and forecasting. It simplifies discussions around task size by focusing on the relative scale of tasks, which can foster collaboration and consensus among team members.
Retrospective: A retrospective is a structured meeting held at the end of an iteration or project, where team members reflect on what went well, what didn’t, and how to improve moving forward. This practice is essential for continuous improvement, fostering open communication and collaboration among team members, and enhancing overall team performance.
Scrum: Scrum is an Agile framework used for managing and completing complex projects, emphasizing iterative progress, teamwork, and accountability. This approach divides work into small, manageable increments called sprints, enabling teams to adapt quickly to changes and continuously improve their processes.
Scrum Master: A Scrum Master is a facilitator and servant leader for a Scrum team, responsible for ensuring that the team adheres to Agile practices and principles while helping to remove any obstacles that may impede progress. This role is crucial in fostering an environment of collaboration, accountability, and continuous improvement within the team.
Sprint: A sprint is a time-boxed period during which a specific set of work must be completed and made ready for review. Sprints are fundamental to Agile methodologies, enabling teams to focus on delivering functional increments of a product in short cycles, which promotes flexibility and rapid feedback.
Sprint Backlog: The sprint backlog is a prioritized list of tasks and items that a Scrum team commits to completing during a specific sprint. It is derived from the product backlog and serves as a clear plan for the development team, helping them focus on delivering specific functionalities and improvements within the sprint timeframe.
Story Points: Story points are a unit of measure used in Agile project management to estimate the relative effort required to complete a user story. They help teams gauge the complexity and workload associated with specific tasks, allowing for better planning and resource allocation. By using story points, teams can communicate more effectively about work, prioritize tasks, and track progress over time.
Velocity: Velocity is a key metric in Agile project management that measures the amount of work a team completes in a given iteration, typically expressed in story points. This measurement allows teams to gauge their productivity and predict future performance, making it an essential tool for planning and improving efficiency in Agile practices.
Velocity chart: A velocity chart is a visual representation used in Agile Project Management that displays the amount of work a team completes during each iteration, often measured in story points or completed tasks. This chart helps teams track their progress over time, understand their capacity for future work, and make more informed decisions about planning and commitments. By analyzing the trends in a velocity chart, teams can identify patterns in their productivity and improve their sprint planning.
Work in Progress (WIP): Work in Progress (WIP) refers to the total amount of work that has started but is not yet completed within a project. It encompasses tasks that are actively being worked on, reflecting the current workload and resource allocation. WIP is crucial in understanding both team capacity and project velocity, as it helps to highlight bottlenecks and manage workflow effectively.
© 2024 Fiveable Inc. All rights reserved.
AP® and SAT® are trademarks registered by the College Board, which is not affiliated with, and does not endorse this website.