# 談衡量開發者體驗的DevEx框架 - 李智樺(Ruddy 老師)
{%hackmd @HWDC/BJOE4qInR %}
>#### 》[議程介紹](https://hwdc.ithome.com.tw/2024/session-page/3205)
>#### 》[填寫議程滿意度問卷|回饋建言給辛苦的講者](https://forms.gle/Eyb36wFmE9K9wbC98)
[參考資料](https://onedrive.live.com/?authkey=!AO-wQIOO_mDn0Sc&id=68B24674607C69D9!359021&cid=68B24674607C69D9)
---
[TOC]
---
## 開發者體驗就是開發者工作中體驗的總和
包括開發者如何感受、思考和評估他們的工作
## DevEx框架的目的
解決開發者工作中的中斷
工具的摩擦:從改扣到上雲端,中間需要多少步驟與時間
明確的任務。
不要用截上時間來阻止我開發,而是用意義,到時間之前我自然就會做好
### 專注於衡量
DevOps的精神:追逐速度
ACCELERATE:精益軟體 與 DevOps背後的科學
你改了多久可以發布,就是Dev的能力,就是Ops的能力
主管要關注開發者體驗,組織單位怎麼會讓開發者滿意的動作
什麼是DX?
工程師開發的時候覺得很爽,這是錯的,,重點是每天接觸他都不厭煩還有有幸福的感覺
> 不是一個爽個可以解釋的.
爽可不可以度量?
## **DevEx What Actually Drives Productivity**
> [DevEx: What Actually Drives Productivity](https://queue.acm.org/detail.cfm?id=3595878)
阿比野田創立
《[An Actionable Framework for Understanding and Improving Developer Experience](https://ieeexplore.ieee.org/document/9785882)》唯一對這個作解釋的
找到了25個因素來衡量DevX
(社會技術系統)
社會影響技術,技術影響社會。 -> 雙向
(技術社會系統)
只考慮技術如何影響社會->單向
### SPACE框架
將生產力的衡量分為五個核心維度:
1. 滿意度與幸福感 Satisfaction and well-being: 衡量開發者對工作的滿意度和整體幸福感,這對於他們的持續生產力至關重要。
(你相信你在工作的時候覺得幸福嗎? 生命歷程圖,上面是高興的下面是不高興的)
2. 績效 Performance:包括定量的輸出指標,在衡量開發者在既定時間內的工作產出。
4. 活動 Activity:測量開發者在工作中的具體活動,如代碼提交、測試執行次數等。
5. 協作與溝通 Collaboration and communication:評估開發者與其他團隊成員之間的協作和溝通的頻率和質量。
6. 效率與流暢度 Efficiency and flow :分析開發者在不被干擾的情況下完成任務的效率,以及是否達到心流狀態。
### SPACE框架: 北極星指標
北極星指標 North Star Metric
運用一個數字用來衡量企業或組織在關鍵業務領域的績效指標。 它的核心理念是找到一個能夠代表公司長期成功的關鍵指標,並以此來驅動公司的成長策略和日常運營。
* 是成長還是下來?
* facebook的指標是什麼? 客戶量.
- DevEx 測量 KPI 的方法是什麼?
- 開發者滿意度調查 Developer Satisfaction Surveys -問卷
- 每季做一次
- 開發效率指標 Development Efficiency Metrics ( 提交頻率、平均恢復時間 MTTR )
- 開發者生產力指標 Developer Productivity Metrics ( Code Review Rounds
- 工具和流程的採用率
- 系統穩定性和品質指標
### 原文
綜合KPI指標
### 專案開始之初 首重看清全貌
* 思考一下你的後退一步是什麼?
* 真實世界是什麼? vs 你自己個人的真實世界
### 研究的問題
1. 哪些重要因素影響開發者體驗?
2. 哪些背景特徵影響因素對開發者體驗的重要性?
3. 哪些障礙阻礙開發者及其團隊改進影響開發者體驗的因素?
4. 開發者及其團隊用哪些策略來改進開發者體驗?
5. 當負面影響的因素未得到改善時,開發者會採取哪些應對機制?
### 開發體驗不佳會怎樣
* 當改善策略無效時,開發者會採取一些應對機制,如:
* 專注於個人項目
* 驗證負面體驗 (接受並承受負面體驗,士氣不彰)
* 加班
* 停止發聲
* 減少參與
* 利用系統漏洞
* 離職
- 給他一個任務是錯誤的解法,應該給他跟其他人互動的機會 e.g. 給慢慢給他一群人, 讓他帶團隊, 給他發揮..
- 資深成員的離職對公司是很大的損失。這種人離職他會留下來多少 know how? 20%? 10%? 可能都不到
### 影響開發者體驗的因素
- 開發和發布:包括開發過程中的工具、技術、流程和基礎設施。
- 減少摩擦
- 產品管理:包括需求的清晰度、產品的目標和方向。
- 協作和文化:團隊之間的溝通、合作、文化氛圍。
- 開發者流和滿足感:工作中能否進入**心流**狀態,並感到滿足。
- 什麼時候可以進入"心流"? 洗澡、開車. 在封閉空間, 專注.
- 心流是很難得的體驗, 工程師肯定會進到心流, 但問題是你維持多久?? 很怕被打斷, 手不要擺到頭.
- 挑戰難度和你的技能程度相當時,會容易進入心流
### 影響因素重要性的背景特徵
- 個人特徵:開發者的經驗、個性和工作偏好
- 團隊特徵:團隊的規模、組織結構、合作方式。
- 組織特徵:公司的文化、政策和目標。
- 專案背景:專案的性質、複雜性和時程要求。
開發者體驗最支持的就是staff engineer,但是台灣這種職缺太少,另外一條就是管理值得路
### 改善開發者體驗的障礙
- 優先級低:改善開發者體驗的問題沒有被優先處理。(工程師的聲音沒有人聽)
- 無法量化問題:一些問題難以量化,因此難以引起重視。
- 缺乏可見性/認識:組織內部對這些問題的認識不足。
- 很少老闆認為80/20理論是對的
- 缺乏認同和所有權:改善開發者體驗的責任不明確或無人負責。
- 不明確的期望:對於改善目標和方法缺乏明確指引。
- 缺乏激勵:缺少推動改善的激勵措施。
- 無明確的改進過程:缺乏系統化的改進過程和方案。
- 組織政治:組織內部的權力關係和政治因素阻礙了改進。
### 改善策略
體驗的三個主要維度
- 認知/意志/情況 => 無法量化, 只好用問卷
- 關注是什麼? 主管的關注?
理解DevEx
- 心流
- 回饋循環
- 認知負荷
進入幸福忘我的心流,忘記時間
Always multi-task
跟主管聊聊
### 開發者體驗幸福模型FLOW
當你感到焦慮/放鬆時, 到底是往哪走.
如果你不會而焦慮,去學,你是工程師!
如果你是主管,充實他的技能(減輕焦慮) 或是調整他的項目
### 認知負荷理論CLT
- 內在負荷:任務本身的複雜性有關,無法避免
- 外在負荷:通常可以控制或減少
- 額外負荷:積極管理,提升學習效果
合計為:總負荷
工程師always接受挑戰, 學不完, 怎麼辦? 想辦法讓自己進入**心流**.
### 認知負荷是最值得投資的,
- 你有多強就是你的認知有多強
- 方法:Assign 一個Mentor 給新人
- Mentor - 找一個正確的mentor來帶你.
- 工程師要自己找 Mentor
- 找對人, 問對問題.
### 職場裡得三種人
- 付出者:樂於分享不求回報,天才創造者
- 平衡者:追求平衡與互惠
- 獲利者:追求利益,天才
開發工作包括分享與協作,所以長遠來看**付出者**最容易成功
# 工程師尤其要彼此協助,開發者體驗才會更好!
---
#### 推薦書單:
* [DevOps ACCELERATE:精益軟體 與 DevOps背後的科學](https://www.tenlong.com.tw/products/9789863126959)
* 這本書你沒有怎麼辦, 我有...XD
* 去外面天瓏買, 外面有賣喔? OK
* [Staff 工程師之路|獻給個人貢獻者成長與改變的導航指南 (The Staff Engineer's Path)](https://www.tenlong.com.tw/products/9786263246966)
* [心流:高手都在研究的最優體驗心理學(繁體中文唯一全譯本,二版](https://www.books.com.tw/products/E050152877?srsltid=AfmBOoqRTzZdasP1kH70ov-JTnOAn1qIrkcro9067Kwlgo4-3Qc8N0Z_)
* [給予:華頓商學院最啟發人心的一堂課 (Give and Take)](https://www.books.com.tw/products/0010620643)
==以下聊天區==
好潮的講者
很常說..我的天阿~
高興 vs 不高興 => 生命歷程圖.
真的很有傳教士的感覺,被傳教了(稱讚意味)
> 超專業書商(X
> 天瓏推銷員(誤
很不幸的我們聽了這堂課
好喜歡這個講者XD
離職 ? 當感到不满的時候, 只會關注自己的項目.
貸款怎麼辦? 誰叫你當初要貸款.
剛才是不是有人說 換一間XD
什麼時候人的思考最敏銳呢?通常是在洗澡的時候XDDD
講師好扯,講了好多東西都搓到我心裡
人碼合一
(氣刀體一致)
切記,寫 code 時手不要放在頭上,這是四十幾年來累積的後果 (光)
- 很少老闆認為80/20理論是對的 ??
真的是這樣嗎???
"娛樂"是快樂的, 但幸福嗎? 有心流嗎? 很短.
工作
沒有人可以解釋這個圓,因為他沒講;我問了AI他也不知道
AI如果知道就危險了(XD
mentoring 真的是很棒的制度
也是有那種只給一分鐘的前輩啦
> 地獄廚房風格