Infra 團隊適合 Scrum?
朋友 Scott Liao 問了一個好問題:
底下整理當時在 FB 上的想法。
Updated 2023/07/19: 本文收錄在個人著作 《SRE 實踐與開發平台指南》 - 2023/08 上市
視野與維度
我的想法如下圖:
這個討論以 Infra 為主體,所以二分法如下:
- X 軸: 需求來源:分
內部發動
、外部驅動
.- 內部指 Infra / SRE / Ops Team 自行提出的需求。
- 外部指的是 Infra Team 以外的,像是 Feature or Mission Teams
- Y 軸: Value Area (參考自 VSTS 裡的 Value Area),也就是任務分類,分兩種:Business / Arch,分別指的是
業務導向需求
與工程導向需求
。業務導向需求
:有明確的商業目的,滿足客戶,或者改善什麼具體業務目標,通常是由業務團隊驅動、整體公司來看是 #外部驅動。工程導向需求
:偏向工程團隊自行驅動,像是效能改善、導入 Service Mesh、導入 IPv6、導入 Service Discovery、主動監控預警系統、動態流量監控系統 … 等工程架構任務,屬於內在驅動
。
- 方法:圖中的圖示分別表示 Scrum、看板、Waterfall
重新定義問題是:
Infra / SRE / MIS / DBA 應該跑
Scrum
or看板
?
上圖 Fig1 中的四個象限,可以用不同方法來執行。其實不止 Scrum、看板,Waterfall 也可以,因為實務上的 Infra / SRE / Ops / MIS,很多時候會需要跟第三方 SI 合作,常會發生 callback 有去無回的狀況。大部分的人說看板最適合,但我覺得:
是比例問題,不是零或壹的問題。
回到問題本身,其實我覺得要先定義的不是是用哪個方法,而是要先定義團隊的工作屬性與範圍,問題中提到很多職務:SRE / Infra / Ops / MIS
… etc,實際上每家公司定義都不太一樣。去年的這場演講 Ops as Code using Serverless,有一張圖在說明這些職務的差異。下圖就是整理職責、角色、任務,以及他們的分佈:
這張圖可以看得出來,相關的職能與任務分佈,所以看板會是最大的比例,但是有些跟外部 SI 整合、有階段進度的,看板就不適合了,反而 Waterfall 最適合。
現實跟理想
圖中表示的方法是理想的。從兩個角度來討論現實跟理想的距離:需求量分佈
、人力資源分佈
需求量分佈
下圖是 理想
的需求分佈圖,圖中的 面積
代表著需求分佈比例,這是理想。
但實際的需求分佈是這樣的,通常是依照優先序排出來的:不成比例
圖 2-2 是實際的狀況,但是那些被排擠的需求去哪了?所以實際的需求排擠衍伸的問題:技術債
,就是原本該做,但是被排擠出去的面積,如下圖紅色區域。
這些原本該做的,被無限延後的排擠的,通常就是時間管理象限中的 重要、不急
的事情。對時間管理有意識的人、對於系統性思維有認識的人,都會知道:
重要、不急
不做,時間久了,就會變成重要、緊急
這些事情,通常是 Hardcore、需要磨練、經年累月養成。常見的現象就是用短期解填補,然後,就再也沒有然後了。所以系統性思維的現象又出來了。通常這時候要就、要提出什麼解決方案,都是需要非常巨大成本的。
千金難買早知道,早知道值千金。
人力資源分佈
談完了需求分佈與排擠問題衍伸的技術債,接下來的就是對應到人力資源分佈的問題了。同樣的,先看看理想長得怎樣,面積代表人力資源的分佈比例:
現實是殘酷的,下圖是實際的 人力資源分佈
概況:
人力資源不均,衍生的問題:
- 影響任務:系統炸鍋、資安外洩、業務拓展困難、成本飆高
- 人力與管理問題:團隊人員爆肝、士氣低落、看不到自己的職涯願景、人力出走
Infra 適合 Scrum?
結論是:
跟 Scrum 或看板沒啥關係,而是組織怎麼看待 Dev & Ops 的協作與任務問題。
隕石 一來,地表上應該沒人擋得住。
想法
這篇整理的重點是把一些普遍的現象用邏輯性的方法整理出來,重點是要讓大家了解現象本身衍生的問題。可能有人會覺得,這些彷彿都是抱怨,沒有提出解決問題的方法。通常會這樣想的人,可能沒有好好的去思考這些現象,只想用短期解,說直白的:
頭痛醫頭,腳痛醫腳
完全沒有掌握整體性,也完全沒有章法在處理需求,更別提無法辨別 SRE 與 MIS 在職能上的差異。
整理 GitHub Post-Incident Analysis 的時候,最後我引用一段故事,同樣的話再複製過來,如果你是管理階層,請好好讀讀這段故事。
扁鵲三兄弟的故事
扁鵲是中國古代歷史上非常著名的故事,這個故事最早出於《鶡冠子·卷下·世賢第十六》中卓襄王與龐暖的問答。原文如下:
煖曰:「王獨不聞魏文王之問扁鵲耶?曰:『子昆弟三人,其孰最善為醫?』扁鵲曰:『長兄最善,中兄次之,扁鵲最為下。』魏文侯曰:『可得聞耶?』扁鵲曰:『長兄於病視神,未有形而除之,故名不出於家。中兄治病,其在毫毛,故名不出於閭。若扁鵲者,鑱血脈,投毒藥,副肌膚間,而名出聞於諸侯。」魏文侯曰:「善。」使管子行醫術以扁鵲之道。 此借扁鵲區別醫術高下喻治國方略之高下,未入《史記•扁鵲列傳》。魏文王,即魏文侯,前445——前396年在位。
底下翻譯是網路上找到的:
魏文王問名醫扁鵲說:「你們家兄弟三人,都精於醫術,到底哪一位最好呢?」
扁鵲答:「長兄最好,中兄次之,我最差。」
文王再問:「那麼為什麼你最出名呢?」
扁鵲答:因為 長兄治病於發作之前,中兄治病於情嚴重之時,我是治病於病情嚴重之時。
長兄治病,是治病於病情發作之前。由於一般人不知道他事先能剷除病因,所以他的名氣無法傳出去
中兄治病,是治病於病情初起時。一般人以為他只能治輕微的小病,所以他的名氣只及本鄉里。
而我是治病於病情嚴重之時。一般人都看到我在經脈上穿針管放血、在皮膚上敷藥等大手術,所以以為我的醫術高明,名氣因此響遍全國。
其實事後控制,不如事中控制,事中控制不如事前控制 !
延伸閱讀
站內資料
- 演講:Serverless All-Star - Ops as Code using Serverless
- GitHub Post-Incident Analysis
- 演講:從緊急事件 談 SRE 應變能力的培養
- Scaling Infrastructure Engineering at Slack
- 天賦與努力
- 談談敏捷開發的看法
- 個人著作《SRE 實踐與開發平台指南》 (2023/08 上市)