Inside Look: Measuring Developer Productivity and Happiness at LinkedIn

LinkedIn Engineering Team
13 min readintermediate
--
View Original

Overview

The article discusses LinkedIn's approach to measuring developer productivity and happiness through the development of the Developer Insights Hub (iHub). It highlights the importance of understanding developer experience and presents a framework for selecting metrics, designing user experience, and building a scalable system architecture.

What You'll Learn

1

How to select effective metrics for measuring developer productivity and happiness

2

Why a user-friendly design is crucial for presenting complex data

3

How to implement a scalable data processing pipeline for metrics

Key Questions Answered

What metrics are used to measure developer productivity at LinkedIn?
LinkedIn measures developer productivity using metrics such as Developer Build Time, Code Reviewer Response Time, Post-Commit CI Speed, CI Determinism, Deployment Success Rate, and Net User Satisfaction (NSAT). These metrics help assess both the effectiveness and efficiency of developers in their tasks.
How does the Developer Experience Index (EI) work?
The Developer Experience Index (EI) is a scale from 0 to 5 that indicates the quality of a developer's experience based on metrics like build time. For instance, a local build time over 5 minutes is considered poor, while under 10 seconds is excellent. This index helps teams understand their performance relative to developer sentiment.
What challenges did LinkedIn face when designing the iHub?
LinkedIn faced challenges in aggregating and visualizing metrics effectively without overwhelming users. They focused on layering information to provide quick overviews while allowing deeper dives into data, ensuring users could interpret metrics easily without confusion.
How does LinkedIn ensure the scalability of their metrics system?
LinkedIn's metrics system is designed to be scalable by separating metric configuration from processing logic. This allows teams to onboard new metrics without code changes, ensuring flexibility in adapting to evolving needs for developer productivity tracking.

Key Statistics & Figures

Unique visitors to iHub
400 monthly unique visitors
This increase reflects the growing interest and adoption of the iHub among engineering leaders and productivity champions at LinkedIn.
Initial unique visitors to iHub after MVP launch
40 to over 200 within a single quarter
This significant increase demonstrates the effectiveness of early adopter feedback in refining the product.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Database
Mysql
Used for storing computed metrics data.
Data Streaming
Kafka
Utilized for handling real-time data streams.
Data Storage
Hadoop
Serves as the staging area for data processing.
Data Processing
Pyspark
Chosen for metrics computation due to the team's familiarity with Python.
Frontend Framework
Ember
Used for building the user interface of the iHub.
Web Server
Gunicorn
Serves the metrics data to the frontend.

Key Actionable Insights

1
Implement a metrics selection framework to align on goals and signals for developer productivity.
Using a structured approach like the Goals-Signals-Metrics framework can help teams focus on what truly matters, ensuring that the metrics chosen are relevant and actionable.
2
Design user interfaces that prioritize simplicity and quick access to information.
By layering information and providing intuitive navigation, teams can reduce cognitive load and improve the user experience, making it easier for managers to derive insights from complex data.
3
Utilize a standardized data processing pipeline to enhance scalability and adaptability.
Creating a pipeline that separates configuration from processing allows for easier onboarding of new metrics, which is essential as teams evolve and require different data insights.

Common Pitfalls

1
Overloading users with too much information can lead to confusion and disengagement.
This often happens when dashboards present too many metrics without clear organization. To avoid this, it's essential to layer information and prioritize the most relevant metrics for quick insights.