TOC Thinking Processes 的 UDE (undesirable effects) → CRT (current reality tree) 推導過程,雖然燒腦,卻非常犀利,直指核心。私底下,我也很喜歡蒐集各種 UDE 言詞,畢竟高德拉特說:「總是要從人們最擅長的步驟做起,而每個人都最擅於發牢騷和抱怨。」(語出《絕不是靠運氣》p.303)

原始的 UDE 言詞,往往過於零碎,我喜歡先用 affinity diagram 之類的手法前置處理過,比較容易聚焦。

今年七月我在 DevOps Summit 2016 的〈從限制理論看 DevOps〉演講中,示範從原始問卷逐一歸類 UDE 的過程。當時是我第一次在公開場合展示這種手法,為了戲劇效果(的確有效),也為了讓觀眾理解這種思路,過程雖冗長,但或許有其必要。

不過,緊接而來的九月份 Container Summit 2016 演講,一樣只有 40 分鐘,應該要聚焦在主題身上。我也不想一再套用同樣的演講鋪陳模式,想嘗試不一樣的。

請循其本〉一文曾預告:

我在今年九月 Container Summit 2016 的專題演講〈Docker 導入:障礙與對策〉,大致上就是秉持這種「叩其兩端而竭焉」加上 TOC 思維方法的角度,從 Docker 的 UDE 一路推導至核心衝突。血淋淋,但看到癥結,才能對症下藥(或許是猛藥⋯⋯)。

因此,我決定先公開「從原始問卷逐一歸類 UDE」這部分的結果。屆時,雖然可能少了些 "me, too!" 的笑聲或嘆息,但我就可以專心從歸納出來的這 15 條 UDE 出發,正面迎戰 CRTevaporating cloud。順便也讓對這議題感興趣的朋友,自己思考看看,如果是你,會如何處理抵制、擘畫導入?

請接招!


原始素材:3/19 針對 Docker 同好發的線上問卷,可能會有自願者偏誤 (volunteer bias)。

各 UDE 的順序,僅代表我的某一種鋪陳順序,不必然代表難易程度、優先順序、實施順序。


UDE #1:與既有的 VM 經驗差異大

  • Docker 常跟 vSphere 比較,最後還是選熟悉的 vSphere 最好。
  • 操作方式與以往使用 VM 經驗差異很大


UDE #2:對 Docker 的 build 環節有疑慮

  • 原服務架構的拆解、封裝
  • 寫 dockerfile 需要具備一定的水平,base image 的選擇,安裝依賴到讓 app 跑起來,volume 該掛載到哪裡才安全 (HA),考慮 image 大小……
  • 依照 Docker Hub 的 dockerfile 重做自己要的 docker,過程中都會發生錯誤
  • 專案程式時常需要 update,也就代表要時常 build image。


UDE #3:對 Docker 的 ship 環節有疑慮

  • 需要管理 private registry。
  • DevOps 前端工程師並不認同 Docker 部署方式


UDE #4:對 Docker 的 run 環節有疑慮

  • Docker filesystem 是 temporary,很多人覺得不習慣
  • 某些軟體對 Linux 底層可能到 Docker 就無法正常運作,例如 mount volume 這種操作


UDE #5:使用介面不友善

  • 沒有一個好的管理介面,很多東西都得自己刻或設定
  • 不是很流暢的使用者經驗,必須另外學過才能順暢操作
  • 一開始的指令,對初學者來說頗複雜


UDE #6:Windows 問題


UDE #7:不願改變既有習慣

  • 原來的維護方式,對現有的維護人員已是基本概念,除去了這些,未來的維護不就失去工作。
  • 要導入,就要讓相關人員學習如何使用 Docker,有人會反彈
  • 如果沒有歷史包袱,組員的開發環境轉移與學習資源的獲取,是最大阻力。
  • 自己使用還好,但要導入企業最大的阻力是教會或請各個同事都使用,如果只是要改測試或共同開發環境架構倒還好


UDE #8:不知 Docker 的適用情境及效益

  • 高層不懂 Docker 的魅力,新技術的應用範疇與成熟度。
  • 與現況相比,能帶來什麼效益?


UDE #9:Docker 技術能力掌握度不足


UDE #10:初學時易有挫折

  • 一開始容器觀念的了解,對初學者來說頗複雜。
  • 還不知道怎麼用
  • 需要起手式


UDE #11:與 DevOps 整合流程問題

  • 現有開發組織的調整及員工訓練。
  • 與 CI/CD 結合的實務流程
  • Docker 和其他工具的結合應用
  • 專案程式時常需要 update,也就代表要時常 build image


UDE #12:對 Ops 環節有疑慮


UDE #13:對網路/Cluster/HA 有疑慮

  • 不知如何配置 Cluster。
  • 網路相關的議題,不知是否穩定可靠(關於 HA)
  • 對於 swarm 等新功能的概念尚未能清楚掌握


UDE #14:Docker 改版過快

  • 中文文件太少,變化太快。
  • 版本進步快
  • 目前尚未正式導入,現階段問題在對於 swarm 等新功能的概念尚未能清楚掌握


UDE #15:組織文化層面的阻力

  • 公司內部傳統組織架構,各立山頭,只私其政。
  • 公司的政治阻力
  • 公司文化和政策