每週一書|第五週

推薦書:Effective DevOps 中文版

前言

很多人以為只要導入工具,就表示有在做 devops,實則不然,透過這本書的內容,你會了解到什麼是 devops。他不只是一個工具的集合名詞,devops 是一場文化運動!
devops 也不是讓誰做什麼事,或是彼此對抗,而強調人與人之間的關係,並共享故事(內隱知識)。透過共享,建立信任之外,也能避免重複的錯誤發生、加速透過經驗得到更多的創新!以下將會簡單描述本書的重要內容以及其價值所在。

 


從 0 開始到 devops 實作

軟體工程分分合合,從一開始的真空管電腦,到 IBM OS/360 的軟體專業分工,軟體工程時代崛起,到現在的 Web 世代,大家為了搶到推陳出新的先機,可是又遇到了開發與維運部門常常為了軟體發布而焦頭爛額,因此 devops 文化在 Flicker 因應而生,隨後掀起了浪潮,因為他講的內容不是每日 10+ 次部署,而是「我們如何打破開發與維運的藩籬」。

書中為我們這些新手介紹了在進入 devops 中常見的名詞,透過書中貼心的整理,我們可以很快就知道 devops 在談論些什麼。接著,你也許迫不及待地對 devops  產生興趣,想要實作,搭配後面的章節就分享了作者一些對於 devops 常見的誤解及反模式的文章,讓你可以標竿比對,不要走入錯誤的作法,降低學習的曲線。
 

有效的 devops 四大主軸

雖然書中提到 devops 沒有正確的實行方法,不過作者們分了四類要花費大量時間與資源的實行計劃,包括:

協作
指的是藉由多人的支持互動與投入,建立朝向某具體成果的過程

  • 第七章關注幾個知識領域:知識管理、衝突管理、溝通管理與利害關係人管理三大面向,例如像是如何有效地溝通、如何發展學習型組織等等
  • 同時第八章則是講解大家對於 devops 協作方面的誤解與疑難排解,很多都是職場中會遇到的情境,以及該如何應對會化解衝突達成協作來增進工作績效。

 

親和力
人們建立團隊之間的關係,在牢記共同組織目標的前提之下,向不同的目標或指標邁進,同時促進隸屬不同團體的人們彼此學習並產生共鳴。

  • 第九章則是提到的親和力大致都在講述人力資源管理,從整個人力資源需求、發展團隊以及管理團隊都有深入的討論;團隊的組建(Forming)到展現風采(Performing),中間我們要先了解如何進行招募、訂定角色與職責、團隊文化、組織結構等是如何影響團隊的形成,到如何產生團隊績效評量等。其中內容也包括衝突管理等內容供讀者知道在組建以 devops 為文化的團隊,該如何解決遇到的問題。
  • 第十章則是講解大家對於團隊親和力的誤解與疑難排解,包括對於角色與職責所產生的的誤解,或是工作常常被中斷以致無法產生團隊心流等詳加講述。

 

工具
工具選擇的好不過是成功的捷徑,他是仰賴於團隊已經有親和力與協作能力,如果只重視工具而疏忽人,最終依舊可能造成阻礙而失敗。

  • 第十一章介紹使用工具輔助團隊前,介紹一些目前這個生態系豐富的觀念及名詞,例如版本管理,以及在版本管理這個知識領域中有哪些專有術語,來讓術語有明確的意義;書中也提到讀者要切記勿把工具當作解方,重點依舊在於如何讓人使用工具到上手,從而產生績效。
  • 第十二章提到了透過團隊中既有的活動,提煉出實踐方法,打造出清晰且激勵人心的價值觀,從而引導出所用的工具誒技術相關的決策。畢竟,最終是人使用工具,目的在於幫助人們與其他人協作。
  • 第十三章講解大家對於使用或導入工具誤解與疑難排解,包括告訴讀者不要為了使用技術而使用工具,或是誤認使用了工具才表示我們有在做 devops 等工具。

 

擴展
可擴展性很重要,因為組織一定會有變革的時刻,適當地根據狀況調整 devops 文化運動規模,才能與時俱進,每次的擴展都是一個轉折點。

  • 第十四章透過介紹幾個研究案例,來讓讀者可以知道其他人是如何進行變革,在組織生命週期中克服各式各樣的障礙。探討可擴展的從大到組織結構,小至一個產品團隊,面向包括人力資源、發布頻率、工作量等。當中也提醒讀者在做團隊擴展時,要注意 Job Description(JD) 要好好編輯,內容要與市場上好的 JD linting。
  • 第十五章講解大家對擴展誤解與疑難排解,擴展並非單純讓組織變大到某個級別,或是單純導入解決方案。書中也特別提到 devops 不被高層買單的常見解決作法。

 

建立 devops 文化的連結

文化如何成形,來自於外顯與內隱知識的流轉分享,十六章告訴我們可以透過說故事或是舉辦 devops day 等方式來讓我們共享對於 devops 的價值觀、信念以及目標與實踐。那該如何讓這樣的外顯與內隱知識形成呢?十七章說明了透過「價值觀、禁令、儀式、迷思和想法」讓文化外顯出來,但是一切都是從思維開始,成長型的思維透過改變帶來成功,但是也並非一蹴可幾。接著,十八章說明一個健康的文化體系是有人際關係,因為與人關聯,良好的組織有著健康的文化與個人健康狀況,若有大量不健康的技術債或文化債會使組織邁向屢屢處理危機事件的後果。本章也強調個人有著健康的身體,再來討論組織的健康。

devops 牽涉到理解、同理心以及人們間的聯繫關係,同時鼓勵組織每個人做出貢獻、參與組織改變的過程,拒絕英雄行為,只是購買工具並不能稱作是 devops,持續建立並維持一個文化才是讓 devops 有效的最大原因。

 

結論

曾經我也是這樣的人,我很迫不及待想要把上面那些這個名詞或是工具導入軟體開發專案中,以繳交我的軟體專案作業,所以我用了很多工具給專案團隊,並且以為我正在實施 devops ,實則不然。我們該如何開始實行 devops 這趟旅程?看過上面的分享相信大家也知道不用一定要用什麼工具才能實施 devops ,我們要更加強調「人們是如何合作,如何維護及修復工作關係」,讓 devops 更有影響力。
因此如果你/妳很想改變自己以及組織,使自己產能更高,建立更持久且更有價值的工作環境,這本書非常值得你買來一讀,而且書中提供很多學習資源,第二十章甚至列出四大主軸相關的學習資源!

 

每週一書連結

第一週:持續交付|使用 Java (Continuous Delivery in Java)

第二週:DevOps 和自動化運維實踐

第三週:DevOps 三十六計

第四週:持續交付2.0 業務引領的 DevOps 精要

第六週:DevOps Handbook|打造世界級技術組織的實踐指南 (中文版)

第七週:Jenkins2.x 實踐指南

第八週:Jenkins 2 權威指南

第九週:為你自己學 Git

第十週:精通Git 第2版

活動書籍