- 卓有成效的敏捷
- (美)史蒂夫·邁克康奈爾
- 848字
- 2022-12-20 18:43:31
2.1 敏捷的好處從何而來
敏捷開發的好處可不是由于用了敏捷這個詞。它們源于如表2-1所示的那些敏捷要點的直觀效果。
(1)短發布周期能幫助你更及時且以更低的成本修復缺陷、浪費更少的時間在無效需求或設計上、更及時地獲得用戶反饋、更快地修正方向,以及更快地實現收入增長和運營成本的降低。
(2)以小批量方式開展從需求到實現的開發工作也提供了類似的好處——更緊密的反饋周期、更快且成本更低的錯誤檢測和修復。
(3)即時規劃的結果是不會花費太多時間去準備那些之后會被忽略或拋棄的詳細規劃。
(4)即時需求的結果是在那些需求變更時會被廢棄的預先需求上投入的工作更少。
(5)涌現式設計的結果是不會給后期會改變的需求預先設計解決方案,更不用說去做那些沒有按規劃給出細節的設計。預先設計可能非常強大,但為不確定的需求進行預先設計既容易出錯也浪費時間。
(6)開發階段的持續自動化測試增強了引入缺陷和缺陷檢測之間的反饋循環,有助于低成本的缺陷糾正,并著重于初始代碼質量。
(7)頻繁的結構化協作減少了溝通上的錯誤。過多的溝通上的錯誤會顯著增加需求、設計及其他活動中的缺陷。
(8)經驗性的、快速響應、面向改進的模型有助于團隊更快地從經驗中學習并隨時間逐步改善。
不同組織會關注不同的敏捷要點。如果要開發的軟件的安全性至關重要,組織通常不會采用涌現式設計。涌現式設計也許能夠省錢,但安全方面的考量更為重要。
相似地,每次發布軟件都產生很高成本的組織——可能是由于要將軟件嵌入難于訪問的設備中或者由于監管方面的支出——就不會選擇頻繁發布。從頻繁發布獲得的反饋也許能夠為一些組織省錢,但也許會讓其他組織的成本遠遠超過其節省的錢。
一旦不再認為敏捷是不可分割的概念——要么全盤接受,要么就毫無用處,就可以自由地單獨實施敏捷實踐。你開始意識到一些敏捷實踐比其他實踐更有效——而有些則對你的特定情況更有效。如果組織需要支持業務敏捷性,現代敏捷軟件實踐自然是合適的;如果組織需要支持質量、可預測性、生產力或其他不明顯的敏捷屬性,現代敏捷軟件實踐也非常有價值。