為什麼要敏捷?
(c) 2009 張恂
為什麼要敏捷?這個問題可能有很多種答案,既有簡單的回答,也有複雜的回答,還可以從多個角度、多個層面來問題這個問題,比如個人、團隊、企業和組織分別為什麼要敏捷等等。
這裡,我想列出幾個最基本的原因。
Better, Faster, Cheaper(BFC)
軟體研發要敏捷,首先是因為敏捷能給我們帶來很多好處,比如降低風險,提高質量,縮短時間,減少成本等等。如果敏捷軟體工程不能帶來比傳統軟體工程更多的好處,那為什麼要敏捷?沒有必要。這是最基本的邏輯。任何軟體工程、軟體過程改進的目標,有點像奧運口號,無非是 BFC: better, faster and cheaper,還有人提出了 cooler, happier ... 顯然,敏捷改進的目的是為了比傳統管理和開發方法做得更好、更快、更節省等等,這是我們的基本出發點和判斷準則。
敏捷方法的崛起是 20 年來世界軟體工程的又一次重大革新
也許很多人還沒有意識到,敏捷變革(agile transformation)是當前正在進行中的世界軟體工程史上又一次重大的 paradigm shift(正規化轉變)。另一次著名的正規化轉變發生在上世紀末的八九十年代,也就是大家比較熟悉、公認的由傳統結構化程式設計向新型結構化程式設計(OO,物件導向)技術的轉變。“敏捷”是一個形容詞,“敏捷”也是一種狀態,敏捷(如快速應變)能力是所有優秀企業/組織、優秀團隊和優秀個人都具有的一種基本特質。因此,不出意料,敏捷軟體工程、敏捷過程和方法,也率先被世界上最優秀的一批軟體研發領導企業、組織、團隊所實踐和採用,目前業界熟知的有微軟、IBM、Yahoo!、諾西、華為等等。
“敏捷”的一個反義詞是“遲鈍”,作為個人或組織,不能及時地響應變化,適應變化,代表他已經衰老,不合時宜了。進化論告訴我們,物競天擇,適者生存。歷史和未來都將證明,不具有敏捷能力的軟體研發組織,遲早會被現代市場競爭所淘汰。
敏捷過程改進是國內中小軟體企業和組織提升競爭力的重要手段
與整體實力和適應能力更強的大中型企業相比,中小企業通常對專案的時間、成本、風險和利潤率等要素更為敏感,經不起幾次折騰。而與傳統軟體過程、傳統管理和開發方法相比,敏捷方法具有以人為本、輕載(lightweight)而靈活、成本低、開銷小、效率高、見效快等優點,尤其適合中小軟體研發企業或組織的軟體過程改進和企業業務流程再造(BPR)。
敏捷方法彌補了 CMM/CMMI、ISO 9001 等體系的不足
在過去八年中,我們看到真正的 CMMI 專家一直在研究敏捷,學習和吸收敏捷的長處,出現了 CMMI 主動擁抱敏捷、與敏捷整合或融合的顯著趨勢。既然 CMMI 要擁抱敏捷,就說明敏捷有 CMMI 所缺少的東西,如此龐大的 CMMI 體系仍然是不全面的。CMMI 與敏捷並非水火不相容的關係,而是可以相互補充、相互促進的關係。現在人們逐步認識到,沒有敏捷度(Agility)考量的成熟是不全面(片面)的成熟。
通過了 CMMI L5 之後,軟體研發組織的過程改進向何處去?敏捷過程改進是組織過程持續改進的一個重要和主攻方向。就我個人的經歷看,這兩年來國內不斷有拿到 CMMI 證書的客戶和朋友向我打聽敏捷改進的事情,徵求我的建議,CMMI L3 到 CMMI L5 的企業都有。這的確是一個好現象,相信未來 5 年內這樣的 CMMI 組織會更多。
事實上,不論您的軟體研發組織、企業已經獲得了 ISO 9001 證書,還是 CMM 各級證書,或 CMMI 各級證書,甚至 CMM L5 或 CMMI L5 等各類頂級證書,抑或以上各級、各類證書啥都沒有,從提高效率、加強內功的角度看,實施敏捷過程改進,或者參考敏捷方法、敏捷過程模型進行持續過程改進,都是一個非常值得考慮的舉措。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13633641/viewspace-607677/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼要進行敏捷?敏捷有哪些好處以及敏捷工具敏捷
- 為什麼要虛擬化,為什麼要容器,為什麼要Docker,為什麼要K8S?DockerK8S
- 【敏捷0】敏捷專案管理-為什麼從敏捷開始?為什麼從PMI-ACP開始?敏捷專案管理
- 為什麼要removeREM
- 為什麼要code reviewView
- 為什麼開發者應該摒棄敏捷?敏捷
- 為什麼要學習 RustRust
- 為什麼要學習 Julia
- 為什麼要指令重排序?排序
- 為什麼要學習 Vim?
- 為什麼要選擇SQL?SQL
- MySQL為什麼要set namesMySql
- 設計師為什麼要學程式設計,開發者為什麼要學設計?程式設計
- 為什麼 JavaScript 的 this 要這麼用?JavaScript
- Scrum轉型(一) 為什麼敏捷和ScrumScrum敏捷
- 為什麼企業要做大規模敏捷?敏捷
- 您的團隊為什麼不用敏捷方法?敏捷
- 敏捷是什麼?敏捷
- Python是什麼?為什麼要掌握python?Python
- 為什麼還要記密碼密碼
- 為什麼要閱讀原始碼原始碼
- 為什麼要學習Netty?Netty
- 為什麼要貢獻開源
- 前端為什麼要工程化?前端
- 為什麼要分庫分表?
- 為什麼要特徵標準化特徵
- 為什麼我要學習“機器學習”?機器學習
- 為什麼要網頁模組化?網頁
- 我為什麼要學技術
- Python優勢是什麼?為什麼要學習?Python
- 為什麼你的敏捷總是不成功?敏捷
- 你的企業為什麼需要敏捷轉型敏捷
- 為什麼有些公司敏捷實施不成功?敏捷
- 為什麼“敏捷”會浪費這麼多時間? - Reddit敏捷
- 為什麼要成為「無敵」程式設計師?程式設計師
- 為什麼想成為 Geeker 的人要學習 JSJS
- 為什麼要學資料結構?資料結構
- 為什麼要申請SSL證書?