As engineering organizations grow, maintaining developer productivity becomes increasingly challenging. At Uber, this challenge became apparent as the engineering team scaled. Developers frequently encountered bottlenecks, spending valuable time waiting on processes like builds (e.g., bazel build, docker build) or Git operations (in a monolith/monorepo)—time that could have been spent coding, iterating, and deploying new features. While traditional metrics like DORA provide a helpful overview of team productivity, they fail to diagnose specific workflow blockers affecting individual productivity.
Uber developed Local Developer Analytics (LDA) to bridge this gap, a tool highlighting the granular issues within developer workflows. Today, DevZero furthers this concept with Open Developer Analytics (ODA). This open-source solution empowers engineering teams to identify and resolve bottlenecks with real-time, actionable data and seamless integration into managed developer workspaces.
The Challenges that Led to LDA at Uber
At Uber, even minor productivity improvements could significantly impact the entire engineering organization (5 minutes saved on an operation a developer runs 10 times a day for a team of 5000 engineers means 4167 hours saved daily!). Developer surveys revealed that engineers felt less productive than they could be, often due to hidden idle times in their workflows. CI tests, long local builds, and slow Git operations were common sources of delay, yet these bottlenecks were largely invisible in high-level metrics like DORA. Uber’s leadership recognized the need for a tool to identify these productivity drains in real time, enabling targeted optimizations.
How the Idea for LDA Took Shape
Uber’s engineering leadership wanted to understand better where developer time was lost, especially with feedback from NPS surveys indicating room for productivity gains. They set out to create a system that would capture granular data on developer workflows, explicitly focusing on command executions at the terminal level. With LDA, teams could measure delays in real-time, gaining actionable insights into where time was spent and which parts of the workflow needed improvement. Even a 1% productivity boost would be valuable in a company of Uber’s size, making this data essential.
How LDA Rolled Out Across Teams
Uber’s mature device management system made rolling out LDA across teams relatively easy. Feedback from engineers varied—some found the tool invasive and worried it might be used for performance tracking, while others saw its potential to make workflows more efficient. Clear communication around LDA’s purpose—to enhance productivity, not monitor performance—was crucial to its acceptance. This initiative demonstrated the importance of leadership buy-in and communication in adopting tools that measure developer workflows.
Key Insights: Bottlenecks Uncovered by LDA
The most prominent discovery from LDA was realizing that build times were a significant productivity bottleneck. Tracking build performance over time allowed Uber’s engineering teams to monitor the impact of optimizations, adjust configurations, reduce dependencies, and reallocate resources. This data-driven approach empowered engineers to streamline workflows and reduce idle time, ultimately accelerating development cycles across the organization.
Where DORA Metrics Fall Short and How LDA Complements Them
While DORA metrics like Deployment Frequency and Lead Time for Changes provide valuable insights into team throughput, they lack the detail required to diagnose root causes of inefficiencies within individual workflows. DORA might show that Deployment Frequency needs improvement, but it doesn’t reveal why productivity stalls or identify specific steps where delays occur. LDA filled this gap by capturing command-level data on individual workflows, allowing Uber to pinpoint precisely where time was lost and enabling focused improvements.
For example, if developers were spending significant time waiting on build commands, LDA’s insights could help teams target that specific area, reducing build times and, as a consequence, idle time. This level of granularity was crucial for Uber’s engineering teams to improve productivity effectively.
DevZero’s ODA: Building on LDA’s Foundation with a Proactive Approach
From Uber’s experience, DevZero developed Open Developer Analytics (ODA) as an accessible, open-source extension of LDA’s functionality. While LDA was a proprietary solution at Uber, ODA is designed to be widely available and easily integrated into managed workspaces, simplifying setup and deployment. This proactive integration eliminates the need for complex device management, allowing teams of all sizes to gain real-time insights into productivity bottlenecks without specialized infrastructure. By open-sourcing ODA, DevZero empowers engineering teams to implement terminal-level analytics, helping developers understand where time is lost and optimize workflows with specific, actionable data.