Skip to content

Commit dc28478

Browse files
committed
Added blogs for DevEx Part 1
1 parent 83f37cd commit dc28478

File tree

5 files changed

+188
-2
lines changed

5 files changed

+188
-2
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,6 @@ yarn-debug.log
5151
.hugo_build.lock
5252
*.lock
5353

54-
public/
54+
public/
55+
56+
resources/_gen
Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
---
2+
title: "Measuring Developer Experience (Part 1 of 3): From Friction Logs to Dashboards"
3+
description: "A practical guide to measuring developer experience using friction logs, feedback loops, and automated dashboards with Apache DevLake. Includes actionable metrics, setup instructions, and common pitfalls."
4+
image: /img/dora-metrics.png
5+
tags: [developer experience, metrics, Apache DevLake, platform engineering]
6+
categories: [Developer Experience, Metrics, Engineering, DevLake]
7+
date: 2025-08-27T11:44:32+05:30
8+
slug: developer-experience-metrics-devlake
9+
estimated_read_time: 9 minutes
10+
last_validated: August 2025
11+
---
12+
13+
# Measuring Developer Experience: From Friction Logs to Dashboards
14+
15+
## TL;DR
16+
17+
**Developer Experience (DevEx)** is about how easy and satisfying it is for developers to get work done. Measuring it means combining qualitative signals (surveys, friction logs) with quantitative ones (build times, pull request cycle time). Tools like **Apache DevLake** help automate data collection so teams can track and improve DevEx systematically.
18+
19+
---
20+
21+
## Who It’s For & Prerequisites
22+
23+
This post is for:
24+
25+
* Engineering managers who want to improve team productivity.
26+
* Platform engineers building internal developer platforms.
27+
* API and SDK maintainers who care about adoption.
28+
29+
No prior DevEx research background is needed. You should be familiar with your team’s Git, CI/CD, and project management tools.
30+
31+
---
32+
33+
> **Disclaimer**
34+
> Developer Experience can’t be reduced to a single number. Metrics come from tools, surveys, and observations, but their meaning depends on the role. For example, Individual Contributors often care about build speed, Staff Engineers about system complexity, Managers and Leads about coordination, while Backend, Frontend, and QA engineers each face different friction. DX metrics should be read as signals, not absolute truths.
35+
36+
## Environment & Versions
37+
38+
* Example metrics assume GitHub + CI (GitHub Actions/Jenkins).
39+
* Apache DevLake (v0.20 or newer).
40+
* Docker and Docker Compose installed (tested on Linux/macOS).
41+
42+
---
43+
44+
## Why Developer Experience Matters
45+
46+
Good DevEx is not just about “developer happiness.” It shows up in hard outcomes:
47+
48+
* **Faster delivery** → fewer blockers, shorter cycle times.
49+
* **Lower turnover** → developers don’t leave because of tooling pain.
50+
* **Higher quality** → fewer hacks and skipped tests.
51+
* **Better adoption** → smooth onboarding for APIs and platforms.
52+
53+
---
54+
55+
## How to Measure Developer Experience
56+
57+
### 1. Task Success and Onboarding
58+
59+
* **What**: Time for a new developer to get a local environment running and make a first commit.
60+
* **Measure**: Record how long onboarding checklists take. Automate setup scripts.
61+
62+
---
63+
64+
### 2. Feedback Loops
65+
66+
* **What**: How fast changes are tested, built, and deployed.
67+
* **Measure**: CI job duration, test runtime, deploy speed.
68+
69+
---
70+
71+
### 3. Cognitive Load
72+
73+
* **What**: The number of steps or systems a developer must touch to complete a task.
74+
* **Measure**: Track docs usage, ask in surveys, or count steps in workflows.
75+
76+
---
77+
78+
### 4. Friction Logs
79+
80+
* **What**: A running log of points where developers got stuck.
81+
* **Measure**: Collect notes during onboarding or retros. Categorize issues (docs, tooling, unclear process).
82+
83+
---
84+
85+
### 5. Developer Satisfaction
86+
87+
* **What**: Subjective experience of using internal tools.
88+
* **Measure**: Lightweight surveys, e.g., “Rate your satisfaction with CI/CD on a scale of 1–5.”
89+
90+
---
91+
92+
### 6. Adoption and Drop-off
93+
94+
* **What**: For APIs or platforms, do developers keep using them?
95+
* **Measure**: Track active usage, churn, and reasons for drop-off.
96+
97+
---
98+
99+
## Automating Measurement with Apache DevLake
100+
101+
Manual tracking is useful but doesn’t scale. This is where **Apache DevLake** comes in. DevLake is an open-source engineering analytics platform that pulls data from your development tools into dashboards.
102+
103+
### What DevLake Can Track
104+
105+
* **Feedback loops**: CI/CD duration, build success/failure rates.
106+
* **Code review friction**: Pull request cycle time, review wait times.
107+
* **Adoption**: Active contributors across repos and projects.
108+
* **Onboarding**: Time to first PR merged for new contributors.
109+
110+
### Install DevLake
111+
112+
```bash
113+
# Clone repo and start DevLake with Docker Compose
114+
git clone https://github.com/apache/incubator-devlake.git
115+
cd incubator-devlake
116+
docker-compose up -d
117+
```
118+
119+
Open the UI at `http://localhost:9000` and connect GitHub, GitLab, or Jira.
120+
121+
### Example Dashboard
122+
123+
DevLake ships with Grafana dashboards. For example:
124+
125+
* **Lead Time for Changes** (from first commit to deploy).
126+
* **PR Merge Times** (distribution of review wait).
127+
* **CI/CD Success Rates**.
128+
129+
These give objective numbers that complement surveys and friction logs.
130+
131+
> ⚠️ **Note**: Metrics are proxies. A fast merge time doesn’t guarantee developers are happy — pair dashboards with qualitative feedback.
132+
133+
---
134+
135+
## Common Pitfalls
136+
137+
* **Vanity metrics**: Counting commits or lines of code doesn’t reflect DevEx.
138+
* **One-off surveys**: Experience changes over time — measure continuously.
139+
* **Ignoring context**: A “slow” 20-minute build may be acceptable in some pipelines, but not in rapid prototyping.
140+
141+
---
142+
143+
## Next Steps
144+
145+
1. Run a friction log with your team for one sprint.
146+
2. Track one feedback loop metric (e.g., CI time) manually.
147+
3. Deploy DevLake and connect it to your GitHub/Jira.
148+
4. Combine survey results + DevLake dashboards to prioritize fixes.
149+
150+
---
151+
152+
## References
153+
154+
* [Apache DevLake](https://devlake.apache.org/)
155+
* [State of DevOps Report](https://cloud.google.com/devops/state-of-devops)
156+
* [DORA Metrics](https://dora.dev/)
157+
* [ACM Queue: Measuring Developer Experience](https://queue.acm.org/detail.cfm?id=3454124)
158+
159+
---

hugo_stats.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"tags": [
44
"a",
55
"article",
6+
"blockquote",
67
"body",
78
"br",
89
"code",
@@ -69,6 +70,8 @@
6970
"is-5",
7071
"is-7",
7172
"is-8",
73+
"is-centered",
74+
"is-current",
7275
"is-family-monospace",
7376
"is-grouped",
7477
"is-grouped-multiline",
@@ -96,6 +99,11 @@
9699
"navbar-item",
97100
"navbar-link",
98101
"navbar-menu",
102+
"pagination",
103+
"pagination-link",
104+
"pagination-list",
105+
"pagination-next",
106+
"pagination-previous",
99107
"pl-4",
100108
"post",
101109
"post-archive",
@@ -124,25 +132,38 @@
124132
],
125133
"ids": [
126134
"-navigation",
135+
"1-task-success-and-onboarding",
136+
"2-feedback-loops",
137+
"3-cognitive-load",
138+
"4-friction-logs",
139+
"5-developer-satisfaction",
140+
"6-adoption-and-drop-off",
127141
"additional-notes",
128142
"ai-vs-genai-debate",
129143
"alternative-multiple-python-versions",
144+
"automating-measurement-with-apache-devlake",
130145
"closing-thoughts",
146+
"common-pitfalls",
131147
"common-use-cases",
132148
"common-use-cases-1",
133149
"conclusion",
134150
"connect-with-me",
135151
"data-structures-and-algorithms",
136152
"devops-and-tools",
137153
"discover-the-wide-variety-of-video-game-genres-from-immersive-role-playing-adventures-to-fast-paced-shooters-this-guide-provides-an-overview-of-each-major-type-of-game-their-key-features-and-what-makes-them-unique",
154+
"environment--versions",
155+
"example-dashboard",
138156
"generative-ai-create-synthesize-transform",
139157
"git-setup-first-time",
140158
"hello-dinesh-here-",
141159
"hlcss",
160+
"how-to-measure-developer-experience",
161+
"install-devlake",
142162
"introduction",
143163
"linux--unix",
144164
"macos",
145165
"main",
166+
"measuring-developer-experience-from-friction-logs-to-dashboards",
146167
"navDropdown",
147168
"navMenu",
148169
"next-steps",
@@ -153,6 +174,7 @@
153174
"programming-languages",
154175
"projects-and-repositories",
155176
"python-virtual-environment-setup-guides",
177+
"references",
156178
"search",
157179
"setting-up-your-git-environment",
158180
"side-by-side-comparison",
@@ -168,12 +190,16 @@
168190
"system-level---setup-global",
169191
"things-i-have-learned",
170192
"this-page-explains-how-to-create-and-manage-python-virtual-environments-across-linux-unix-macos-and-windows-virtual-environments-isolate-dependencies-for-each-project-preventing-version-conflicts",
193+
"tldr",
171194
"toc",
172195
"traditional-ai-predict-classify-optimize",
173196
"traditional-ai-use-cases-vs-generative-ai-use-cases--what-developers-should-know",
174197
"types-of-video-games-genres--descriptions",
175198
"verification",
176199
"web-development",
200+
"what-devlake-can-track",
201+
"who-its-for--prerequisites",
202+
"why-developer-experience-matters",
177203
"windows"
178204
]
179205
}

resources/_gen/assets/css/bulma.css_7d3d4a76d7535680a8c833d536463552.content

Lines changed: 0 additions & 1 deletion
This file was deleted.

static/img/dora-metrics.png

1.71 MB
Loading

0 commit comments

Comments
 (0)