Productive and happy teams are good for business. Development Teams are one of the most expensive investments for most businesses and it makes sense to ensure that this investment is effective. However, Developer Productivity is difficult to understand let alone manage. The traditional metrics for measuring developer productivity ignore the complex and nuanced nature of this topic resulting in gross and unhelpful simplications. Needless to say, measures such as lines of code, and story points are fraught with issues.
The work undertaken by The DevOps Research and Assessment (DORA) organisation has been at the forefront of creating a more nuanced understanding, and more recent work on SPACE has further progressed this work.
A lot has been said about the 4 Key metrics from DORA, popularised by the excellent Accelerate book and discussed in a number of articles by Codurance thought-leaders. We will focus on SPACE for this article.
SPACE: A Framework for Understanding Developer Productivity
SPACE is a framework proposed in a paper by Nicole Forsgren at GitHub, Margaret-Anne Storey at the University of Victoria plus Chandra Maddila, Thomas Zimmermann, Brian Houck and Jenna Butler at Microsoft Research. You can read the full paper (here)
SPACE is an acronym that stands for Satisfaction and well-being, Performance, Activity, Communication and collaboration, and Efficiency and flow. Each component of SPACE is crucial for a comprehensive view of productivity and it is important to look at them as a whole.
Satisfaction and Well-being (S): This aspect focuses on the happiness, job satisfaction, and overall well-being of developers. It's based on the understanding that a satisfied and mentally healthy developer is more productive. Surveys and feedback are commonly used to assess this metric. Common Satisfaction and Well-being metrics include:
- Employee satisfaction surveys
- Well-being assessments (e.g., stress levels, work-life balance)
- Retention rates and turnover
- Frequency of burnout symptoms reported
- Employee Net Promoter Score (eNPS)
- Psychological safety index
- Engagement scores from internal tools
Performance (P): Performance is about the effectiveness and outcomes of development work. This includes the quality of the code, the functionality of the software, and how well it meets user needs. The Change fail rate, Time to restore service, and aspects of Deployment Frequency (i.e. deployments resulting in new features) from DORA fall under this category. A more comprehensive list includes:
- Number of features deployed
- Code quality metrics (e.g., code complexity, automated test coverage, technical debt)
- Bug rates and resolution times
- System uptime and reliability
- Time to market for new features
- Customer satisfaction scores
- Performance against key performance indicators (KPIs)
Activity (A): This metric looks at the volume and type of activity performed by developers. Activity metrics help in understanding work patterns and identifying bottlenecks. Deployment Frequency from DORA, when purely tracking deployments would fall into this category. Other metrics include:
- Number of commits and pull requests
- Code churn (how frequently the code is changed)
- Volume of code review activity
- Number of completed tasks or stories
- Time tracking for different development activities
- Deployment frequency
Communication and Collaboration (C): This part assesses how well team members communicate and work together. It includes metrics related to collaboration tools, frequency and quality of communication, and the effectiveness of team meetings. Good communication and collaboration are vital for a productive team environment. The following may be used to assess this area:
- Number and quality of code reviews.
- Frequency and effectiveness of team meetings (e.g., stand-ups, retrospectives).
- Usage metrics of collaboration tools (e.g., Slack, Teams).
- Cross-team collaborations and dependencies.
- Incident and problem management efficiency.
- Internal survey scores on team collaboration.
- Time to merge pull requests.
Efficiency and Flow (E): Efficiency relates to how effectively resources are used to achieve goals, while flow refers to the state of being deeply engaged and fully focused on work without interruptions. This part of SPACE measures things like time spent on different tasks, the ease of entering a state of flow, and how well the work environment supports efficient and uninterrupted work.
- Lead time (time from idea to deployment)
- Cycle time (time to complete a work item)
- Flow efficiency (active work time vs. total time)
- Work in progress limits adherence
- Frequency of context switching
- Ratio of planned vs. unplanned work
- Downtime or time lost to system issues
Collecting and analysing these metrics can offer invaluable insights into the productivity and health of a development team. It's important to note that the relevance and applicability of these metrics may vary depending on the organisation's size, structure, and nature of work. Moreover, a balanced approach is needed to ensure that metrics are used to support and improve developer experience, not just for performance tracking.
Book our Software Quality Assessment to measure your own organisation’s performance using empirical data.