敏捷式開發(Agile Development)的發展由來已久,隨著時間推移,核心精神沒有太大的改變,仍十分強調每日交付(Daily Delivery)與反覆迭代(Sprint Iteration)等精神,不過,隨著新科技的崛起與普及,實踐敏捷式開發的方式與所需的系統工具都跟以前不一樣,企業準備好因應時代的演進,優化敏捷式開發機制了嗎?
雲端、行動、社群與物聯網等新科技的崛起,讓企業資訊系統架構變得比以前複雜許多,一家企業同時擁有以Java、.Net、Python、Scala與R語言開發的多元應用服務是再正常不過的事情,再加上系統容器化與架構微服務化等趨勢,想憑藉單一系統工具將不同型態的應用服務切割到最小單位並且透過應用程式介面(API)串聯彼此以加速開發腳步,變得十分困難。不過,想在瞬息萬變的市場中勝出,如何以高效模式進行高品質的軟體開發以快速回應市場需求變得越來越重要,因此,強調持續整合(CI)與持續交付(CD)的敏捷式開發流程越來越受到企業關注與導入。
以IBM協助成千上萬企業實踐敏捷式開發流程的經驗來看,必須同時從組織文化以及系統平台等兩個構面切入做改變,才能打造符合市場潮流的「真」敏捷。首先,化繁為簡。企業的開發團隊、維運團隊與需求單位必須整合為一個融洽的合作團隊,一起努力實現持續整合與持續交付,大幅縮減企業花費在系統設計、開發、測試的時間。其次,以平台取代工具。當前的企業環境充滿著各種形式的應用服務,甚至,不乏來自第三方合作夥伴提供的服務,在這樣的狀況下,單一的系統工具已不敷使用,企業需要以平台的概念「廣納百川」,有效管理內外部的微服務,藉此提升開發、測試、整合、交付與管理能量。值得特別注意的是,這裡提到的平台服務除要能支援多元的開發語言與開發(測試/部署)環境,更重要的是,提供可視化的服務管理與自動化處理機制,大幅優化執行效率。
DevOps實踐敏捷式開發到底可為企業節省下多少時間呢?以IBM中國的開發實驗室為例,透過整合Agile與DevOps,成功地將軟體開發、測試、部署的時間從早先的12個月縮短為3個月的時間,而且,這個數字還在不斷更新,顯見成效極為卓越。
總的來說,那些已經將系統開發團隊與維運團隊融合在一起的企業,以及強調產品導向的企業較願意透過DevOps機制、以微服務架構為框架,以開放平台管理多元服務,實踐敏捷式開發,暢享「真」敏捷帶來的巨大效益,將企業資訊系統架構從一座座難以溝通的孤島優化為可被管理的、鬆散耦合的服務。
<本文作者許仲言為台灣IBM公司雲端運算事業部總經理>