# 談衡量開發者體驗的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 真的是很棒的制度 也是有那種只給一分鐘的前輩啦 > 地獄廚房風格