軟體開發的改變、困境、與挑戰

你一定看過底下這張圖,對吧。我得先說,這可能不是一篇政治正確的文章... 但我還是歡迎大家補充自己的看法...

有次上課時,有位擔任主管的學員在課程休息時間問我:『到底DevOps能對公司帶來什麼價值?(翻成白話就是…它真的有用嗎?)』這問題看起來不難回答,我腦袋裡立刻蹦出一堆答案,但…我要如何在30秒到1分鐘的時間內,讓學員有個本質上的概念呢?

前陣子我一直在思考這個問題,剛好這時候,我在FB上看到朋友貼來的一張圖,我猜你肯定也看過。

後來這張圖還出現了好幾個版本,基本上目的都一樣,就是揶揄客戶的不講理。也的確,這世界上沒有白吃的午餐,軟體開發和商業設計很像,同時要快、要好、又要便宜,天底下哪有這種好事?

正當我也想轉貼出去的時候,突然轉念一想,難道真的沒有可能讓成品的交付又快、又好、又便宜? 如果有呢? 那實現出這個成果的企業,豈不是能夠領先其他競爭者一大截? 而且,如果這件事那麼不合理,為何幾乎每一個客戶都這麼要求呢? 甚至包含我自己。

前陣子我在印製一批教材的時候,我對印刷廠的要求似乎也是這麼的『不合理』,我希望它印製成本要低、品質當然不能拙劣、關鍵在於速度,由於訓練課程即將開始,我希望三天內可以完成…,回頭一想,我自己不就是那個傳說中的奧客嗎?

結果呢?

結果印刷廠還真的完成了(使命必達!)。不是應該不存在嗎? 為何印刷廠實現了這件事呢?

我不知道他們怎麼做到的,但我回想最近這十年印製教材的經驗,我發現,比起十年前,現在確實是又快、又便宜、品質也好上了一大截。是怎麼回事? 如何讓理當『不存在』的事情發生的?

這部份就不難理解了,我想是因為『產業升級』。最近這十年客製化小量印刷的技術不斷更迭(當然也是拜IT技術所賜),許多只有一兩個員工的小印製店,靠著電腦和幾台印刷設備,就可以印製出媲美印刷大廠的成品品質,印製時間和成本還來的更低。產業升級,讓過去被視為不存在的交集點發生了。

而DevOps根本就是軟體開發領域在最近十年中最大的『產業升級』。在DevOps中我們強調頻繁交付(速度要快)、我們強調程式碼自動測試、在CI/CD Pipeline中的系統安全弱點掃描(品質要好)、我們強調減少浪費、讓開發成本有機會可以降低(要便宜),我們不正就是在實現過去認為不可能的事情嗎?

面對全球化的競爭,許多廠商正在改變,改變的不只是觀念思維,也包含開發方法、技術、與技巧。就是我之所以說DevOps是所有軟體開發團隊(不管你是大企業、小團隊、甚至只有一個人開發...)都必須熟悉、無可逃避的方法與技術,否則很有可能在這一波升級的過程中被時代給淘汰的莫名其妙。

歡迎來到2020,面對新的挑戰。

留言

這個網誌中的熱門文章

在POC或迷你專案中使用 LiteDB

使用Qdrant向量資料庫實作語意相似度比對

使用 Airtable 在小型需求上取代傳統資料庫

專業的價值...

精彩(且驚人)的Semantic Kernel入門範例