本書面向敏捷實踐者學習敏捷知識和敏捷軟件開發(fā)企業(yè)進行敏捷轉型的需要,旨在幫助個人更快地掌握敏捷開發(fā)知識,幫助企業(yè)更好地實施敏捷轉型。主要內(nèi)容包括:敏捷開發(fā)的哲學理念、價值觀、敏捷開發(fā)方法框架和敏捷實踐,企業(yè)敏捷轉型參考框架,幫助企業(yè)回答為什么要進行敏捷轉型,敏捷轉型包含哪些內(nèi)容和如何開展敏捷轉型等問題。
序言
提到敏捷,人們想到的不是大套理論,而是一個個簡潔有效的成功實踐,可以說實踐是敏捷的本質(zhì)之一。不僅要學習國際上成功的敏捷實踐,更要采集國內(nèi)企業(yè)成功案例,這是中國敏捷聯(lián)盟存在的重要價值,這也是來源于聯(lián)盟對國內(nèi)敏捷發(fā)展狀況的判斷: 當前正處于為什么做和怎么做敏捷實踐的過渡時期,問為什么要敏捷和問怎么做敏捷的人并存。
所幸,經(jīng)過近幾年敏捷運動發(fā)展,國內(nèi)一批應用敏捷的先行企業(yè),已經(jīng)有了不少實踐經(jīng)驗,而且很多取得了明顯的成效。把這些實踐采集和編輯成冊,將有助于回答很多疑問:
敏捷適用于哪些場景?敏捷能用于大型軟件的交付嗎?
敏捷有哪些主流實踐?
敏捷實施需要的文化、制度和人才基礎我們目前具備嗎?
有了CMMI和項目管理,還需要敏捷嗎?
實施敏捷真正有效果嗎?
在這個時候,我們推出“中國敏捷軟件開發(fā)成功實踐案例集”,并以此為基礎,提煉其中的共性方法,制定《敏捷軟件開發(fā)知識體系》(ADBOK),無疑具有很大的積極意義。
成果的取得,離不開團隊的協(xié)作,我很高興向讀者介紹這個精英團隊: 工作組長寧德軍(IBM Rational大中國區(qū)CTO)、工作組副組長張忠(用友股份研發(fā)總經(jīng)理)、工作組副組長李春林(東軟集團過程改善中心副主任),還有二十多位很棒的成員(具體名單參見編委名單),項目進行過程中,處處彰顯出大家對敏捷的摯愛、對專業(yè)的熱情、對行業(yè)工作的社會責任感,這些年輕的從業(yè)者所體現(xiàn)的精神,正是我們整個軟件行業(yè)生機勃勃、精彩紛呈的原因。
也許,這些工作還有這樣那樣的不足,但是畢竟我們已經(jīng)上路——不僅學習國際社區(qū),而且通過自身的實踐創(chuàng)新回饋國際社區(qū)。
我也借此機會,代表協(xié)會真誠歡迎各路精英參與到聯(lián)盟平臺上,共同精化和演進這些成果,推動中國敏捷軟件開發(fā)運動快速前進,實現(xiàn)我們“以過程改進之能,助企業(yè)發(fā)展之力”的共同目標。
中國敏捷軟件開發(fā)聯(lián)盟秘書長 王鈞
2013年4月
編者序
6年前在上海舉辦的首屆世界游戲開發(fā)者大會(GDC 2007),使我第一次真正領略到了敏捷開發(fā)的魅力,數(shù)百個來自不同國家、講不同語言的開發(fā)者圍繞著游戲開發(fā)團隊如何進行敏捷開發(fā)的主題展開熱烈討論,幾場敏捷相關的演講也場場爆滿。通過那次的敏捷開發(fā)洗禮,骨子里流淌著軟件工程思維的我開始對敏捷開發(fā)產(chǎn)生了濃厚的興趣,上網(wǎng)瀏覽各種敏捷知識、閱讀各種敏捷書籍,從XP、Scrum到OpenUP、精益開發(fā),然而有一段時間我卻有些迷失了……,太多的敏捷流派,太多的敏捷實踐,我甚至不知道何為真正的敏捷!
后來,帶著許多迷茫,我參加了敏捷教練的培訓。從各種敏捷的基本知識,到Scrum Master的高級進階,再到各種敏捷轉型實戰(zhàn)分享,我完成了一次非常系統(tǒng)的敏捷修煉之旅。通過和老師還有其他敏捷教練的交流,自己似乎有了豁然開朗的感覺!正是從那時起,我就有了編寫敏捷開發(fā)知識體系的沖動,因為我知道并不是所有的人都像我一樣幸運,有如此系統(tǒng)的培訓機會; 我還知道會有越來越多的人步入敏捷的殿堂努力學習和感悟著敏捷。此外,我大部分時間的工作,就是幫助大型軟件開發(fā)團隊提高軟件交付效率和質(zhì)量。談到敏捷,我被企業(yè)開發(fā)管理者們問得最多的兩個問題就是我們的團隊適合敏捷嗎?敏捷轉型需要哪些準備?
作為軟件工程和敏捷開發(fā)的愛好者,我們能夠做的和應該做的,不正是聯(lián)合敏捷領域的愛好者和志愿者,盡快推出中國的敏捷開發(fā)知識體系,以便幫助更多的朋友能夠更快掌握敏捷開發(fā)知識,完成敏捷開發(fā)的學習和思考過程; 幫助企業(yè)能夠更好地實施敏捷轉型,并從敏捷轉型中不斷獲取價值。
因此本書的主要內(nèi)容包括以下兩個部分:
。1) 敏捷開發(fā)知識體系,包括敏捷開發(fā)的哲學理念、價值觀、一系列敏捷開發(fā)方法框架和敏捷實踐,目標是幫助喜歡敏捷的軟件從業(yè)人員,更快地全面掌握敏捷開發(fā)相關知識。
。2) 企業(yè)敏捷轉型參考框架,主要幫助企業(yè)回答為什么要進行敏捷轉型,敏捷轉型包含哪些內(nèi)容和如何開展敏捷轉型等問題,目標是幫助企業(yè)更快、更好地實施敏捷轉型。
本書的主要目的,就是為了滿足愛好敏捷開發(fā)的個人學習敏捷知識的要求,滿足企業(yè)進行敏捷轉型的需要,從而幫助個體更快地掌握敏捷開發(fā)知識,幫助企業(yè)更好實施敏捷轉型。今天的成績,只是一個起點,真心希望有越來越多的朋友加入到我們的行列,不斷完善敏捷開發(fā)知識體系,不斷提出您的建議和反饋,分享您的理解和思考!路漫漫其修遠兮,吾將上下而求索,人生有涯,智慧無限!
在此,我要感謝所有為本書播灑汗水的朋友: 李春林、張忠、張克強、錢嶺、廖靖斌、龍廣宇、高航、邢雷、束文輝、袁斌、葉臻、董恒、龐建榮、姚冬、許舟平、許江渝、李曉煒、王慶付、吳文龍、王立杰、陳志波、劉德意、劉曙光、黃方、張傳波、黃曉倩、趙靜、廖鈺、輕眉、劉嘉、劉江、程秋雯、黃群、管業(yè)筠和楊帆。
感謝周伯生教授、劉琴教授、陳忠教授、何新貴教授、楊芙清教授、居德華教授和孫昕、盧旭東、許娓、王亞沙等行業(yè)知名專家對本書提出的寶貴意見。
2013年5月
第1章 敏捷開發(fā)知識體系總體框架
1.1敏捷開發(fā)知識體系的核心
1.2敏捷開發(fā)方法框架
1.3敏捷開發(fā)管理實踐
1.4敏捷開發(fā)工程實踐
第2章 敏捷開發(fā)核心價值觀和原則
2.1敏捷軟件開發(fā)宣言
2.2敏捷開發(fā)的核心價值觀
2.3敏捷開發(fā)的原則
2.3.1敏捷開發(fā)的目標
2.3.2敏捷開發(fā)原則的應用
第3章 敏捷開發(fā)方法框架
3.1敏捷開發(fā)方法框架之Scrum
3.1.1定義和特性說明
3.1.2主要角色
3.1.3主要活動和實踐
3.1.4主要工件
3.1.5工作流程
3.2敏捷開發(fā)方法框架之極限編程(XP)
3.2.1定義和特性說明
3.2.2主要角色
3.2.3主要活動和實踐
3.2.4主要工件
3.2.5工作流程
3.2.6誰適合使用極限編程
3.3敏捷開發(fā)方法框架之OpenUP
3.3.1定義和特性說明
3.3.2主要角色
3.3.3主要活動和實踐
3.3.4主要工件
3.3.5工作流程
3.3.6誰適合使用OpenUP
3.4敏捷開發(fā)方法框架之精益開發(fā)
3.4.1定義和特性說明
3.4.2主要角色
3.4.3主要活動和實踐
3.4.4工作流程
3.4.5誰更適合使用敏捷與精益相結合的方法
3.5敏捷開發(fā)方法框架之特征驅(qū)動開發(fā)
3.5.1定義和特性說明
3.5.2主要角色
3.5.3主要活動和實踐
3.5.4主要工件
3.5.5工作流程
3.5.6誰適合使用特征驅(qū)動開發(fā)
3.6敏捷開發(fā)方法框架之水晶方法
3.6.1主要角色
3.6.2主要活動和實踐
3.6.3主要工件
3.6.4主要流程
3.6.5誰適合使用透明水晶方法
第4章 敏捷開發(fā)之管理實踐
4.1迭代式開發(fā)
4.1.1定義和特性說明
4.1.2應用說明
4.1.3案例說明
4.2多級項目規(guī)劃
4.2.1定義和特性說明
4.2.2應用說明
4.2.3案例說明
4.3完整團隊
4.3.1定義和特性說明
4.3.2應用說明
4.3.3案例說明
4.4確定沖刺計劃
4.4.1定義和特性說明
4.4.2應用說明
4.4.3案例說明
4.5燃盡圖
4.5.1定義和特性說明
4.5.2應用說明
4.5.3案例說明
4.6每日站立會議
4.6.1定義和特性說明
4.6.2應用說明
4.6.3案例說明
4.7任務板
4.7.1定義和特性說明
4.7.2應用說明
4.7.3案例說明
4.8故事點估算
4.8.1定義和特性說明
4.8.2應用說明
4.8.3案例說明
4.9應用生命周期管理概述
4.9.1定義與特性說明
4.9.2應用說明
4.9.3案例說明
4.10獨立的敏捷服務團隊
4.10.1定義和特性說明
4.10.2應用說明
第5章 敏捷開發(fā)之工程實踐
5.1持續(xù)集成
5.1.1定義和特性說明
5.1.2應用說明
5.1.3案例說明
5.2驗收測試驅(qū)動開發(fā)
5.2.1定義和特性說明
5.2.2應用說明
5.2.3案例說明
5.3結對編程
5.3.1定義和特性說明
5.3.2應用說明
5.3.3案例說明
5.4產(chǎn)品待辦列表
5.4.1定義和特性說明
5.4.2應用說明
5.4.3案例說明
5.5用戶故事
5.5.1定義和特性說明
5.5.2應用說明
5.5.3案例說明
5.6TDD(測試驅(qū)動開發(fā))
5.6.1定義和特性說明
5.6.2應用說明
5.6.3案例說明
5.7單元測試
5.7.1定義和特性說明
5.7.2應用說明
5.8演進式架構
5.8.1定義和特性說明
5.8.2應用說明
5.8.3案例說明
5.9重構
5.9.1定義和特性說明
5.9.2重構的原則
5.9.3案例說明
第6章 企業(yè)敏捷轉型參考框架
6.1企業(yè)敏捷轉型參考框架總體介紹
6.2為什么采用敏捷方法
6.2.1敏捷思維
6.2.2企業(yè)敏捷轉型主要收益說明
6.3基于現(xiàn)狀選擇敏捷方法和實踐
6.3.1現(xiàn)狀分析
6.3.2選擇敏捷方法和實踐
6.4如何實施敏捷轉型
6.4.1統(tǒng)一認識
6.4.2明確敏捷轉型模式
6.4.3選擇敏捷工具
6.4.4改進組織和研發(fā)流程
附錄A國外敏捷轉型實踐參考
附錄B敏捷開發(fā)術語表
附錄CSPI China服務介紹
附錄D中國敏捷軟件開發(fā)聯(lián)盟
參考文獻