Key Insights for Engineering Leaders from DORA research
Google recently released its annual "Accelerate State of DevOps Report 2023" (link). This research, now in its ninth year, helps engineering teams understand their performance and its impact on the organizations. According to The LeadDev Engineering Team Performance Report 2023 (link), half of the respondents familiar with DORA metrics find it an effective measurement framework.
DORA can be an excellent material for upper-level engineering leaders to get hints for driving the entire tech organization. The whole report is full of such insights, and if you don't want to read a nearly 100-page summary, you should take a look at the executive summary:
What Engineering Managers and Team Leads Can Learn from DORA
The State of DevOps report can also be a great source of inspiration for first-level Engineering Leaders. In organizations where engineering is empowered, culture is cultivated from top-down and bottom-up approaches. Below are several ways to leverage this research to enhance your team's and organization's performance. Here, you can find a cheat sheet PDF that sums it up.
Five Key Insights from the DORA Report
The report identifies five crucial aspects of a company's performance related to its engineering team:
Organizational Performance: This includes revenue, customer value, and market share of the primary product or service.
Team Performance: The team's capabilities in creating value, innovating, collaborating, and adapting to change.
Employee Well-Being: A combination of factors like burnout, productivity, and job satisfaction.
Software Delivery Performance: Assessed through four key metrics:
Deployment frequency
Lead time for changes
Change failure rate
Time to recover from failed deployments
Operational Performance: The availability, performance, and correctness of products.
These aspects are interconnected:
Organizational performance is the ultimate goal for the company to succeed. It strongly depends on team performance and software delivery performance.
Team performance depends on employees' well-being as well as software delivery performance.
Operational performance enriches the above aspects when invested in consequently.
Tips for Team Leaders
When planning team growth, shaping culture, or evaluating performance, evenly distribute your focus across all aspects: organizational and team performance, employee well-being, SDLC, and observability. It'll help you with building a high-performing team.
Cultivating a Team Culture
The report highlights:
"Teams with generative cultures achieve 30% higher organizational performance."
A generative culture emphasizes creativity, innovation, and collaboration in software development. Here are key aspects of generative culture, according to Westrum's Organisational Cultures:
Open communication and collaboration: encouraging team members to share ideas, insights, and feedback freely, creating an atmosphere where all voices are heard and valued.
Continuous learning and adaptation: staying updated with the latest technologies and methodologies, encouraging experimentation, and learning from successes and failures.
Autonomy and the authority to make decisions: fostering a sense of ownership and responsibility, leading to innovative solutions and a higher commitment to quality.
Quality and customer focus: not just on meeting deadlines but also on delivering high-quality work. This includes paying close attention to customer needs and ensuring that the end product meets these requirements.
Psychological Safety: Creating an environment where team members feel safe to express their thoughts and ideas without fear of negative repercussions.
Advice for Engineering Leaders
Culture is hard to define, and it mostly comes from the top. But it shouldn't stop you from influencing the company's culture bottom-up. Culture is:
What you say,
How you behave,
How you cooperate,
How you treat others,
What values drive you,
What you focus on, what you ignore.
The team's culture comes first from its leader.
User-Centrism
The report emphasizes:
"Teams focusing on the user have 40% higher organizational performance."
"A user-centric approach to building applications and services is a strong predictor of overall organizational performance."
Repeated multiple times on Practical Engineering Management - the role of technology in a product company is to solve customers' problems. You can deploy fast and build tons of code. But without the user in mind, it may have no value.
There are a few critical characteristics of a user-centric team, defined by the report:
Understand the needs of their users.
Aligning the team towards meeting user needs.
Prioritizing work in line with user feedback.
Hints for engineering leaders
As a leader, you should build your expectations and incentives around delivering user value. Rather than focusing on a number of features delivered, use product metrics they influenced (like improved conversions, increased number of customers, reduced friction, improved user experience, etc.).
Depending on the team you lead (product development, operations, or platform engineering), here are some specific hints:
Product development team
Start with building simple business metrics for each feature you own. Build a basic understanding of customer behavior, friction points, and success rates. Don't celebrate the launch of your product. Celebrate the first customers using it instead.
Platform engineering teams
Platform teams should treat developers as users of their solutions. Rather than building and expecting engineers to adapt solutions, start with understanding how developers work. Focus on identifying and fixing areas of friction, and use metrics to back your hypotheses.
Operations/SRE teams
Don't just optimize technical metrics (CPU/memory usage, number of instances, etc.). Start with introducing the basics of SRE practices. Identify SLIs (service level indicators) and set SLOs (service level objectives) related to users' happiness. If your app crashes or core service fails, they are unhappy. Start with building your metrics and objectives exactly there.
Read more:
SDLC Performance
The report classifies 18% of respondents (36,000 professionals) as 'Elite Performers,' characterized by:
Deployment frequency: on-demand
Change lead time (from committed to deployed): less than one day
Change failure rate (how frequently a deployment introduces a failure): 5%
Failed deployment recovery time (time to recover from a failed deployment): < 1 hour
Software development performance metrics shouldn't be goals themselves. They should support delivery of value for customers.
Hints for Engineering Leaders
The main contributor to SDLC performance is the size of changes you deliver. Smaller batches are easier to test and push through the delivery process. They are also easier to recover from if there is a failure. Start with reviewing your pull requests, their size, and the time it takes to finalize them.
Another contributor can be a technical debt, which I covered on PEM in the past:
DORA research suggests other key contributors:
Loosely coupled architecture
Fast code review process
Let’s Stay in Touch
If you want to discuss the research and the strategies for implementing it in your company, feel free to reach out to me at mirek@practicalengineering.management. I'm happy to share my experience implementing these practices in engineering organizations.