專職?
那天讀書會討論到 Release 的角色 (不管是叫 DevOps Engineer or Release Engineer) 是否應該專職?
討論到最後一定分成兩種:
- 團隊成員輪著做,不應該專職 (偏向 #Agile 的概念)
- 技術 know how 很深,應該專人專職 (偏向傳統、大型組織)
我想想都對、也都不對,因為這兩個都沒有提到前提條件,整理有以下:
- SOP (Pipeline) 未確立之前:一定是專人專職,因為狀況很複雜,流程一直在變,必須用 #技術 來駕馭、控制整個過程。
- SOP 很清楚的:誰來點都可以,反正要做的就是那些 A,B,C,.... 只要能夠透過標準化的流程,透過一段時間訓練就可以上手的。這表示已經經過時間考驗的結果,經過 (1 焠鍊後的結果。
所以表示 2) 要先有 1) 的結果與歷練,才有辦法在不影響任務的前提下, #輪著做,再說一次:不影響任務的前提!如果會影響任務,那這件事情會造成的現象稱為:#壓力
除了 SOP,另外要提的是 #範圍:
- 小範圍:互聯網的軟體,Startup 的核心團隊,或者 Microservice 的 2pizza team,這種一定是大家都要能相互 cover
- 大範圍:大型產品(作業系統、火箭、汽車),組織很龐大的 team,例如 M$ 的 Windows Team or Nasa 火箭發射... 這種的團隊一定是專職專人
現在的 CI/CD 工具鍊複雜度以及觀念,甚至是架構,跟十年前比起來其實差不多。但是擴散的面積已經跟以前不一樣,以前可能只有部分人有辦法看到全貌,現在是大家都可以看到全貌。
但是問題就在於 #看到全貌 != #可以駕馭全貌 ... 這是兩回事。#駕馭需要 #技術能力、專業 與 經驗;了解全貌需要 #視野、判斷力、決策力,甚至是戰略。
現在的問題通常有以下:
- 無法看到全貌
- 無法駕馭技術
- 前述兩者的排列組合,有三個狀況會造成負面狀況
要 #成事,兩者缺一不可。能看到全貌,卻無法駕馭,那就像在玩遙控車;可以駕馭,看不到全貌,就跟酒駕沒兩樣,狂踩煞車,卻不知為何而戰。
回到開頭的是否需要專職的 DevOps Engineer or Release Engineer?你現在有答案了?
原始資料
- 發表時間:2018/09/14
- 原文連結