最流行的敏捷方法
(c) 2009 張恂
本文的最新版在 http://www.zhangxun.com/entry.aspx?sname=AgileSurvey§ion=popular
在 VersionOne 2008 的這份報告中 我們看到,採用 Scrum 的比例高達 49%,Scrum/XP 聯合採用的達到 22%,而單純只採用 XP 的排在第三佔 8%,其他各類方法一共佔 29%。
其他幾個選項得票率均在 8% 以下,排名依次為:Custom/hybrid, Don't know, AgileUP, Other, FDD, Lean, DSDM, OpenUP, Agile Modeling, Crystal 等。我覺得漏掉了 MSF For Agile,今後應該補上。
採用 Scrum 加 Scrum/XP 的超過了 70%,佔絕對優勢,可見 Scrum 和 XP 的知名度與影響力,而在普及程度上 Scrum 比 XP 更勝一籌。這說明,大家在實施敏捷改進的時候,Scrum 和 XP 是很好的參考框架和模型,不管最終能否用得上,都應當認真研究和學習,屬於必修課。
Scrum 和 XP 都不全面
如何理解這些民調資料?實際上,作為過程方法 Scrum 和 XP 都是不完整、不全面的,在實際的軟體專案管理和開發中不能單獨採用。Scrum 是一個輕量級的敏捷專案管理框架,框架則意味著它本身是一個半成品(半熟的),在實踐中我們還需要開動自己的大腦新增更多其他的東西,需要在敏捷價值觀和原則的指導下,把 Scrum 與其他方法,包括行之有效的傳統方法,結合起來運用。
對於國內的敏捷改進,我通常向客戶推薦的一種方案是:IID + Scrum + UP + XP + X,也就是一種先打碎,然後混合、融合、整合的方案。作為太極敏捷思想方法的倡導者,我個人歷來傾向於 process mashup, integration, synergy, unification 或 hybrid 方案,主張兼收幷蓄、融會貫通。相信很多人會和我有類似的看法,這麼做有很多好處。其實沒有哪一種方法、模型、標準能夠包打天下,CMM/CMMI 不行,RUP 不行,Scrum、XP 當然也不行。
IID 代表迭代遞增式開發,已有超過 40 多年的發展歷史,是 Scrum、UP、XP 等當代敏捷方法所共有的前身和基礎。我把 IID 單獨拿出來,是為了引起大家的注意,敏捷改進最好先從 IID 做起。
為什麼 Scrum 遠比 XP 更流行?
在過去幾年當中,國內 XP 的知名度可以說遠高於 Scrum,某些媒體、企業和個人都對之大加讚賞、竭力宣傳。人們在 XP 宣傳上的投入也曾經遠大於 Scrum,這導致很多人都誤以為:敏捷 = XP。因此,可能很多人看到這些資料,會感到意外,怎麼 Scrum 後來居上,XP 反而叫好不叫座,為什麼會有這種反差?
這背後的原因,不同的人有不同的解讀。我想,這可能與專家們的努力,相關企業和組織的 marketing,是否採用了認證方式等等外在因素與內在因素有關。
張恂認為,XP 的普及程度明顯不如 Scrum,可以用太極敏捷思想的極限法則來解釋:越極限、越極端的東西,其適用面往往越小,這大概就是 XP 不如 Scrum 的內在原因。實際上,我們發現成功採用 XP 的前提條件、適用條件比 Scrum 更嚴格,XP 對於某些工程做法的規定更具體,諸如 TDD(測試驅動開發)、PP(結對程式設計)、CI(持續整合)等做法的效果到底怎麼樣在國內外科學工程界也一直存在著不少爭議,當然 TDD、PP、CI 等做法並不是成功的敏捷實施所必需的(儘管某些企業和個人,出於自身利益的考慮,強烈迫使您堅信這一點),這些因素都可能限制、約束了它的發展。
Scrum 只保留了敏捷專案開發的一個最小的 IID(迭代遞增式開發)管理框架,沒有對具體的工程做法(比方如何做設計,如何程式設計,如何測試等等)作硬性規定,這樣就給它帶來了很大的靈活性和可擴充套件性,便於和其他方法結合,這正是 Scrum 的聰明之處。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13633641/viewspace-605872/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 盤點最流行的Java工具Java
- 16 款最流行的JavaScript 框架JavaScript框架
- 20款最流行貓ADSL MODEM路由設定方法路由
- [分享] 最流行的 10 個 JavaScript 庫JavaScript
- 最流行的JavaScript程式碼規範JavaScript
- 最流行的PHP 程式碼規範PHP
- GitHub 上最流行的程式語言Github
- 最流行的自由職業者的工具
- 最流行的5個前端框架對比前端框架
- 最為流行的幾款Java IDEJavaIDE
- 哪種程式語言最流行?
- 最好用最流行的Python機器學習庫合集!Python機器學習
- 2014最流行的程式語言
- GitHub上最流行的Top 10 JavaScript專案GithubJavaScript
- 11個最新最流行的幽靈按鈕
- 最流行的六大資料模型工具大資料模型
- Stack Overflow 最流行的程式語言和標籤
- 最流行的5大開源Web伺服器Web伺服器
- 2023年最流行的道德駭客工具
- 最流行的開源工具 Amanda 2.5 釋出(轉)開源工具
- 安卓當下最流行的吸頂效果的實現安卓
- 介紹一款目前流行且好用的敏捷開發框架敏捷框架
- FastAPI:2021年最流行的Python的Web框架ASTAPIPythonWeb框架
- 細數全球最流行的66款App的共同規律APP
- 2019年最流行的7款Java框架Java框架
- 2021,17個 最流行的 Vue 外掛Vue
- 五大最流行的配置管理工具
- 【工具篇】最流行的Web漏洞掃描工具推薦!Web
- 最流行的開源電子健康記錄(EHR)OpenEMR
- Android 最流行的吸頂效果的實現及程式碼Android
- 用於移動開發的5個最流行的資料移動開發
- 小白教程|一小時上手最流行的前端框架vue前端框架Vue
- 各個開發階段最流行的Java工具彙總Java
- 眼下最流行的五大CSS框架_你都知道麼?CSS框架
- HTML5 Boilerplate: 最流行的web開發前端模版HTMLWeb前端
- 2014年最流行的應用伺服器伺服器
- 敏捷-新方法論敏捷
- UP還是敏捷方法?敏捷