1

New Research Report - Exploring the 2024 State of Software Quality

Group 370
2

SAST, DAST, IAST, and RASP: Key Differences and How to Choose

Group 370
3

Spotlight Whitepaper by IDC on Importance of Automated Code Review Technologies

Group 370

SPACE Framework: How to Measure Developer Productivity

In this article:
Subscribe to our blog:

Developer productivity is complex. This is why engineering teams prioritizing productivity must look beyond vanity metrics like lines of code written to measure it. 

To truly gauge the effectiveness of your development team, it’s essential to focus on a wider array of metrics, considering not just the amount of work but also its complexity and prioritizing quality over quantity. 

The SPACE framework is one methodology popular with development teams because it holistically measures productivity. 

What Is the SPACE Framework?

The SPACE framework is a framework with five dimensions that comprehensively assess your team’s productivity. The dimensions in the SPACE framework help engineering and tech leaders empower their teams to take ownership of their work, develop their skills, and accomplish goals while contributing to the team’s success. 

Developed by researchers from GitHub, Microsoft, and the University of Victoria (Canada), the SPACE framework recommends holistically using the following five dimensions to measure, understand, and improve developer productivity.

The five dimensions proposed in the SPACE framework serve as a reminder that measuring productivity is not about the work of one individual developer but rather the way teams work together to achieve a goal. By looking at multiple dimensions, teams can better understand the factors influencing their productivity and use better strategies to improve it.

To better understand the SPACE framework, let’s look at each dimension to understand their singular and collective importance. 

Satisfaction and Well-Being

Satisfaction and well-being refer to developers' overall happiness, fulfillment, and health in their work environment. High levels of developer satisfaction and well-being contribute to employee retention, motivation, and creativity, leading to better overall productivity.

Metrics for assessing employee satisfaction and well-being may include employee survey data, feedback on work-life balance, job satisfaction ratings, stress levels, burnout rates, and access to physical and mental health support resources.

According to Software.com's Future of Work 2023 report, the four most common issues contributing to developer burnout are poor work-life balance, disruptions, high workload, and inefficient tools. 

Zenhub’s recent Software Developer Happiness Report also found that the most satisfied and productive developers can work from where they prefer to work (home, office, or hybrid). 

Objective metrics can’t directly measure developer happiness, but they can point out cases likely to cause dissatisfaction or burnout. Engineering leaders can better assess their teams’ satisfaction with quantitative and qualitative metrics (like survey data).

Performance

In the SPACE framework, developer performance measures the effectiveness and output of developers in completing tasks, delivering projects, and achieving goals. Improved performance leads to faster project delivery, high-quality code output, and better resource utilization.

Our 2024 State of Software Quality report found that the top four obstacles developers face in their efforts to deliver  high-quality code are time constraints, keeping up with technology changes, team collaboration issues, and inadequate tooling. 

Key metrics for evaluating performance may include individual and team productivity metrics, code quality metrics, adherence to deadlines, bug resolution rates, and customer satisfaction ratings.

This dimension of the SPACE framework can be assessed based on the outcome of a developer’s work. However, remember that we can better evaluate performance as outcomes instead of outputs completed. This calls for determining the value and impact of developers' work rather than simply looking at the amount of work produced.

Outputs refer to the tangible deliverables or tasks developers complete, such as lines of code written, features implemented, or bugs fixed. Outcomes, on the other hand, are the results or effects of the work produced by developers. These could include improvements in user satisfaction, increased revenue, faster application performance, or enhanced product quality. 

Organizations can better understand the value generated by software development efforts by shifting the focus from outputs to outcomes when evaluating developer productivity. This approach encourages developers to prioritize tasks that contribute to meaningful outcomes and promotes innovation and creativity in problem-solving rather than simply focusing on completing tasks to meet quotas or deadlines.

Activity

In the SPACE framework, developer activity tracks the level and types of activities developers perform daily, such as coding, testing, debugging, and collaboration. Understanding activity levels helps identify bottlenecks, inefficiencies, and areas for improvement in the software engineering process.

Codacy's 2024 Software Quality report found that 32% of developers surveyed have dedicated time slots to conducting code reviews, and another 32% integrate code reviews into their daily routine.

Activity metrics for measuring activity may include time spent on coding versus other activities, number of commits or code changes, frequency of code reviews, meeting participation, and utilization of development tools and resources.

This dimension of the SPACE framework refers to developer outputs in the classical sense. As such, some developer activities that can be measured and qualified easily are related to design and coding, continuous integration and deployment, and operational activity. Here, we include the volume or count of work items, pull requests, code reviews, count of builds and tests, and deployment frequency, among others.

However, engineering leaders can’t forget that they can’t view activity in isolation but in context with qualitative information and other metrics.

Unsurprisingly, Zenhub’s survey found that most software developers are happiest when coding. The study found that even though developers spend most of their time working on code (designing, coding, debugging), they would prefer to spend even more on these activities instead of attending meetings and working on administrative tasks like reporting.

Communication and Collaboration

Communication and collaboration assess the effectiveness of interactions and teamwork among developers and other stakeholders such as product managers, designers, and customers.

According to our State of Code Quality 2024 report, 42% of development teams say illustrating how investment in code quality aligns with overarching business goals is a primary challenge in getting buy-in from upper management.

Additionally, 25% of our respondents use real-time dashboards to illustrate the impact of code quality on business performance.

Strong communication and collaboration foster innovation, knowledge sharing, and alignment of efforts towards common goals. Metrics for evaluating communication and cooperation may include:

  • Frequency and quality of interactions.

  • Use of collaboration tools and platforms.

  • Participation in team meetings and discussions.

  • Resolution time for communication-related issues.

  • Feedback from team members on collaboration effectiveness.

More often than not, software development is a creative process requiring collaboration and brainstorming with peers. The most effective teams have a high degree of transparency and communication between all the team members. They are aligned on priorities, understand how their work fits into the global context of the company and can learn from each other.

To measure communication and collaboration in the SPACE framework, engineering leaders can use several indicators, like the quality of code reviews, code review time, the velocity of work integration, network metrics, and the onboarding time of new members.

The Zenhub Developer Happiness report also found that 40% of organizations use engineering productivity tools to automate development teams' communication with management, and 44% adopt these tools because management wants to communicate more with software developers. 

Also, 93% of developers surveyed said productivity tools improve collaboration quality. 

Efficiency and Flow

Efficiency and flow measure the smoothness and effectiveness of the development process, from ideation to deployment, aiming to minimize waste and maximize value creation. Improving efficiency and flow reduces lead times, enhances predictability, and increases the pace of innovation.

Metrics for assessing efficiency and flow may include cycle time for feature delivery, lead time for bug fixes, deployment frequency, deployment success rate, use of automation, continuous integration/continuous deployment (CI/CD) practices, and identification of impediments to flow such as blockers and dependencies.

This dimension of the SPACE framework captures the ability to work with minimal interruptions or delays. Reducing interruptions is vital to minimizing developer frustration, which impacts the first dimension—satisfaction and well-being. Engineering leaders can use speed metrics to capture efficiency and flow, like lead time for changes, cycle time, and perceived ability to stay in flow and complete work.

According to the Zenhub study, 74% of developers experienced some delay while waiting for feedback from managers or other stakeholders, and 70% of those developers said they spent at least three hours a week waiting for feedback. Forty-four percent of developers said they believe that they spend too much time in formal meetings.

Best Practices for Measuring Developer Productivity 

The quest to accurately measure developer productivity is an ongoing and nuanced one. Many companies follow a wide range of metrics and methods to ensure that they’re looking at developer productivity as holistically as possible, not restricting themselves to a single methodology or school of thought.

A good example is this recent McKinsey report, which hypothesizes that understanding the basics of measuring developer productivity involves tracking metrics at engineering systems, team, and individual levels. 

Various popular metrics, like DORA metrics and SPACE metrics, offer insights into outcomes focusing on collaboration and well-being. Additionally, McKinsey believes that adding opportunity-focused metrics can provide a comprehensive view of productivity, highlighting areas for improvement, including:

  • Inner/outer loop time spent, which divides software development tasks into two loops: inner, directly related to product creation, and outer, involving tasks like integration and deployment. Maximizing time in the inner loop, where value is generated, is crucial for productivity.
  • The Developer Velocity Index (DVI) survey, which benchmarks an enterprise's technology and practices against peers, uncovering areas for improvement. 
  • Contribution analysis, which helps identify trends inhibiting team optimization, enabling better resource management and skill development.

  • Talent capability score, which assesses individual proficiency, identifying areas for upskilling and talent strategy refinement.

The McKinsey approach to measuring developer productivity represents just one of the evolving perspectives in a field that continues to garner significant attention and is sure to undergo further research and theorizing in the future.

Using the Right Tools to Measure Developer Productivity 

Codacy Pulse is a versatile tool that gives software development teams deep, data-driven insights into productivity and team health using DORA metrics. It enables you to continuously measure team performance to motivate natural behavior changes and increase productivity and well-being. 

Use Codacy to couple the monitoring of your code quality and security metrics with your software development productivity metrics to gain real-time insights into the quality of your code and development process. 

Sign up for a 14-day free trial today to see how it works. 

 

RELATED
BLOG POSTS

Measuring and improving software development productivity
Over the years, companies have followed different approaches to measure software development productivity. The choice was vast, from lines of code and...
Code review process: how to improve developer productivity
According to our survey of 680 developers, the code review process had an overall positive impact on developer productivity which we discuss below. We...
Reduce cycle time - best practices
Cycle time is an essential part of Dora metrics that helps evaluate your team’s quality and overall efficiency of your Engineering performance. In a...

Automate code
reviews on your commits and pull request

Group 13