Developer productivity is extremely hard to measure. Several classic metrics, from lines of code and function points to burndown charts and story points, are flawed. Focusing on complexity and work remaining is not enough, and the quality of the work is as or more important than quantity.
The SPACE framework aims to address this problem by offering a more holistic approach to measuring developer productivity. It’s a research-based 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 entire team’s success. So let’s take a closer look into this framework.
What is the SPACE framework?
The SPACE framework is a research-based approach to measuring, understanding, and improving developer productivity. It was developed by a group of researchers from GitHub, Microsoft, and the University of Victoria (Canada), and it encourages engineering leaders to have a holistic approach to productivity.
The SPACE framework has five dimensions for developer productivity:
Satisfaction and well-being: the state of mind and physical well-being of software developers;
Performance: the outcome of a system or process;
Activity: the quantity of work done, measured in terms of its outputs and actions;
Communication and collaboration: the collaborative process and support that represents software development teams;
Efficiency and flow: the degree to which software developers can progress in their tasks.
Engineering leaders should use these dimensions together, and they can’t measure productivity by a single metric or activity data in isolation.
Satisfaction and well-being
This dimension tries to understand if developers are fulfilled, happy, and practicing healthy work habits. Developers’ productivity is influenced by how happy and fulfilled they are with their work, team, and company culture. Plus, their overall happiness and health will impact their productivity. Highly productive but unhappy teams are more likely to burn out.
Satisfaction and well-being are hard to measure. 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
This dimension 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. As such, engineering leaders can measure performance by analyzing code quality and the work’s impact on customer satisfaction and retention, feature usage, and cost reduction.
Activity
This dimension 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.
Communication and collaboration
More often than not, software development is a creative process that needs 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, 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.
Efficiency and flow
This dimension capture the ability to work with minimal interruptions or delays. Reducing interruptions is very important to minimize developer frustration, impacting 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.
How can the SPACE framework help your team?
The SPACE framework helps engineering leaders have a holistic view of developer productivity. The five dimensions proposed in this framework serve as a reminder that developer 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.
If you’re looking for a way to implement the SPACE framework, Codacy Pulse can help you collect and analyze the essential engineering data you’ll need. Start a 14-day free trial of Codacy Pulse today!
Pulse dashboard