The Best Of Engineering Enablement 2023
The best research papers and interviews published so far.
This is the latest issue of my newsletter. Each week I cover the latest research and perspectives on developer productivity.
This newsletter was launched in the summer of 2022, meaning that 2023 has been the first, full calendar year of the newsletter. Thank you for being a reader! This has been an eventful year for developer productivity: the DevEx framework was introduced, McKinsey published a report that sparked debate, and meanwhile the impact of AI on productivity has increasingly become a topic of interest.
In this end-of-year issue, I’ve put together a list of the best research papers and interviews published so far, organized by topic. This should serve as a curated guide to finding the most relevant resources on each topic.
What is developer productivity?
Three Dimensions of Developer Productivity. This paper provides a set of outcomes that leaders can measure to capture productivity: originally Velocity, Quality, and Satisfaction, later revised to Speed, Ease, and Quality.
The SPACE of Developer Productivity. This paper encourages leaders to think beyond just “activity” when attempting to measure and understand productivity. Productivity is more than just activity, it also encompasses satisfaction, performance, collaboration, and efficiency.
Four Lenses of Productivity. The different lenses for viewing developer productivity: individual, team, organizational, and market.
Why it’s Difficult to Measure Developer Productivity. This paper explains why measuring productivity is complex: because software engineering is creative, and because there are outside forces that influence how productive developers will be at a task.
What impacts developer productivity?
Maximizing Developer Effectiveness. This article describes the day in the life of a developer to illustrate what impacts productivity. Instead of tracking outputs to measure productivity, organizations would find more success if they focused on providing an effective working environment.
DevEx: What Actually Drives Productivity. An approach to measuring and improving developer productivity which centers on the developer experience.
Software Development Waste. The types of waste in software development and their causes.
What Improves Developer Productivity at Google? Code Quality. Code quality is the strongest driver of developer productivity at Google, followed by the innovativeness of tooling and infrastructure, and then whether developers experience shifting project priorities.
What Predicts Software Developers’ Productivity?. This study identifies correlations between various factors and developer productivity. The findings underscore the importance of job enthusiasm, support for new ideas, and feedback about job performance.
The Bi-Directional Relationship Between Developer Satisfaction and Productivity. Higher levels of productivity drive job satisfaction, and vice versa. The paper also identifies the top impediments experienced by developers: poor software architecture, legacy code, finding relevant information, too many dependencies, and poor engineering tools.
How Emotions Affect Perceived Productivity. Emotions are correlated with productivity. Positive emotions are triggered when developers feel in flow.
Deeper dives into specific factors
Flow
Barriers to Flow. Barriers to entering flow states include working on tasks that are boring, easy, or mundane, interruptions, time-related challenges, non user-friendly tools, and poor code quality.
What Makes Developers Unhappy?. Developer unhappiness is caused by being stuck in problem solving, time pressure, and bad code quality and coding practice.
The Emotional Roller Coaster of Changing Requirements. Last-minute requirement changes (without extending the timeline) trigger negative emotions.
What Makes Some Interruptions More Disruptive Than Others?. The time of day when an interruption happens, whether the interruption was caused by the developer themselves or something external, and whether the interruption included context switching, are all predictors of how disruptive an interruption will be.
Feedback loops
How Flaky Tests Impact Developers. When there are too many flaky tests, developers are more likely to ignore potentially genuine test failures.
Understanding the Experience of Code Review. The code review process is made less efficient when reviews take longer than expected, when it’s not clear who should follow up on comments within a review, or when the reviewer lacks necessary information.
Cross-Team Collaboration at Scale. Communication between teams is affected by how well-aware teams are of each others’ work, how frequently they interact, and their attitudes towards the work other teams do.
Cognitive Load
The Effects of Technical Debt on Morale. Tech debt reduces morale: it negatively impacts developers’ confidence and their sense of progress. Managing tech debt increases morale.
Technical Debt Cripples Productivity. Developers waste 23% of their working time due to technical debt.
The Cost of Architectural Complexity. Architectural complexity is linked to a much higher defect rate, a significant decline in productivity, and a much greater probability of turnover.
The Causes of Unreliable Software. Organizational complexity is the strongest predictor of bugs in a software module.
Characteristics of Code Quality. Readability, Structure, and Documentation are defining properties for code quality.
How to measure developer productivity
Measurement approaches
How Google Measures Developer Productivity. An interview with two members of the Engineering Productivity Research team describing their approach to measurement.
How LinkedIn Measures Developer Productivity. LinkedIn takes a three-pronged approach to measuring productivity, which includes a quarterly, survey, real-time feedback tooling, and data collected from developer tools.
Shopify’s Developer Experience Survey Works. Shopify’s Developer Acceleration organization uses the survey to inform their roadmaps and measure the impact of their work.
How Peloton Measures Developer Experience With Surveys. What went into designing the survey, how it’s administered, and how insights are used.
Defining, selecting, and implementing metrics
Three-Bucket Framework for Engineering Metrics. How to select which metrics to report on.
The Goals, Signals, Metrics Framework for Selecting Metrics. An exercise to guide the metrics selection process.
Defining and Tracking Productivity Metrics at LinkedIn. An interview with Grant Jenks from LinkedIn’s Developer Insights team that dives into the nuances of different metrics, and how they’re defined and tracked at LinkedIn.
Measuring Flow and Friction. The process Google uses for creating and validating metrics, and how they measure flow and friction.
How Google Measures and Manages Tech Debt. The 10 categories of tech debt, how Google measures tech debt, and strategies for managing it.
Using OKRs in Software Engineering. The common challenges teams face when adopting OKRs.
An Inside Look at DORA. What DORA is, how the metrics are intended to be used, and how not to use metrics.
Strategies for improving productivity
Team-level improvements
2023 DORA Report. This year’s report found that teams that focus on the user have higher organizational performance.
Reducing Onboarding Time. Mentorship, documentation, team interaction, and well-chosen starting tasks are all factors that influence how quickly developers ramp-up.
Friction Between Product and Engineering. How to know whether this is becoming a bottleneck for a team, and strategies for addressing the problem.
Code Ownership and Software Quality. A case for either assigning ownership where there lacks a clear owner, or at least using weak ownership as an indicator of risk.
Larger coordinated improvements
Build Times and Developer Productivity. Even modest improvements to build times are beneficial. If teams are unable to make builds faster, they can make build times more predictable to improve productivity.
Etsy’s Multi-Year DevEx Initiative. An interview with former Etsy CTO Mike Fisher on why they decided to focus on developer experience and how their initiative worked.
How Google Measures and Manages Tech Debt. A list of strategies for managing tech debt.
Improving the On-Call Experience at Intercom. Key changes Intercom has made to their on-call experience over the years.
Moving to Remote Development Environments at Slack. Why and how Slack moved their entire development experience to remote environments.
Enabling Teams to Drive Their Own Productivity Improvements. The tactics used by Toast’s R&D Team Enablement function that enable engineering teams across the company to drive their own improvements.
Thanks for reading. If you found this issue useful, you might be interested in joining a conversation I’m hosting with Laura Tacho on DORA, SPACE, and DevEx, and how to choose which framework to use.
This is the final issue of the Engineering Enablement newsletter in 2023. Enjoy the holidays and I’ll see you on Friday, January 5th!
-Abi
Hey 👋 Abi,
Really appreciate the work you put into your newsletter. Thank you.
Have a nice one 🍺