What is the SPACE Framework?
The SPACE framework is a comprehensive approach to measuring and improving developer productivity and overall developer happiness. It was developed by researchers at GitHub, Microsoft, and the University of Victoria in response to the limitations of traditional, production focused metrics (like volume of high-quality code), which focuses solely on output leading to unhealthy competition and burnout.
Why Consider SPACE Metrics?
SPACE metrics can improve engineering productivity and well-being by going beyond traditional metrics (like lines of code or number of bugs fixed) to provide a more holistic view of what makes developers effective and satisfied.
Think of it like this: if you only measured a basketball player’s performance by how many points they score, you’d miss a lot of other valuable factors, like assists, rebounds, steals, and their overall contribution to the team. Similarly, SPACE metrics look at the bigger picture of developer productivity, considering aspects like their well-being, collaboration, efficiency, and the impact of their work.
SPACE metrics are important because:
- They provide a more complete picture: By considering multiple dimensions of productivity, SPACE metrics help you understand what truly drives developer performance and identify areas for improvement.
- They prioritize developer well-being: SPACE metrics emphasize the importance of developer satisfaction, mental health, and work-life balance, leading to a more sustainable and supportive work environment.
- They foster collaboration for more effective teams: SPACE metrics highlight the importance of effective teamwork and knowledge sharing, leading to better communication and collaboration within teams.
- They enable data-driven decision making: By tracking SPACE metrics, you can gather data to identify bottlenecks, improve processes, and make more informed decisions about your development process.
The SPACE framework is not about rigid measurement with a single set of metrics. Instead, it encourages you to choose a diverse set of metrics from across the five categories that align with your software development team’s specific goals and context.
What Are SPACE Metrics?
The acronym SPACE represents five crucial elements for tracking developer productivity:
Satisfaction and Well-Being
Developer satisfaction is about how happy and fulfilled developers feel in their roles. It directly impacts their motivation, engagement, and ultimately, their productivity. Satisfied developers are more likely to be productive, creative, and committed to their work.
- Key things to keep in mind:
- High job satisfaction leads to increased productivity, reduced burnout, and improved retention.
- Factors like meaningful work, autonomy, work-life balance, and growth opportunities contribute to developer satisfaction.
- How to measure:
- Surveys: Use surveys to assess developers’ perceptions of their work, team, and organization.
- Interviews: Conduct one-on-one interviews to gather deeper insights into individual experiences and concerns.
- How to measure:
- Team surveys: Use surveys to assess team communication, collaboration, and satisfaction.
- Network analysis: Analyze communication patterns and interactions within the team to identify potential communication barriers.
- Qualitative observations: Observe team meetings and interactions to assess communication dynamics and identify areas for improvement.
Efficiency and Flow
Efficiency and flow are about creating an environment where developers can focus on their work with minimal interruptions and achieve a state of deep concentration.
- Key things to keep in mind:
- Minimize distractions, context switching, and unnecessary meetings to improve developer efficiency and flow.
- Streamline processes and provide the right tools to enable developers to work effectively.
- How to measure:
- Task cycle time: Track the time it takes to complete individual tasks.
- Onboarding time: Measure how long it takes new developers to become productive.
- Context switching: Track how often developers have to switch between different tasks or projects.
- Agile metrics: Use Agile methodologies and track metrics like sprint velocity and lead time to assess efficiency and flow.
Examples of SPACE Metrics
That being said, here are some examples of SPACE metrics you can consider:
- Satisfaction and well-being metrics:
- Developer satisfaction with their role, tools, and the work environment
- Work-life balance satisfaction
- Perceived level of burnout or stress
- Sense of community and belonging within the team
- Psychological safety within the team
- Performance metrics:
- Software’s impact on business metrics like revenue growth, customer acquisition, etc.
- The end user’s satisfaction with the software like ratings, NPS feedback, etc.
- Change failure rate / mean time to recovery (MTTR) from incidents
- Activity metrics:
- Frequency of code commits
- Frequency of pull requests reviewed
- Frequency of issues resolved
- Time spent in meetings
- Code churn
- Communication and collaboration metrics:
- Team satisfaction with communication and collaboration practices
- Perceived effectiveness of communication channels
- Frequency of knowledge sharing within the team
- Response time to messages or requests
- Efficiency and flow metrics:
- Cycle time for tasks
- Onboarding time for new developers
- Time spent waiting for dependencies (e.g., code reviews, approvals)
- Number of interruptions or context switches
- Perceived ability to focus and achieve a flow state
SPACE vs DORA Framework: Similarities and Differences
Both SPACE and DORA frameworks are valuable for measuring and improving software development effectiveness, but they have distinct focuses and applications.
Key similarities
- Data-driven improvement: Both frameworks emphasize using data to understand and improve the software development process. They encourage software development teams to track relevant metrics, analyze trends, and use the insights to make informed decisions.
- Focus on outcomes: While they consider different aspects of the development process, both SPACE and DORA ultimately aim to improve the outcomes of software development, whether it’s delivering higher-quality software, increasing customer satisfaction, or achieving business goals.
- Continuous improvement: Both frameworks promote a culture of continuous improvement. They encourage teams to regularly review their metrics, identify areas for improvement, and experiment with new approaches to optimize their processes.
- Developed with research: Both frameworks are grounded in research and have been validated through empirical studies.
Key differences:
- Scope and focus:
- SPACE takes a broader view, looking at many factors that influence software engineering effectiveness, including developer well-being, team communication, and process efficiency. It does not prescribe specific metrics, instead encouraging a holistic approach incorporating some system data, some sentiment data, and some very difficult-to-measure aspects such as the value of the software delivered.
- DORA zeroes in on four specific metrics related to DevOps performance: deployment frequency, lead time for changes, time to restore service, and change failure rate. These metrics are straightforward to measure and can help you diagnose your organizational fitness around deploying and repairing code – but once you’ve achieved proficiency there, they won’t tell you much else.
- Application:
- SPACE can be applied throughout the entire software development lifecycle, from planning and design to coding, testing, and deployment. It considers the well-being of engineers and the effectiveness of communication within teams as crucial elements.
- DORA is more specific to the CI/CD pipeline and operational excellence, making it highly relevant for teams looking to optimize their DevOps processes and achieve faster, more reliable releases.
Feature | SPACE Framework | DORA Framework |
Scope | Broader, encompassing various aspects of software developer productivity, including well-being, collaboration, and efficiency. | Narrower, focusing specifically on DevOps performance and delivery outcomes. |
Focus | Holistic view of developer productivity, considering both individual and team-level factors. | Primarily focused on the performance of the software delivery pipeline and operational efficiency. |
Metrics | Encourages choosing metrics from five key dimensions (Employee satisfaction, Performance, Activity, Communication and Collaboration, Efficiency and Flow) based on team context. | Prescribes four key metrics: Deployment Frequency, Lead Time for Changes, Time to Restore Service, and Change Failure Rate. |
Application | Applicable to various software development methodologies and team structures. | Specifically designed for teams practicing DevOps and continuous delivery. |
Emphasis | Strong emphasis on developer well-being, job satisfaction, and collaboration alongside performance. | Primarily focused on technical performance and achieving high delivery speed and stability. |
Essentially, DORA helps you measure and improve how quickly and reliably you deliver software, while SPACE helps you create a healthy and productive environment for your developers to do their best work.
When You Should Use SPACE Metrics
When deciding to adopt the SPACE framework for productivity measurement, consider if it aligns with your specific needs and goals. Here’s when SPACE can be particularly useful:
Establish a comprehensive definition of productivity
If you want to move beyond simple output measures (like lines of code) and define productivity more holistically, SPACE provides a framework that includes developer well-being, collaboration, and efficiency. It helps you understand the bigger picture of what makes a developer, and a team, truly productive.
Enhance team engagement and measurement
SPACE encourages active participation from the development team in the measurement process. By involving developers in selecting and tracking metrics, you can foster a culture of transparency and shared responsibility for improvement. This can lead to increased engagement and a sense of ownership over the team’s productivity.
Close measurement gaps
If you suspect your current productivity measurement approach is missing crucial aspects, SPACE can help you identify those blind spots. It prompts you to consider factors like developer satisfaction, communication effectiveness, and flow state, which might be overlooked in traditional measurement systems.
When NOT To Use SPACE Metrics
A common misconception is that all software development teams should be utilizing the SPACE framework. However, SPACE metrics are not useful in the following scenarios:
You are an early stage startup
Early stage teams often lack the resources, authority, or support to act on the insights gained from SPACE metrics, which diminishes the framework’s value. It’s essential to have the ability to implement changes based on the data collected.
The team is primarily focused on output metrics
If your primary focus is on traditional output metrics like lines of code or velocity, and you’re not interested in considering the broader aspects of developer well-being, collaboration, and efficiency, SPACE might not be the best fit. Its strength lies in balancing qualitative and quantitative measures for a more holistic view.
For short-term productivity boosts
If your goal is to achieve quick wins or short-term productivity improvements, SPACE might not be the most efficient approach. It’s designed for long-term, sustainable improvement through continuous monitoring, analysis, and adaptation.
How to Get Started with SPACE Metrics: 6 Key Steps
Step 1: Get leadership buy-in
Start by educating leaders about the SPACE framework and its benefits. Explain how it can lead to a more productive, engaged, and fulfilled development team.
Emphasize the importance of a holistic approach to productivity, moving beyond just output-based metrics.
Get their commitment to support the implementation of SPACE and the changes that may result from the insights gained.
Step 2: Evaluate your current tools and processes
Take inventory of your existing tools, including version control, build tools, infrastructure provisioning tools, project management, communication platforms, and issue-tracking systems.
Determine which SPACE metrics your current tools are not measuring effectively.
Step 3: Integrate the right tools
Research and select tools that can measure the missing SPACE metrics. Prioritize tools that integrate well with your existing toolset.
Choose a small, cross-functional team to test the new tools and ensure they effectively capture the necessary data. Once validated, integrate the new tools across all relevant teams. This may require custom configurations or the development of internal tools to ensure seamless data flow and accessibility.
Consider leveraging a tool like Jellyfish, which integrates with many development and productivity tools.
Step 4: Choose your initial focus and metrics
Don’t try to measure everything at once. Start with a few key metrics from each SPACE dimension that are most relevant to your team’s current challenges and goals.
Consider what you want to learn about your team’s productivity and what areas you want to improve. For example, if you’re concerned about developer burnout, focus on well-being metrics like work-life balance satisfaction and perceived stress levels.
Step 5: Implement measurement and reporting systems
- Use developer experience (devex) tools to automate data collection for SPACE metrics.
- Build or leverage existing solutions to create dashboards that display real-time data on SPACE metrics, accessible to all stakeholders.
- Set a regular schedule for reviewing the metrics at different levels (team, department, organization) to monitor progress and identify areas for improvement.
Step 6: Foster a culture of continuous improvement
Regularly review your SPACE metrics to track your progress and identify new areas for improvement.
For example, you can:
- Conduct workshops or training sessions to educate team members about SPACE metrics and their importance.
- Discuss metrics in team meetings and decision-making processes.
Remember to always use metrics to identify areas for improvement, not to evaluate individual performance of developers.
Measure and Improve Software Developer Productivity with Jellyfish
Jellyfish is a platform specifically designed to help engineering leaders measure and improve developer productivity. It provides insights into how engineering teams work and where improvements can be made. Here’s how you can use Jellyfish to measure and improve developer productivity:
Gain Visibility into Engineering Work
- Connect your tools: Jellyfish integrates with your existing tools like Jira, GitHub, GitLab, and calendar systems to automatically capture engineering signals (commits, pull requests, issues, etc.).
- Understand work patterns: Jellyfish analyzes these signals to provide a clear picture of how engineering teams are spending their time, what they’re working on, and how that work aligns with business objectives.
- Identify bottlenecks: See where work is getting stuck, whether it’s in code reviews, testing, or deployment. This helps you pinpoint areas for process improvement.
Measure and Track Key Developer Productivity Metrics
- Track DORA metrics: Jellyfish automatically calculates key DORA metrics (Deployment Frequency, Lead Time for Changes, Mean Time to Recovery, Change Failure Rate) to help you understand your DevOps performance.
- Go beyond DORA: Jellyfish also allows you to track other important metrics related to developer productivity, such as:
- Cycle time: Time taken to complete tasks.
- Work distribution: How work is allocated across teams and individuals.
- Meeting time: Time spent in meetings.
- Investment distribution: How engineering resources are allocated across different projects and initiatives.
Improve Efficiency and Collaboration
- Optimize processes: Identify bottlenecks and inefficiencies in your workflows and implement changes to streamline processes.
- Improve collaboration: Facilitate better communication and collaboration within and across teams by providing visibility into work patterns and dependencies.
- Reduce meeting time: Identify and reduce unnecessary meetings to free up more time for focused development work.
Align Engineering Work with Business Objectives
- Connect engineering work to business goals: Jellyfish helps you understand how engineering work contributes to business outcomes by linking activities to specific projects, initiatives, and goals.
- Communicate impact: Clearly demonstrate the value of engineering work to stakeholders by providing data-driven reports and insights.
- Make better decisions: Use data to make informed decisions about resource allocation, prioritization, and investment.
Promote Developer Well-Being
- Identify burnout risks: Track metrics like work-life balance and workload distribution to identify potential burnout risks.
- Support a healthy work environment: Use data to create a more supportive and sustainable work environment for developers.
- Promote work-life balance: Encourage healthy work habits and provide flexibility to help developers maintain a good work-life balance.
Ready to see Jellyfish in action? Book a demo today and discover how we can help you transform your engineering organization.