When it comes to software development, developers’ productivity is an essential factor in creating high-quality code efficiently.
While managers and teams have traditionally measured developer productivity with simple metrics such as lines of code, PR or code review cycle time, doing so does not capture the complete picture of productivity for software developers.
Developers are smart and creative thinkers, problem solvers who contribute to the overall success of the organization. Their daily routine is combined from different tasks with different complexity skills across different systems and tools – which means measuring productivity needs to encompass more than just lines of code written or tasks completed.
For developers to engage with their work effectively and efficiently, a new way of measuring productivity must be established. This led to the development of the SPACE framework – a research-based methodology from GitHub, Microsoft, and the University of Victoria that captures different dimensions of productivity
- (S) satisfaction and well-being
- (P) performance
- (A) activity
- (C) communication and collaboration
- (E) efficiency and flow
At a high level, the SPACE framework centers on the idea that developers should be able to work in an environment conducive to their creativity, encourages collaboration, and helps them reach their peak performance levels.
Implementing the SPACE methodology within developer teams can yield many benefits, including improved decision-making abilities, higher-quality software development, increased productivity, and more. Plus, managers who can effectively measure and predict developer productivity will be able to identify areas for improvement and make adjustments accordingly.
The Problem with Traditional Developer Performance & Production Measurements
Traditional metrics such as lines of code and bug fixes aren’t comprehensive enough to measure developer productivity. While these measurements can be useful in providing a rough estimate, they do not provide insight into how developers work, engage with their tasks, or interact with others on the team.
Most managers start by measuring their own data in a manual format, They might start with measuring actual vs planned in a weekly retrospect meeting over excel, some of them would download reports from the different systems, helping them to make sense of it all. Metric measuring methods such as DORA and FLOW have been used traditionally to measure developer productivity, but these are limited in scope and do not provide the full picture. Additionally, they require a significant amount of data to be collected on manual tracking sheets or utilize JIRA boards, which add an extra layer of complexity to the process.
Though these activities contribute to the overall success of a product launch, they are not always measured or tracked using traditional metrics. This can lead to an incomplete evaluation of each developer’s productivity within the team. To effectively measure and predict developer productivity, a methodology must be established that considers all aspects of their work.
The SPACE framework provides a comprehensive way to measure and predict developer productivity. Each letter focuses on a different factor that has significantly influenced a developer’s ability to deliver high-quality software.
To help you gain a deeper perspective on how SPACE can be used, we will break down each part of the acronym and apply it to a typical developer task – code review. We will then work through the individual, team, and system levels to show how each part works together to create a holistic view of developer productivity.
S: Satisfaction & Well-Being
The first part of the SPACE acronym focuses on satisfaction and well-being. It may seem unusual to start out a tracking framework focused on productivity with this concept, but in reality, it is vitally important. Mental and emotional state heavily influences a developer’s ability to deliver high-quality work. Studies continue to show the impact of personal satisfaction and well-being on individual performance, and the same holds true for developers.
Traditional methods of measuring productivity often overlook this factor, failing to consider that developers are also human beings who need emotional support and encouragement to reach their peak performance levels.
Even when they are measured, it’s done via surveys or subjective reports rather than through any objective metrics due to the soft nature of the metric – usually providing biased results that are best proxied with cold data
Let’s look at code review as an example. To measure satisfaction and well-being, you would look at how they feel about the task itself, whether they feel supported and encouraged by their team, and if they can work in a conducive environment.
When broken out across the three different levels, you can use SPACE to measure:
- Individual: Does the current process of code review affect the developers satisfaction?
- Team: Does code review affect the dynamics within the team? Improves retention? (one team member reviews others in the team)
- System: what is the satisfaction from the current engineering systems? (CI/CD)
To improve satisfaction within the team it is best to keep a close touch with all of our team members and frequently ask for their well being and if they are satisfied with their workplace, Trying to give them what they need to succeed
The next part of the SPACE acronym focuses on performance. While satisfaction and well-being are important factors when it comes to productivity, ultimately, the quality of a developer’s work matters most. Measuring performance is different in each organization, it is never the amount of lines of code, some companies would measure the quality of the code itself – but the best way to measure performance is in actual products, fetchers and releases that bring actual value to the organization (save money, bring more users, improve up time).
Performance metrics include KPIs such as defect rates, code coverage, and time to market. These metrics help assess the quality of a team’s work and individual results.
But true performance cannot be measured in the output alone. Someone who works with code is not defined by the code they create. Rather, how they collaborate, solve problems, and think creatively are more important indicators of a developer’s performance.
P in Action
In our code review example, this could mean looking at how efficiently and effectively the process is working. Are they able to write code that meets or exceeds expectations? Is their code organized and optimized for readability and maintainability? Are they providing feedback to other team members as needed?
- Individual: A code review velocity metric can help assess an individual developer’s performance and identify areas of improvement.
- Team: At a team-level, companies are likely to use story points shipped or code review velocity as a performance metric
- System: at an organizational level we can measure code review velocity, acceptance rate and reliability (what was the uptime and did it improve?)
Overall, performance metrics provide a more comprehensive view of developers actual products and outcomes and can help managers identify areas for improvement. To improve the company products all teams need to be aligned with the business goals, making sure that the road map is built from fetchers that generate revenue
Activity is one of the tracking metrics that you are most familiar with. Activities such as lines of code written, code review, debugging, and more are tracked and monitored throughout the day.
You can collect vast amounts of data from these activities, but the challenge is to make sense of it all. When viewed in isolation, they don’t go very far in providing meaningful insights, but when paired with other metrics, they can provide valuable context and help inform decisions.
By placing activity within the center of the SPACE framework, elements such as well-being and performance are taken into account. This helps to contextualize the data, giving developers a more accurate measure of productivity.
A in Action
Suddenly, activities such as debugging, refactoring, and making changes to the code can be seen in the context of the overall project outcomes – and changes can be made to ensure that developers are working efficiently. And by tracking developers’ work hours, managers can ensure that they’re not burning out or running into roadblocks.
- Individual: Direct counts of activities such as lines of code, commits, and code reviews can help assess an individual developer’s productivity.
- Team: A team-level metric, such as the number of story points completed per sprint, can help measure a team’s overall velocity.
- System: Analyzing frequency of deployment can help identify bottlenecks or areas where productivity can be improved.
Overall, tracking activities provides essential insights into how developers perform, allowing managers to make informed decisions and ensure that everyone works optimally. You can download most of the metrics directly from your platform (Jira,Git) just make sure to proxy them with other data!
C: Collaboration & Communication
Most developers work within a larger ecosystem of teams and individuals, so collaboration and communication are important pieces of the puzzle. These two elements help developers stay on track with their tasks and ensure that everyone is working together towards a common goal.
Similarly, communication involves accessing data from within the system and collaborating with others to refine the process. By understanding how teams work together, managers can better understand areas for improvement. If individuals struggle to find the right information or lack communication between teams, then you can take steps to improve the workflow.
C in Action
Measuring cold data points within collaboration and communication may include metrics such as time spent on code writing, code review, bug fixing, and more. But to get the true context of how teams work together, managers must look at qualitative aspects such as conversations and interactions between developers.
- Individual: Tracking how much time an individual spends on communication and collaboration can help assess the effectiveness of their daily tasks. The quality of meetings and the PR merge times can also be tracked to measure how much collaboration is actually taking place.
- Team: Team-level metrics such as the average number of messages per sprint can help determine how well teams work together and communicate.
- System: An analysis of workflow efficiency can provide insights into which processes need adapting or streamlining. This could involve examining knowledge accessibility, cross-team collaboration, and code review turnaround time throughout the system.
Overall, collaboration and communication are essential pieces of the puzzle in understanding how teams are working together – or not. By tracking these elusive metrics, developers and managers can gain valuable insights into the productivity of their teams.
E: Efficiency and Flow
The last element of the SPACE acronym is efficiency and flow. But this doesn’t mean measuring how quickly someone gets their work done and how they do it. The concept of “Flow” – first coined by psychologist Mihaly Csikszentmihalyi – refers to the psychological state of being so focused on a task that everything else disappears. When someone is in flow, they can work with greater ease and efficiency — and this also applies to software development.
Tracking Flow and efficiency may feel challenging, but there are unique data points that can be tracked and analyzed. These can include:
Flow Velocity: How quickly a developer works on tasks and how this changes over time.
Flow Time: The amount of time it takes for a developer team to move a solution to market.
Flow Efficiency: The amount of waste in the development process and how this can be reduced.
Flow Load: The distribution of workload across different developers and how this affects performance.
E in Action
With these metrics, it’s possible to better understand the development process and where improvements can be made. A “Flow Distribution” in code writing, for example, would show how much code is written by each developer and how efficiently they work. This can provide valuable insights into which developers may be struggling and where managers can intervene to help.
- Individual: Tracking code review timing and amount of daily interruptions
- Team: Tracking code review handoffs and timing
- System: Tracking code review velocity and timing, putting an emphasis on the process itself: does developers get code review a day early? At the end of the day? Or during their work?
Ultimately, efficiency and flow are integral elements in understanding the effectiveness of a software development process. Make sure your developers are working without interruptions – at a steady flow – make appointment at the beginning and the end of day, make sure your developers are not interfered with new tasks and messaging is reduced to minimum
Meet Keepy – Helping You Track SPACE with a Technological Edge
Each SPACE attribute offers unique ways to measure and improve developer productivity, but it can be challenging to track them manually. Plus, metrics such as Flow and Collaboration are not always easy to measure, and self-reporting systems can introduce varied accuracy.
Fortunately, there is a way to track SPACE metrics with a technological edge. Meet Keepy AI-
an innovative platform designed to help organizations bring together all relevant data points across the entire software development process.
Keepy uses machine learning to analyze data from multiple sources (Git, Slack, Jira, etc.) to generate insights into developer behavior. This data can be used to accurately track metrics such as velocity and collaboration, providing valuable insights into the performance of individual developers and teams.
With Keepy, organizations can get a deeper understanding of developer performance and success through detailed, AI-driven dashboards. With a click, you can drive down from a system-level view to the individual performance of each team member, giving managers more control over their developer resources.
Built on years of research from Dr. Ravit Oren, Keepy allows you to pull soft metrics from hard data. Utilize built-in surveys to gain insight into soft metrics and combine those with the hard data from performance-based metrics to create intuitive, personalized dashboards that tell the real story of developer productivity.
By utilizing Keepy, developers can easily track the progress of their projects and ensure that they are maximizing productivity. Ready to learn more? Schedule a demo of Keepy today and see how you can use our platform to track your SPACE.