Assessing Team Productivity through Velocity Measurement

Rahul Goel
Hiver Engineering
Published in
8 min readApr 1, 2024
Illustration created by Microsoft Image Creator (Gen AI)

In the realm of software development, metrics play a crucial role in assessing team performance, aligning efforts with business objectives, and driving continuous improvement. One key metric that stands out in the Git environment is velocity, which offers valuable insights into a team's productivity and efficiency. Let's delve into the world of Git Key Performance Indicators (KPIs) and explore how velocity, defined by the time taken to merge changes to production and deployment, serves as a pivotal measure of a team's output.

Understanding Key Performance Indicators (KPIs) in Git

Key performance indicators in Git are metrics that evaluate the success and efficiency of an organization’s or team’s development activities. These indicators provide valuable data to measure performance, identify areas for improvement, and make informed decisions. Git KPIs play a vital role in ensuring that development efforts align with business objectives and contribute to overall success.

Defining Velocity in Git

In the realm of Git, velocity is commonly gauged through the duration required for incorporating, testing, and deploying changes to the primary branch. This measure signifies the team’s proficiency in delivering alterations promptly and reliably. Monitoring velocity in Git empowers teams to extract meaningful observations about their development workflow and leverage data-driven strategies to optimize performance.

Figure 1. Visualisation of Velocity

Importance of Velocity in Measuring Team Output

Velocity is a significant KPI in Git that helps measure a team’s output and productivity. In the context of software development, velocity refers to the rate at which a team can deliver features or complete tasks. It is often defined by the time taken to merge changes to production and deploy them successfully.

Velocity is a critical metric because it provides insights into the team’s efficiency, productivity, and overall performance. By tracking velocity, teams can:

  • Analyze Development Process Efficiency: Velocity helps teams measure how quickly they can deliver changes to production, highlighting the efficiency of their development process.
  • Predict Performance: By understanding their velocity, teams can predict how long it will take to complete tasks and projects, enabling better planning and resource allocation.
  • Measure Team Productivity: Velocity allows teams to assess their productivity over time by comparing past and current performance, helping them identify trends and areas for improvement.

Leveraging Velocity for Continuous Improvement

Velocity serves as a powerful tool for teams to optimize their development processes, enhance productivity, and drive continuous improvement. By utilizing velocity as a key measure of output, teams can:

  • Enhance Efficiency: Analyzing velocity data enables teams to streamline their workflows, improve efficiency, and deliver work more effectively.
  • Set Realistic Goals: Velocity helps teams set realistic goals based on past performance data, ensuring that business objectives are aligned with achievable targets.
  • Drive Collaboration: By tracking velocity collaboratively, teams can foster communication, identify areas for improvement, and work towards shared goals effectively

Hiver’s Velocity Dashboard

Figure 2. P95 & P99 Velocity for the Last 30 Days
Figure 3. P95 of Number of days to merge the PRs (Month on Month comparison)

Some best practices for measuring velocity in Git include

  • Define Clear Metrics: Establish clear and relevant metrics, such as Throughput, Cycle Time, Change Failure Rate, and Mean Time to Recover, to accurately measure team performance and progress.
  • Use Metrics to Identify Velocity: Utilize metrics like story points earned per iteration, number of features delivered, lead time, cycle time, code churn, release frequency, and mean time to resolution to estimate and track development velocity.
  • Utilize Visualization Tools: Use tools that offer enhanced visualization and reporting capabilities to better understand and communicate insights derived from Git metrics.
  • Regularly Track and Analyze Velocity: Monitor velocity consistently to identify trends, deviations, and potential roadblocks in the development process. Sudden drops or fluctuations in velocity can signal issues that need immediate attention.
  • Set Realistic Expectations with Velocity: Use velocity data to establish realistic sprint timelines, adjust project scope based on actual team performance, and avoid burnout by ensuring that the workload aligns with the team’s capacity.
  • Leverage Velocity for Process Optimization: Use velocity metrics to diagnose inefficiencies in the software development lifecycle, identify bottlenecks, and improve workflows to enhance team productivity and efficiency.
  • Focus on Quality and Business Value: While velocity is a valuable metric for planning and estimating work capacity, remember that it does not measure the quality of work or the delivered business value. Consider tracking other Agile metrics for a more comprehensive view of team performance.
  • Team Collaboration: Encourage collaboration among team members by using Git metrics to work more cohesively, increase productivity, and improve the overall developer experience.

By implementing these best practices, teams can effectively measure Git velocity, optimize their development processes, set realistic expectations, and drive continuous improvement in software development endeavours.

Hiver’s PR Size (LOC) Dashboards

Figure 4. P95 & P99 Pull Request Size for the Last 30 Days
Figure 5. P90 of PR size(LOC) of merged PRs (Month on Month comparison)

What can be included in Velocity Metric Dashboards

Some examples of velocity metrics that can be included in a velocity measuring dashboard for software development teams are:

  • Number of Work Items Completed: Count the number of user stories, tasks, features, or bugs completed in a specific period, like a sprint or week, providing a tangible count of output without relying on story points.
  • PR Size (Pull Request Size): Measure the size of pull requests in terms of lines of code per changeset, where smaller PRs generally move faster and have fewer defects [Figure 4].
  • Cycle Time: Track the time taken for a work item to move from the beginning to the end of a process, such as the time for a user story to move from “Ready for Development” to “Done”.
  • Lead Time: Calculate the duration from when a new work item is created until it’s completed, encompassing the entire process from identification to implementation.
  • PR Efficiency Scorecard: Utilize a scorecard to track metrics like pickup time, review time, and efficiency in handling pull requests.
  • Throughput: Measure the rate at which work items are completed, providing insights into the team’s productivity and delivery speed.
  • Review Speed and Cycles: Monitor the speed and frequency of code reviews, ensuring timely feedback and collaboration within the team.
  • Defect Rate: Track the rate of defects identified in the development process, helping teams maintain high-quality standards.

By incorporating these velocity metrics into a dashboard, software development teams can effectively measure their progress, optimize their workflows, and make data-driven decisions to enhance their performance and productivity.

Implementing GIT Key Performance Indicator (KPI) Measurement at Hiver

SlackBot

At Hiver, we kickstarted the enhancement of speed by deploying a forward-thinking strategy leveraging technology. We created a Slack bot that dispatches notifications each morning, spotlighting pull requests (PRs) lingering for over three days. Through these alerts, team members could promptly intervene to tackle any delays. This instantaneous alert mechanism aids in pinpointing possible bottlenecks in the code review process and promotes timely interventions to maintain a seamless and effective development workflow. Following its implementation in January 2024, we observed a notable decrease in the duration required to merge PRs, consequently accelerating the delivery of business value [Figure 3].

Velocity & PR Size Visualization Dashboard

We also established a dashboard that provides a comprehensive view of velocity [Figure 2] and PR Size [Figure 5] trends across the organization. This dashboard enables us to track month-on-month comparisons, analyze patterns, and identify areas of improvement related to velocity metrics. By visualizing this data, we can make informed decisions, prioritize tasks effectively, and optimize our development processes for enhanced productivity and performance.

Figure 6. Number of PRs merged (Month on Month comparison)
Figure 7. P90 & P95 PR Size (Month on Month comparison)

Some common challenges in measuring velocity in Git

  • Comparing Teams: Using velocity to compare different teams can lead to inaccurate assessments and create a competitive environment that may hinder collaboration and teamwork.
  • Predicting Project Delivery Dates: Estimating project delivery dates based on velocity alone for long-term projects can be unreliable and may create false expectations or unnecessary pressure on the development team.
  • Quality vs. Quantity: Velocity is a quantitative measure that does not account for the quality of work or the delivered business value, making it essential to consider other Agile metrics for a comprehensive view of team performance.
  • Team-Specific Metric: Velocity is team-specific and should not be used to compare the performance of different teams within an organization, as each team may work differently, resulting in varying velocities.

These challenges highlight the importance of using velocity judiciously in Git, understanding its limitations, and complementing it with other metrics to gain a holistic view of team performance and project progress. Let’s link up on LinkedIn to collaborate on generating innovative solutions for tackling these obstacles.

TL;DR

In conclusion, Git's key performance indicators, such as velocity, play a crucial role in measuring team output, efficiency, and productivity. By leveraging these metrics effectively, teams can optimize their development processes, improve performance, and deliver high-quality software products consistently. Tracking velocity in Git provides valuable insights that enable teams to make informed decisions and drive success in their software development endeavours.

Join us

At Hiver, we’re not just sharing emails; we’re building the future of communication with technology that bridges gaps and brings people closer, no matter where they are.

If you’re excited by the prospect of solving complex problems, diving deep into the world of distributed systems, and making a tangible impact on the efficiency and reliability of email-sharing workflows, we would love to hear from you. We believe in fostering a culture where creativity meets technology, and where individual contributions are valued and celebrated.

Discover the opportunities waiting for you at Hiver by visiting our careers page. Whether you’re a seasoned developer or just starting your journey in tech, we have a place for you. Together, we can shape the future of communication, one email at a time.

References:

[1] https://linearb.io/blog/why-agile-velocity-is-the-most-dangerous-metric-for-software-development-teams

[2] https://www.atlassian.com/agile/project-management/velocity-scrum

[3] https://www.gitkraken.com/gitkon/git-metrics-gitkraken

[4] https://nimblehq.co/compass/development/git-analytics/

[5] https://synodus.com/blog/software-development/software-development-velocity/

--

--

Rahul Goel
Hiver Engineering

Staff Engineer @Hiver | Org Admin-Google Summer Of Code @Mifos Initiative