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 to measure our team’s productivity; hence, we have a clear understanding of its complexities. Software development is not a simple production line in the sense that a developer can continuously and faultlessly produce and deploy software. It is an elaborate process that requires creative problem-solving and involves numerous variables, including changing business requirements, technology advancements, and the need to collaborate within and across teams.
Classic metrics tend to focus exclusively on outputs. Two examples that come to mind are: lines of code written or number of features shipped. Nevertheless, quality is a must-have complement to quantity. For instance, a convoluted solution may span across more lines than a clean and well-designed one. Likewise, the time-to-market of simple features can be much shorter than more complex requirements that realistically have a more substantial business impact.
Although measuring productivity just in terms of KPIs is not sufficient, not measuring productivity at all is also a recipe for disaster. A familiar quote to many, primarily 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?
Introduced by researchers at GitHub, the University of Victoria, and Microsoft, SPACE is a practical and multidimensional perspective on developer productivity that proposes a new approach which guides leaders towards measuring and improving factors that impact outputs rather than focusing on these outputs in isolation.
By aligning business goals (Performance
), the wellness of the developers (Satisfaction
, Collaboration
), and the technical aspects of 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 delve into these dimensions a bit more, presenting a few KPIs that can be associated with them.
S — Satisfaction & Well Being
Satisfaction is a measure of developers’ fulfilment and engagement towards their tasks and the processes they use. Well-being presents an index of whether they practise healthy work habits. This dimension has become increasingly relevant as burnout has a range of adverse effects not only on individuals’ mental health but also on a team’s morale and ability to deliver high-quality work. Managing developer well-being can help build resilient teams that can integrate sustainable productivity for the long term.
📍 How to Measure
‣ Ask your team directly in your 1–2–1s: Do they feel appreciated? Do they have the right tools to complete their work? Are the development practices sufficient (PRs, CI/CD pipelines, etc.)? Would they recommend your team to others?
‣ Balance: Are some members busier than others? Do all members work in equally impactful features?
‣ Absence / Turnover Rates.
🌟 How to Improve
‣ Seek automation.
‣ Distribute work evenly.
‣ Provide growth opportunities.
‣ Share 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 play a role in determining performance, making it challenging to attribute to an individual developer, as development is typically a team effort. Thus, performance should be viewed as the result of a system or process, and the best way to track it is by measuring outcomes.
📍 How to Measure
‣ Quality: absence of bugs, reliability, change failure rate, and overall service health.
‣ Impact: customer satisfaction, system adoption, feature usage, cost reduction, time-saving.
🌟 How to Improve
‣ Implement observability to gain a comprehensive understanding of the system’s behaviour.
‣ Review the CI/CD pipelines based on best practices.
‣ Run efficient retrospectives.
A — Activity
A developer’s activity refers to the number of outputs or actions completed during working hours. Engineering managers can gain valuable but limited insights about 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 should always be balanced with qualitative information and other dimensions’ metrics.
📍 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/issues, open vs. closed tickets, issue 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 minimise downtime.
C — Collaboration & Communication
This dimension of SPACE is crucial to capture the aspect of how well the team can collaborate and whether there is an optimal flow of information amongst the team members. A team with a culture of transparency is likely more productive due to increased awareness of priorities and the work of others, facilitating better coordination of dependencies amongst them. Moreover, the flow of information within and across teams significantly affects the discoverability of documentation, which is essential for the proper alignment and integration of work.
📍 How to Measure
‣ Meeting metrics: quality, frequency, and effectiveness.
‣ Documentation: accessibility, organisation and discoverability.
‣ PRs: Review speed, time to the first review, and quality of feedback.
‣ Time spent to onboard new developers.
🌟 How to Improve
‣ Encourage pair programming.
‣ Avoid silos by involving more people in feature development.
‣ Update the wiki documentation as part of the ‘Done’ definition.
‣ Foster a DocOps culture: automate documentation within the CI pipeline, so there is less reliance on manual document writing.
‣ Provide opportunities for regular team check-ins (but not too many).
E — Efficiency & Flow
Developer productivity is directly correlated with the amount of high-quality work they can complete without disruptions. The holy grail of happiness for all developers is maintaining a flow state during their work day. However, minimising interruptions to increase efficiency may result in decreased collaboration, fewer opportunities to brainstorm and hence less creativity and breakthroughs that drive projects forward; as such, balance is critical here.
📍 How to Measure
‣ Throughput: Number of tasks completed per unit of time.
‣ Interruptions: Volume, quantity, timing, and spacing of interruptions.
‣ Number of handoffs across teams indicates where delays are likely to happen.
‣ Lead time for changes from a commit to production.
🌟 How to Improve
‣ Prioritise DevOps.
‣ Minimise context switching.
‣ Encourage Maker Time.
‣ Hold regular retrospectives to identify areas of inefficiency in the value stream.
Why does it matter?
The SPACE framework draws a holistic interpretation of engineering productivity by putting the developers at the centre of its focus. It ensures that all factors affecting a developer’s work experience are taken into account and given equal importance. It also puts emphasis on continuous improvement and aligns with the Japanese practice of Kaizen, recognising that even small, incremental improvements can have a significant impact on overall productivity and success.
Developer productivity is not a “taboo” and when it is tracked for the right reasons, it becomes a motivator for the team, where everyone understands that optimising the right metrics ultimately leads to a happier team.
Further Resources:
‣ Original SPACE paper research.
‣ Accelerate book.
‣ SPACE video presentation.
Thanks for reading!
P.S.
Have you ever tried hitting the clap button more than once to see what happens? ❤️
I regularly write about Leadership, Technology & Data on Medium — if you would like to read my future posts then please ‘Follow’ me!
My new book ‘Technical Wisdom’ is now available — take a peek!