It’s no secret that developer productivity is crucial for the success of any software company.
The more meaningful effort your developers put in, the more they can deliver in a shorter time and at lower costs.
There are many different metrics that are being used to measure productivity, such as lines of code written per day or the time spent fixing bugs or refactoring code.
However, these metrics are usually inadequate on their own and paint only a partial picture of how effective developers are in their work.
In this blog post, we’ll introduce you to the SPACE framework that’ll show you how to effectively manage multiple metrics of developer productivity.
This way, you’ll be able to get a better understanding of how efficient your team really is and make sure that they are delivering quality work on time.
Interested? Let’s dive in!
Table of Contents
What is the SPACE framework?
SPACE framework is a relatively new concept.
Its first mention dates back to 2021 when the paper The SPACE of Developer Productivity was published, written by some of the brightest tech stars from GitHub and Microsoft Research.
The authors examined the best ways to track developer productivity since it was clear that it couldn’t be determined just by looking at conventional metrics such as speed, code quantity, and the number of bugs.
In fact, Nicole Forsgren, the paper’s lead author and partner at Microsoft Research, regards the preconception that effectiveness can be measured, for example, by how many lines of code developers write as one of the biggest and most damaging myths about developer productivity.
This is where the SPACE framework comes in.
As it brings together several key metrics, it provides a more encompassing and accurate picture of developer productivity than conventional approaches.
Get unreal data to fix real issues in your app & web.
In other words, this innovative method accounts for a number of factors that other approaches typically overlook when measuring developer productivity and is made up of five key metrics.
Stay tuned to see what they are!
SPACE metrics
The word SPACE is an acronym for the following categories for measuring performance: satisfaction and well-being, performance, activity, collaboration and communication, and efficiency and flow.
We’ll explore each of the five metrics here, showing how they can be measured and providing examples of their influence on how development teams work together.
Satisfaction and well-being
It’s pretty clear that there’s a direct link between employee satisfaction and productivity.
When people like what they do and where they work, they’re more likely to produce great results. And when people are unhappy or unhealthy, they don’t perform as well as they could.
Just like any other profession, software development has its ups and downs. Some days are great and others are challenging.
But overall, how do developers feel about their jobs? Do they enjoy coming to work in the morning?
Do they feel challenged and rewarded for their efforts? Does their company provide a healthy work-life balance?
For example, a study conducted by Haystack Analytics found that during the COVID-19 pandemic, a staggering 81% of software developers suffered from burnout.
And it’s a well-known fact that burnout is one of the biggest enemies of productivity.
The satisfaction and well-being metric of the SPACE framework tends to explore these aspects of developer productivity.
It also encourages companies to frequently conduct surveys to measure how satisfied the developers are with their jobs and their team, if they’re experiencing work-related stress and burnout, and even if they have the necessary tools and resources for getting the work done.
Satisfaction surveys are typically conducted annually or quarterly and include questions about whether employees feel content at work, whether they have opportunities to learn new skills, and whether they trust management.
The data acquired from such surveys can give companies a better idea of what problems the developers face on a daily basis, and help design effective solutions that’ll give them the support they need in order to be productive.
Performance
As we already mentioned, software developer performance is usually evaluated by the number of features added or bugs fixed in a given time period.
However, this approach can be problematic for several reasons.
For starters, let’s look at what the authors of the SPACE framework say about the matter.
As you can see, they state that developers who produce a lot of code aren’t necessarily producing high-quality results, and that even high-quality code may not deliver value to customers.
Also, features that impress customers may not always be good for business.
Furthermore, the software is often the result of many developers’ efforts, making it difficult to evaluate an individual’s contribution.
In most companies, the software is developed by teams, not by individuals.
Therefore, according to the SPACE framework, it would be best to evaluate developers based on their outcomes as opposed to looking at their output.
In other words, rather than evaluating them based on how much code they produce, it’s more important to evaluate them in terms of whether the code they produce reliably does what it’s supposed to do.
How much time does it take the developers to complete a task? How happy are the customers with the software they received? How reliable is the code and what bugs does it contain?
These are all very good metrics that you can pay attention to when evaluating your team’s performance.
However, keep in mind that the key to success is to choose metrics that are relevant to your company and its goals.
Otherwise, it will be difficult to track performance or even understand how the data should be interpreted.
Activity
Activity metrics, because they are versatile and easy to quantify, are the most commonly used developer productivity metrics.
In fact, in a more conventional approach, a developer’s activity is regarded as a key indicator of their productivity.
But let’s first take a quick look at the definition to get a better understanding of what is meant by it.
Activity is a count of actions or outputs completed in the course of performing work.
The SPACE of Developer Productivity
In a nutshell, it’s defined as the sum total of the actions or outputs completed over a period of time.
In this case, “actions or outputs” can denote any type of work done by developers—from coding new features to creating automated tests or making small refactoring improvements.
However, from this point of view, it’s clear that activity metrics provide a narrow understanding of developer productivity.
This is because the time spent on each task may vary significantly depending on its complexity and difficulty level.
In addition, some tasks require more time than others, which means that a developer may have to spend more time on some tasks than on others.
In her YouTube video, Nicole Forsgren also mentions overtime, inconsistent hours, gaps in the data, and even support systems and tools as reasons why activity metrics can’t be a standalone productivity tracking method.
Moreover, you can’t assess a developer’s activity without taking into account such routine tasks as daily standup meetings, helping others solve issues, and brainstorming sessions.
Developers spend a lot of time on them, and they are an integral part of their jobs.
If you want to measure your developers’ productivity accurately, you have to include all those routine tasks in your analytics toolset.
In other words, activity metrics give us only an average result—which doesn’t reflect the real situation at all.
By measuring only the number of completed tasks or projects, you might miss important information about the quality of your team’s work and its overall efficiency.
You might even end up with data that doesn’t reflect reality at all! And that alone makes it even more important to include other metrics into the equation.
Communication and collaboration
Every development team member has a specific role to play in the process of creating great software.
But, there are certain things that no software development team can do without and that is collaboration.
The importance of communication and collaboration can’t be overemphasized. In fact, it’s one of the key metrics for measuring productivity.
Especially as it can make or break your business, according to as many as 86% of employees who think ineffective communication or lack of collaboration constitute the biggest reasons for failures in business.
Teams that collaborate and communicate well solve problems more quickly, have more successful brainstorming sessions and make better decisions.
Collaboration can further help improve workflow and effectiveness by reducing the need for code reviews, providing opportunities to share knowledge, and preventing burnout.
However, as expected, collaboration can be hard to measure because it’s often thought of as an intangible quality.
How do you measure how often a team collaborates? What metrics do you use?
According to the SPACE framework, there are ways to measure collaboration in your organization and track its impact on your business goals, as you can see below.
- Discoverability of documentation and expertise.
- How quickly work is integrated.
- Quality of reviews of work contributed by team members.
- Network metrics that show who is connected to whom and how
- Onboarding time for and experience of new members.
Source: The SPACE of Developer Productivity
Measuring collaboration is a tough task, but you can get a sense of how well employees collaborate by considering the quality of their work reviews, the availability of documentation, considering network data that show how they’re connected, and how long new employees take to learn the ropes, to name just a few.
When people are communicating and collaborating effectively, they’re more productive. When they aren’t, productivity suffers.
That alone is a pretty good reason to measure communication effectiveness.
Efficiency and flow
Flow is a state of mind that occurs when a person is fully immersed in an activity.
It can be characterized by complete absorption in what one does to the point where nothing else seems to matter.
When developers enter this state, sometimes referred to as the zone, they can deliver more code and get more done during this period.
However, if developers are interrupted or distracted by other activities, then this flow is broken and it takes them longer to return to the task at hand.
Especially considering that it takes more than twenty minutes to get back to work after an interruption.
However, measuring the efficiency and flow can be a tricky business considering that tracking distractions and handoffs is difficult, at best.
However, you can do that by identifying stages in your workflow and then measuring the time it takes to pass through those stages.
For example, if you have a handoff between writing code and testing it, then the time spent on each step can be measured separately by counting the number of times that the developer performs those tasks during a certain period of time.
Other metrics you can track include how manageable it’s for developers to stay in the flow and finish their work, interruptions (their timing and frequency, as well as the tasks that are interrupted), and time measures (total time, value-added time, wait time).
Your workflow must be designed and implemented in such a way that it’s free of frequent interruptions, produces high-quality performance results without any waste of resources, and allows you to easily monitor employee progress.
And measuring efficiency and flow is a critical component of the process.
SPACE framework benefits
In the development world, there is a lot of focus on measuring productivity.
The idea is that if you can measure productivity, then you can optimize it and make better decisions about where to invest your time and money. Unfortunately, it’s not as easy as that.
We already mentioned that most attempts to measure developer productivity are based on a single metric: lines of code written per day, for example.
However, there is one more significant limitation to consider, as Gergely Orosz, writer for Pragmatic Engineer, points out.
In other words, tracking the number of lines of code written won’t tell you how productive your team is and it will only lead to busywork.
And if you measure productivity by the number of closed tickets, chances are that the developers will just get creative in how they report their progress or focus on the easy-to-fix tickets.
But if developer productivity can be measured, how is there not a
single standard of measuring this in the industry? Try to measure any
one dimension, and you’ll fail. Measuring lines of code is meaningless
and leads to busywork. Number of tickets closed? People will get
creative opening tickets, or optimize for the easy-to-fix ones. Number
of commits per day? It will lead to small and frequent commits, but not
more. Any single metric you give to people, it can – and will – be gamed.But if developer productivity can be measured, how is there not a single standard of measuring this in the industry? Try to measure any one dimension, and you’ll fail. Measuring lines of code is meaningless and leads to busywork. Number of tickets closed? People will get creative opening tickets, or optimize for the easy-to-fix ones. Number of commits per day? It will lead to small and frequent commits, but not more. Any single metric you give to people, it can – and will – be gamed.
Pragmatic Engineer
The productivity of a developer is influenced by many factors, including their experience level and technical skillset, but also how they manage their time and energy, how stressed they are, or are experiencing burnout.
SPACE framework aims to address these issues by providing an integrated view of developer productivity through multiple metrics, including not only objective data but also subjective ones such as developer satisfaction and well-being.
Additionally, another key advantage of the SPACE methodology is that it allows you to measure both the number of features delivered by each developer and the quality of their work.
In other words, SPACE metrics will enable you to make more informed decisions about your team’s productivity so that your developers can focus on what matters most—delivering high-quality software at minimum cost in the shortest time possible.
How to use the SPACE framework
Developers are not machines, they have their own preferences and ways of working. They are also people with feelings and emotions.
Therefore, it is impossible to find a one-size-fits-all approach suitable for every single developer in your team.
Very handy for handling user feedback. CTOs, devs, testers – rejoice.
Luckily, the SPACE framework has been designed to be modular in nature. This means that you can pick the metrics that are most important for your business and use them as a starting point.
Below you’ll find a table with a brief summary of all five metrics and the best ways you can track them.
This cheat sheet will help you understand what each metric represents and how you can use it in your team to monitor productivity.
The good rule of thumb here is that in order to get the best results, you should track a minimum of three metrics at the same time as only one or two of them won’t tell you much about your team’s productivity.
Another suggestion is that you should include at least one perceptual measure, such as survey data, in one of your metrics.
If you include perceptions of your team’s lived experiences, you can get a much better insight into their productivity.
Conclusion
As you can see, in the world of software development, there are many metrics that can be used to measure productivity. However, these metrics only tell part of the story.
The SPACE framework offers a more elaborate and comprehensive way to understand and measure developer productivity.
In this article, we’ve tried to explain what the SPACE framework is and walk you through what each of the letters in the acronym stands for, and why they matter.
We hope that it has helped you obtain a better understanding of how to use this framework to improve your team’s productivity and be able to leverage it in your own company!