iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 13
1

一年前的我只能夠這樣解釋:「DevOps 是由 Dev 跟 Ops 兩大部分組成,而 Agile 是在軟體開發中透過迭代快速交付的開發模式,在開發的過程中把維運的部分也納入考量,那就是 DevOps。」但現在再重新說明什麼是 DevOps ,我會說:「DevOps 就是必須在開發過程中,也邀請所有相關的同仁一同參與」。

為什麼會需要 DevOps ?

當我打出「DevOps 就是必須在開發過程中,也邀請所有相關的同仁一同參與」,突然領悟到一件事,其實,不管是 DevOps 或是 Agile 應該都是因為組織變得越來越大所以才衍生出來的軟體工程學問,我的想法是這樣:無論是自動化測試、自動化發布、持續交付...等等,不都應該是軟體開發工程中應該要做的事情嗎?

那為何最近 Agile 跟 DevOps 在台灣會越來越多人關注,兩者對我們的實際影響到底是什麼?仔細想想,我自己認為最重要的應該是資訊透明度。

為什麼資訊透明度很重要?

「人們會基於其掌握的資訊制定理性的決策,但是由於人們掌握的資訊通常是有限的、不完整的,尤其是對於系統中相隔較遠或不熟悉的地方,有此導致做出的決策並非整體最優。」這段說明來自於 《系統思考》一書,在互信的基礎上,我們相信大家都是希望系統能夠運作穩定,也會希望自己做的事情能夠為使用者帶來價值,甚至是讓公司盈利。

在這樣的前提下,沒有人會想做出不好的決策,但工作中偶爾總是會遇到一些我們覺得很「阿呆」的提案或是建議,又或者處理問題時,第一時間的止血動作會讓你覺得怎麼會這樣做?下次遇到不要生氣,改成想想,會不會是自己跟對方之間的資訊有些落差呢?

那,為什麼資訊透明度會低落?

我們先試想,當團隊組成的成員數分別是 3 人、 10 人、 30 人,那一個團隊的資訊透明度最容易在傳遞中遺失?

答案應該很明顯的是 30 人的團隊,所以呼應前面說到了,我會認為資訊透明度低落是因為當組織規模大到一定程度的時候,就會出現所謂的《穀倉效應》,當組織劃分出來時,我們就會開始切分工作的界線,專案企劃只負責規劃,產出企劃書,開發部門就負責寫程式,實作功能,而維運部門就負責問題處理。

表面上各司其職,分工合作,共同打造新世界,但實質上可能根本就是有分工但沒有合作,當系統功能發生問題時,維運人員可能連為什麼要有這個功能,想達成什麼目的都不清楚,請問我們怎麼能期待維運人員可以快速一步到位的做好應急處理呢?

所以,到底為什麼要 DevOps?

https://ithelp.ithome.com.tw/upload/images/20190928/20112120bJLxrCDRFK.png
我自己會解讀成如果開發跟專案企劃之間能夠達到良好的交流,快速的迭代反應,我們會稱為 Agile,那 DevOps 就是開發跟維運之間要能夠有順暢的溝通合作。


上一篇
我所認知的 DevOps 概念 (1/2)
下一篇
用白話解釋 CI/CD
系列文
誤入 Ops 叢林的 Dev 小白兔30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言