Take your development team’s productivity to new heights with the SPACE framework
As Engineering Managers, we have all been tasked at some point in our careers with measuring the productivity of our team; therefore, we have a clear understanding of its complexities. Software development is not a simple production line in the sense that a developer can continuously produce and deploy software without failure. It is an elaborate process that requires creative problem solving and involves numerous variables, including changing business requirements, technological advances, and the need to collaborate within and across teams.
Classic metrics tend to focus exclusively on Departures. Two examples that come to mind are: lines of code written or number of features shipped. However, quality is an essential complement to quantity. For example, a complicated solution may span more lines than a clean, well-designed one. Similarly, the time to market for simple features can be much shorter than more complex requirements that realistically have a more substantial business impact.
Although measuring productivity in terms of KPIs alone is not enough, not measuring productivity at all is also a recipe for disaster. A familiar quote to many, mostly attributed to Peter Drucker, “If you can’t measure it, you can’t improve it”is very relevant here.
So what is the right balance?
Presented by researchers at GitHub, the University of Victoria and Microsoft, SPACE is a practical, multidimensional perspective on developer productivity that proposes a new approach that guides leaders to measure and improve factors impacting results instead of focusing on these products in isolation.
when aligning business goals (Performance
), he welfare from the developers (Satisfaction
, Collaboration
), and the technical aspects software development (Activity
, Efficiency
, Collaboration
), the SPACE framework helps engineering managers create a positive work environment that results in increased productivity and enables them to make informed decisions that lead to continuous improvement.
Let’s dive a little deeper into these dimensions, introducing some KPIs that can be associated with them.
S — Satisfaction and Well-being
Satisfaction is a measure of developers’ compliance and commitment to their tasks and the processes they use. Well-being presents an index of whether they practice healthy work habits. This dimension has become increasingly relevant as burnout has a variety of adverse effects not only on people’s mental health but also on morale and a team’s ability to deliver high-quality work. Managing developer well-being can help build resilient teams that can embed sustainable productivity over the long term.
📍 How to Measure
‣ Ask your team directly in your 1–2–1: Do they feel appreciated? Do they have the right tools to complete their job? Are development practices (RP, CI/CD pipelines, etc.) sufficient? Would they recommend your team to others?
‣ Balance: Are some members busier than others? Do all members work on equally impressive features?
‣ Absence / Turnover Rates.
🌟 How to Improve
‣ Look for automation.
‣ Distribute work evenly.
‣ Provide growth opportunities.
‣ Share the business impact.
P-Performance
Performance in software development is not just about the output but the end results achieved. Factors such as code quality, customer value, and business impact all play a role in determining performance, making it difficult to attribute to an individual developer, since development is often a team effort. Therefore, performance should be seen as the result of a system or process, and the best way to track it is by measuring the results.
📍 How to Measure
‣ Quality: absence of errors, reliability, change failure rate and general state of the service.
‣ Impact: customer satisfaction, system adoption, use of features, cost reduction, time savings.
🌟 How to Improve
‣ Implement observability to gain a comprehensive understanding of system behavior.
‣ Review CI/CD pipelines based on best practices.
‣ Carry out efficient retrospectives.
A. Activity
The activity of a developer refers to the number of products or actions performed during working hours. Engineering managers can gain valuable but limited insights into productivity itself simply because some of these activities are intractable. For example, team meetings, mentoring, debugging, setting up a new environment, and writing unit tests that are not representative of functional areas. Therefore, this dimension cannot be used in isolation and must always be balanced with qualitative information and metrics from other dimensions.
📍 How to Measure
‣ Design and development: Number of work tasks, pull requests, commits, code changes, code reviews, and design documents.
‣ CI/CD: number of builds, test cases, test automation, deployments/releases.
‣ Operations: Number of incidents/problems, open tickets vs. closed, problem distribution by severity, incident mitigation.
🌟 How to Improve
‣ Remove blockers so developers spend less time on non-coding tasks.
‣ Implement a robust incident management system to quickly respond to operational incidents and minimize downtime.
C — Collaboration and communication
This dimension of SPACE is crucial in capturing the aspect of how well the team can collaborate and whether there is an optimal flow of information between team members. A team with a culture of transparency is likely to be more productive due to a greater awareness of the priorities and work of others, which facilitates better coordination of dependencies between them. In addition, the flow of information within and between teams significantly affects documentation discoverability, which is essential for proper alignment and integration of work.
📍 How to Measure
‣ Meeting metrics: quality, frequency and effectiveness.
‣ Documentation: accessibility, organization and discoverability.
‣ PR: review speed, time to first review, and quality of feedback.
‣ Time dedicated to onboarding new developers.
🌟 How to Improve
‣ Encourage programming in pairs.
‣ Avoid silos by involving more people in feature development.
‣ Update the wiki documentation as part of the Definition of ‘Finished’.
‣ Foster a DocOps culture: Automate documentation within the CI pipeline, so there is less reliance on handwriting documents.
‣ Provide opportunities for regular (but not too many) equipment checks.
E — Efficiency and Flow
Developer productivity is directly related to the amount of high-quality work they can complete without interruption. The holy grail of happiness for all developers is maintaining a state of flow throughout their workday. However, minimizing interruptions to increase efficiency can result in less collaboration, fewer opportunities to brainstorm, and therefore less creativity and project breakthroughs; as such, balance is critical here.
📍 How to Measure
‣ Performance: Number of tasks completed per unit of time.
‣ Interruptions: Volume, amount, time and spacing of interruptions.
‣ The number of transfers between teams indicates where delays are likely to occur.
‣ Lead time for changes from a commitment to production.
🌟 How to Improve
‣ Prioritize DevOps.
‣ Minimize context switching.
‣ Encourage creation time.
‣ Carry out periodic retrospectives to identify areas of inefficiency in the value stream.
Why does that matter?
The SPACE framework draws a holistic interpretation of engineering productivity by putting the developers in the center of your focus. It ensures that all factors that affect a developer’s work experience are considered and given equal weight. It also places emphasis on continuous improvement and aligns with the Japanese practice of Kaizen, recognizing that even small, incremental improvements can have a significant impact on overall productivity and success.
Developer productivity is not a “taboo” and when tracked for the right reasons, it becomes a motivator for the team, where everyone understands that optimizing the right metrics ultimately leads to a happier team.
More resources:
‣ Original SPACE paper research.
‣ Speed up book.
‣ SPACE video presentation.
Thank you for reading!
P.S.
Have you ever tried pressing the clap button more than once to see what happens? ❤️
I regularly write about Leadership, Technology and Data on Medium. If you would like to read my future posts please ‘follow me!
My new book ‘Technical Wisdom’ is now available — have a look!