DevEx: What Actually Drives Productivity

My notes & takeaways (11)

Main question is “What should leaders measure and focus on to improve developer productivity?”
Developer experience focuses on the lived experience of developers and the points of friction they encounter in their everyday work. In addition to improving productivity, DevEx drives business performance through increased efficiency, product quality, and employee retention.
Improving DevEx increases not only productivity, but also satisfaction, engagement, and employee retention.

The Three Dimensions of DevEx

3 Core dimensions:

  • feedback loops
  • cognitive load
  • flow state

3 Core dimensions crosscut the 25 sociotechnical factors previously identified in research (SPACE)

Taken together, feedback loops, cognitive load, and flow state encapsulate the full range of friction types encountered by developers

Feedback Loops

quick feedback loops are associated to quicker course correction. Faster builds, more frequent deploys, shorter lead times are a part of this.

Shortening feedback loops—the speed and quality of responses to actions performed—is equally important to improving DevEx.

Fast feedback loops allow developers to complete their work quickly with minimal friction. Slow feedback loops, by contrast, interrupt the development process, leading to frustration and delays as developers wait or decide to switch tasks. Slow feedback loops cause additional interruptions when feedback from systems (such as an integrated test run) or people (such as review notes) is returned and requires immediate attention. To improve DevEx, organizations should shorten feedback loops by identifying areas where development tools can be accelerated (e.g., build and test processes, development environment setup) or human hand-off processes improved. Organizational structures should also be optimized to promote streamlined team interactions that minimize delay.

Cognitive Load

Cognitive load encompasses the amount of mental processing required for a developer to perform a task

To improve developer experience, teams and organizations should aim to reduce cognitive load by finding ways to eliminate unnecessary hurdles in the development process. Emphasis should be placed on creating well-organized code and documentation both to facilitate developers’ understanding of the systems they work with and to reduce the amount of context or task switching required to complete their projects.

Flow State

the concept of flow state, a mental state in which a person performing an activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment.

To improve DevEx, teams and organizations should focus on creating the optimal conditions for flow state. Disruptions should be minimized by clustering meetings, avoiding unplanned work, and batching help requests. Leaders should also recognize that flow state depends on creating positive team cultures that give developers autonomy and opportunities to work on fulfilling challenges.

What to Measure

Accurately measuring the full range of developer experience requires not only capturing developers’ perceptions and workflows across these dimensions, but also overall KPIs (key performance indicators) or “North Star metrics” that capture the bigger picture.
Well-designed KPIs should measure the outcomes that improvements to DevEx correlate with and seek to drive, including productivity, satisfaction, engagement, and retention

Break down results by team and persona

A common mistake made by organizational leaders is to focus on companywide results instead of data broken down by team and persona (e.g., role, tenure, seniority). As previously described, developer experience is highly contextual and can differ radically across teams or roles. Focusing only on aggregate results can lead to overlooking problems that affect small but important populations within the company, such as mobile developers.