Developer productivity is a measure that is of significance to technology organizations and development teams. When the right measurements are put in place, such as how to measure developer productivity, managers are in a position to see the areas that need to be changed, to reward the best performers, and to ensure that the incentives of the developers are in tune with the business objectives. Still, the problem of productivity measurement is ambiguous in creative industries such as software development. This approach of measuring the performance of developers is not efficient because it does not reflect the value that developers are producing.
This article will discuss how to assess the productivity of developers in the current world by considering the quality, complexity, and business value of the software. Specifically, it will be focused on methodologies and practices that any CIO can implement immediately.
Why Measure Productivity?
Before introducing specific methodologies about how to measure developer productivity, we need to cover why it in the first place:
Monitor team performance. Productivity metrics enable managers to track team output over time. If a metric starts trending down, it may indicate problems like technical debt, ineffective tools, or process issues.
Identify star performers. Highly productive developers deliver outsized impact and value. Productivity metrics help managers identify these all-stars and potentially reward them.
Promote growth. Developers want to grow in their careers, and productivity benchmarks help them set goals to reach the next level.
Align incentives to business value. Tying developer incentives to business value promotes building software that delivers ROI rather than just keeping developers busy.
Right-size teams. Productivity numbers per developer help leadership size teams appropriately to deliver the target level of output.
Justify investments. Improved productivity metrics justify investments in improved tools, training, and streamlining processes.
Flawed Approaches to Measuring Productivity
Before introducing better approaches, we need to call out a few flawed methodologies that seem intuitive but fail to capture developer productivity:
Lines of code. While simple to measure, lines of code reward the wrong behavior. Developers could pad their stats by writing unnecessarily verbose code.
Story points completed. Teams estimate projects in story points to forecast completion time. However, this metric does not account for overestimated stories or poor code quality.
Bugs fixed. This metric actually incentivizes introducing bugs! Smart developers would game the system.
Hours worked. More hours do not equal more productivity. Developers have good and bad days irrespective of time spent coding.
These examples seem sensible on the surface but fail to capture true productivity. So, what should technology leaders measure instead?
Measure Productivity by Business Value
The best way to measure developer productivity is by the business value delivered:
- How much revenue will this feature generate?
- How many customers did this fix or improvement retain?
- How much developer/tester time will this code optimization save?
When productivity aligns with value, developer incentives match company incentives in building profitable software.
The key is connecting developer activity to broader company goals, which requires some financial analysis. Expect some pushback from developers on being judged on business performance rather than technical output. However, highlighting how their work impacts revenue and customers helps developers take pride in delivering tangible value.
Modern Methodologies to Measure Productivity
With the right mindset that developer productivity ties directly to business value, let’s explore specific methodologies and techniques:
1. Value-Adjusted Productivity Measurement
Value-adjusted productivity ties developer activity to two key business value drivers:
- Profitability. How profitable is the feature or product developers work on?
- Customer lifetime value. Software improvements that reduce churn retain more valuable customers.
Based on these value drivers, management can create a value-adjusted productivity score. For example, a 10-point story delivering a highly profitable feature would rate higher than a complex 20-pointer with low ROI.
This methodology aligns developer productivity to value while removing issues like overestimated story points that other techniques face.
2. Quality of Output
The ultimate test of developer productivity is the quality and maintainability of the code produced. Key metrics to measure include:
- Defect density. Defects per lines of code indicate maintainability issues. Tracking this over time shows improvement in the developer’s skill.
- Technical debt. Rigorous code reviews can categorize technical debt according to severity. Teams balance business needs and tech debt, but monitoring ensures quality.
- Code complexity. Cyclomatic complexity, like nested conditional counts, prevents unmaintainable code. Useful for setting limits.
- Code churn. High churn indicates unstable code requiring frequent changes. Useful to track after major releases.
Testing and code linting automation makes calculating these metrics easier today. Tracking these metrics also helps managers identify skill gaps for coaching.
3. Cycle Time
The faster developers can safely build and deploy quality code, the more productive a team becomes. Key metrics include:
- Build frequency. How often can developers compile, test and validate new builds? Shorter cycles increase deployment velocity.
- Pull request cycle time. From opening a pull request to code review and merging to the main, faster iteration improves productivity.
- Deployment frequency. Deploying small batches of code enables rapid customer feedback. Track frequency of releases to measure improvement.
By breaking down cycle time from commit to deployment, managers can identify bottlenecks like code reviews or testing. This helps balance productivity and quality.
4. Employee Satisfaction
Happy developers are productive developers. Employee satisfaction broadly measures productivity by qualitative sentiment scoring:
- Engagement surveys. Regular pulse surveys indicate trends in employee engagement and satisfaction.
- Retention rate. Turnover percentage over time measures job satisfaction and productivity drain.
- Burnout feedback. Directly survey developers on burnout signals like lack of autonomy, complexity, frustration, or unrelenting pace.
- 360 reviews. Peer reviews provide qualitative insights into developer productivity that managers cannot gather firsthand.
Sometimes, the best insights come directly from an engineering team. Proactively gathering feedback indicates management commitment to developer happiness.
5. Individual Goals
The methodologies above focus on team-level metrics. However, productivity can be measured for individual developers through goal setting:
- Stretched goals. Set aggressive quarterly goals for shipping features, reducing defects or cycle times. Celebrate goal-crushing.
- MBO methods. Management by Objectives (MBOs) ties individual productivity to broader company goal achievement.
- Competency assessment. Skills-based assessments, coding tests, and certifications demonstrate competency. Useful for raises and promotions.
Setting individual goals and milestones enables tailored coaching and skill development rather than imposing one-size-fits-all metrics.
Addressing Productivity Measurement Pitfalls
The methodologies introduced work well, given the complexity of measuring creative output. However, leaders should be aware of some common pitfalls that skew productivity metrics:
Rewarding the Wrong Behavior
Productivity metrics tied to compensation risk encourage developers to game the system. For example, measuring bugs fixed could lead to submitting and then immediately fixing easy bugs to inflate counts.
Mitigate by measuring multiple metrics in balance, not over-weighting any single productivity benchmark.
Discouraging Collaboration
Shared coding metrics like lines of code per developer could discourage developers from collaborating and code-reviewing each other’s work. Make sure productivity metrics do not hide the value of collaboration.
Lagging Indicators
Many productivity measures assess previous output. However, technology leaders need leading indicators in order to prevent problems and to identify opportunities early.
Complement lagging output metrics with predictive leading measures, like employee engagement surveys or burnout assessments.
Adjusting for Complexity
Not all features or lines of code demonstrate equal productivity. For instance, building a complex machine learning pipeline represents more value compared to simple bug fixes.
Consider weighting productivity metrics higher for objectively more complex work based on historical data.
Conclusion
Measuring productivity is a very important factor, and particularly for developers, it is quite challenging. Furthermore, business value should be the guiding principle rather than the technical aspects such as story points or lines of code. In addition, value-adjusted techniques are aimed at making developers more concerned with company profitability and customer satisfaction.
It is better when the difficulties are creative instead of the time constraints. Productivity analytics eliminates the need to guess for leaders to create engaged, self-directed engineers. Experience and insights in conjunction with data increase the efficiency of work by developers to the next level.