關(guān)于我們
書單推薦
新書推薦
|
精益產(chǎn)品開發(fā)/principles, methods, and development/原則、方法與實(shí)施
全書分為兩部分, 第1部分側(cè)重于比較看板和Scrum, 幫助讀者更好地理解它們, 而不是判斷孰優(yōu)孰劣。工具沒有好壞之分, 只有不恰當(dāng)?shù)氖褂脠?chǎng)合和使用方式。第2部分是案例分析, 講述在使用Scrum的組織中, 為運(yùn)維和支撐團(tuán)隊(duì)而實(shí)施看板的過程。本書與《硝煙中的Scrum和XP》的風(fēng)格一致, 行文輕松詼諧, 同時(shí)輔之以案例實(shí)踐和圖示。
在人類與AI共存的移動(dòng)互聯(lián)網(wǎng)時(shí)代,VUCA特性(易變、不確定、復(fù)雜和模糊),如何充分運(yùn)用精益思想與看板實(shí)踐,在注重資源效率的同時(shí)提升流動(dòng)效率?為此,本書開創(chuàng)性地提出一個(gè)行之有效的、適用于軟件開發(fā)領(lǐng)域的“精益產(chǎn)品開發(fā)體系”(Lean Product Development)。
作為國(guó)內(nèi)敏捷精益軟件產(chǎn)品開發(fā)原創(chuàng)作品,《精益產(chǎn)品開發(fā)》凝聚著作者十幾年落地實(shí)施經(jīng)驗(yàn),從原則、方法和實(shí)施三個(gè)層面梳理和闡述精益敏捷開發(fā)體系,主題覆蓋需求管理、過程改進(jìn)、質(zhì)量提升、團(tuán)隊(duì)建設(shè)、DevOps落地過程中所涉及的關(guān)鍵要素,案例來自華為、招行、平安以及多家互聯(lián)網(wǎng)新創(chuàng)企業(yè)的一線實(shí)踐。
前言:新常態(tài)下的精益產(chǎn)品開發(fā)和創(chuàng)新
2008 年,我開始在自己的產(chǎn)品開發(fā)部門嘗試敏捷實(shí)踐,當(dāng)時(shí)這樣做是前衛(wèi)的,有爭(zhēng)議的。9 年后的今天,大部分組織爭(zhēng)論的焦點(diǎn)不再是要不要變得更敏捷,而是“如何才能做到”,后者從來都是個(gè)難題。
10 年間,敏捷實(shí)踐不斷完善,但實(shí)施難度卻變大了。不是我們的進(jìn)步不夠快,而是現(xiàn)實(shí)要求越來越高。移動(dòng)互聯(lián)網(wǎng)技術(shù)改變了我們的生活,對(duì)各個(gè)行業(yè)的沖擊更加劇烈。新的商業(yè)模式和技術(shù)革新不斷涌現(xiàn),新入者隨時(shí)有機(jī)會(huì)脫穎而出,傳統(tǒng)的優(yōu)勢(shì)廠商則隨時(shí)面臨巨大的挑戰(zhàn)。
美國(guó)軍方曾經(jīng)用四個(gè)特性來概括冷戰(zhàn)后的世界:易變 (Volatility);不確定 (Uncertainty);復(fù)雜 (Complexity);模糊 (Ambiguity)。它們的首字母合在一起是 VUCA,“VUCA World”在 20 世紀(jì) 90 年代是常用的軍事術(shù)語,用以形容全球政治和軍事格局。21 世紀(jì)以來, VUCA 被更多用于形容商業(yè)格局和企業(yè)所處的生態(tài),成為我們當(dāng)下移動(dòng)互聯(lián)時(shí)代和即將到來的機(jī)器智能時(shí)代的最佳注腳。
在 VUCA 的世界中,黑天鵝和跨界打劫司空見慣。勝出者的共同特點(diǎn)是擁有快速反應(yīng)和把握機(jī)會(huì)的能力以及系統(tǒng)化的試錯(cuò)、創(chuàng)新和價(jià)值創(chuàng)造能力。擁有這些能力就有機(jī)會(huì)快速上位,反之則隨時(shí)可能被淘汰出局。而隨著信息技術(shù)向縱深的發(fā)展,再傳統(tǒng)的行業(yè)也不可能置身事外,這是企業(yè)運(yùn)營(yíng)和產(chǎn)品開發(fā)面臨的“新常態(tài)”。
面對(duì)新常態(tài),人們不再懷疑敏捷的必要性,而且要求的更多。產(chǎn)品的持續(xù)創(chuàng)新事關(guān)生死,產(chǎn)品開發(fā)部門不應(yīng)該再被看成組織內(nèi)部的成本中心,而是要成為價(jià)值探索、發(fā)現(xiàn)、創(chuàng)造和驗(yàn)證的創(chuàng)新中心,是企業(yè)的核心競(jìng)爭(zhēng)力所在。
今天我們講敏捷與 10 多年前相比,對(duì)它的要求發(fā)生了根本改變。 2001 年《敏捷宣言》發(fā)布時(shí),針對(duì)的是軟件開發(fā),所以它的全稱是《敏捷軟件開發(fā)宣言》, 17 位起草人也全部是軟件開發(fā)專家,宣言的本質(zhì)是尋求更好的軟件開發(fā)方法,強(qiáng)調(diào)了軟件開發(fā)中的有效溝通、迭代交付和靈活應(yīng)變。上圖是宣言的內(nèi)容,它引領(lǐng)了軟件開發(fā)方法學(xué)的思潮,直到今天仍舊在發(fā)揮重要的作用,但今天我們?cè)僦v敏捷,要求有了以下本質(zhì)上的提高。
我們尊崇“個(gè)體和互動(dòng)”,更要“連接和打通組織的各個(gè)職能,以確保協(xié)調(diào)一致的行動(dòng)”。
我們尊崇“可工作的軟件”,更要“聚焦端到端的價(jià)值流動(dòng),以快速、靈活和持續(xù)地交付真實(shí)的客戶價(jià)值”。
我們尊崇“客戶合作”,更要“與客戶建立共同目標(biāo),以最大化業(yè)務(wù)成果”。
我們尊崇“響應(yīng)變化”,更要“有計(jì)劃和系統(tǒng)地主動(dòng)試錯(cuò),以支持有效地學(xué)習(xí)和創(chuàng)新”。
“一致行動(dòng),快速、靈活和持續(xù)地交付真實(shí)的客戶價(jià)值,最大化業(yè)務(wù)成果,有效地學(xué)習(xí)和創(chuàng)新”,這是新常態(tài)對(duì)產(chǎn)品開發(fā)組織的敏捷性要求。與這一要求相對(duì)應(yīng), 10 年間我們看到了另一個(gè)顯著的變化——精益思想和實(shí)踐被廣泛和深入地應(yīng)用在產(chǎn)品開發(fā)當(dāng)中,無處不在。
�6�1 精益成為幾乎所有規(guī);艚菘蚣埽ㄈ SAFe、LeSS 等)背后的重要方法學(xué)支撐。
�6�1 精益看板方法得到越來越廣泛的應(yīng)用,為敏捷變革和提升組織交付能力提供了新的路徑。
�6�1 精益創(chuàng)業(yè)成為熱點(diǎn),精益創(chuàng)業(yè)理念和實(shí)踐開始被廣泛接受和實(shí)施。
�6�1 DevOps 實(shí)踐開始普及,而精益價(jià)值流動(dòng)的思想在 DevOps 實(shí)踐體系中扮演了重要的角色。 2016 年下半年,我開始在自己的公眾號(hào)“精益產(chǎn)品開發(fā)和設(shè)計(jì)”(微信號(hào)LeanAction)發(fā)文,總結(jié)精益設(shè)計(jì)和精益看板方法實(shí)踐,受到了圈內(nèi)圈外超出預(yù)期的關(guān)注,很多朋友從這些文章開始實(shí)施精益開發(fā)方法,我?guī)缀趺刻於寄苁盏讲煌问降姆答。?
的甚至成立學(xué)習(xí)小組,每周學(xué)習(xí)一篇文章,堅(jiān)持了數(shù)月。這讓我決定更系統(tǒng)地總結(jié)精益產(chǎn)品開發(fā)實(shí)踐,最終形成今天您手上的這本書。
本書的目的是為組織的精益和敏捷實(shí)施和提升提供原則、方法和實(shí)施步驟的有效指引,幫助企業(yè)打造移動(dòng)互聯(lián)網(wǎng)時(shí)代的產(chǎn)品交付和創(chuàng)新能力。它的適用范圍涵蓋幾個(gè)人的創(chuàng)業(yè)團(tuán)隊(duì)到華為與招行這樣的大型組織。
寫作本書時(shí),我對(duì)自己有三個(gè)要求:其一,所有實(shí)踐都必須有真實(shí)案例支持;其二,所有案例都必須來自本人的實(shí)踐;其三,只選取那些被證明有效且易于實(shí)施的實(shí)踐。
本書案例全部來自華為、招商銀行、平安科技、上海愛數(shù)軟件以及幾家創(chuàng)業(yè)公司,作者與這些公司都有兩年以上持續(xù)而深入的合作。
本書適合的讀者
本書適合以下讀者:
�6�1 希望開始實(shí)施精益或敏捷開發(fā)的組織或項(xiàng)目管理人員
�6�1 已經(jīng)實(shí)施敏捷和精益開發(fā),但遇到困難和阻力的組織或項(xiàng)目管理人員
�6�1 已經(jīng)實(shí)施敏捷和精益開發(fā),希望進(jìn)一步深化和拓展的組織或項(xiàng)目管理人員
�6�1 希望了解精益和敏捷產(chǎn)品開發(fā)方法和實(shí)踐的產(chǎn)品開發(fā)從業(yè)人員
�6�1 希望提高產(chǎn)品開發(fā)交付和創(chuàng)新能力的各類角色
如何閱讀本書
本書分成三部分,分別介紹精益產(chǎn)品開發(fā)的原則、方法和實(shí)施。
第 I 部分“精益產(chǎn)品開發(fā)的原則”介紹敏捷和精益開發(fā)的目標(biāo)、思想和原則,并由這些原則出發(fā),構(gòu)建完整的精益產(chǎn)品開發(fā)實(shí)踐體系。
第 II 部分“精益產(chǎn)品開發(fā)的方法”介紹看板方法實(shí)踐體系,用看板方法來承載組織的交付流程和價(jià)值交付能力的持續(xù)改進(jìn)。
第 III 部分“精益產(chǎn)品開發(fā)的實(shí)施”將從破解資源效率和流動(dòng)效率的悖論出發(fā),介紹精益產(chǎn)品開發(fā)的實(shí)施步驟,并詳細(xì)介紹需求管理、質(zhì)量改進(jìn)、團(tuán)隊(duì)管理等方面的實(shí)踐和實(shí)施。在這一部分,我還請(qǐng)到了兩位大咖分享他們的的洞見和實(shí)踐。其中,呂毅分享了關(guān)于 Scrum 的洞見,并比較了 Scrum 和看板方法,王津銀分享了 DevOps 的實(shí)施原則。他們兩位在各自的領(lǐng)域都是國(guó)內(nèi)最頂級(jí)的實(shí)踐者和專家。
本書三個(gè)部分具備一定的連貫性,同時(shí)也可以獨(dú)立存在。大家可以根據(jù)自己的需要和興趣有重點(diǎn)地閱讀或作為備查。但是,我個(gè)人認(rèn)為從頭閱讀收獲會(huì)更大。
何勉擁有17年IT從業(yè)經(jīng)驗(yàn),先后擔(dān)任過開發(fā)工程師、架構(gòu)師、項(xiàng)目經(jīng)理、部門經(jīng)理等角色。他曾是全球排名*的寬帶接入產(chǎn)品的項(xiàng)目經(jīng)理,負(fù)責(zé)向全球交付主要的軟硬件版本,同時(shí)還擔(dān)任過300多人的軟件開發(fā)部門負(fù)責(zé)人。
何勉是國(guó)內(nèi)*早的精益產(chǎn)品開發(fā)實(shí)踐者之一,作為咨詢顧問,他先后在華為、招商銀行、平安科技等公司負(fù)責(zé)引入精益產(chǎn)品開發(fā)方法,并加以全面推廣和實(shí)施。他為多家新創(chuàng)公司打造過精益產(chǎn)品開發(fā)和創(chuàng)新方法,并幫助它們?nèi)〉昧藰I(yè)務(wù)上的成功突破。
何勉目前專注于產(chǎn)品開發(fā)和產(chǎn)品設(shè)計(jì)及創(chuàng)新這兩個(gè)方向的探索和實(shí)踐,幫助組織提升能力,使其順暢、高質(zhì)量地交付有用的價(jià)值。他的個(gè)人公眾號(hào)“精益產(chǎn)品開發(fā)和設(shè)計(jì)”(微信號(hào)LeanAction)很受歡迎。關(guān)注該公眾號(hào),可以持續(xù)獲取作者的*新分享并參與互動(dòng)和交流。
目錄
第Ⅰ部分 精益產(chǎn)品開發(fā)的原則
第1 章 從傳統(tǒng)向敏捷軟件開發(fā)的演進(jìn) ...............3
傳統(tǒng)軟件開發(fā)方式面臨的挑戰(zhàn) .................3
從傳統(tǒng)到敏捷 .........5
理解敏捷必須回歸業(yè)務(wù)視角 ....................6
敏捷產(chǎn)品開發(fā)的業(yè)務(wù)目標(biāo)一:更早地交付價(jià)值 .............7
敏捷產(chǎn)品開發(fā)的業(yè)務(wù)目標(biāo)二:靈活地應(yīng)對(duì)變化 .............9
敏捷實(shí)踐體系 .......10
第 2 章 精益產(chǎn)品開發(fā)的核心原則(上):聚焦價(jià)值流動(dòng)效率...............15
聚焦用戶價(jià)值端到端的流動(dòng) ..................15
從資源效率到流動(dòng)效率 .........................20
協(xié)調(diào)多個(gè)團(tuán)隊(duì)才能提升流動(dòng)效率 ...........22
第 3 章 精益產(chǎn)品開發(fā)的核心原則(下):探索和發(fā)現(xiàn)有用的價(jià)值........27
做一個(gè)能賣出去的產(chǎn)品 .........................27
開發(fā)、測(cè)量和認(rèn)知循環(huán) .........................29
從傳統(tǒng)的產(chǎn)品定義方法到精益創(chuàng)業(yè)........30
精益創(chuàng)業(yè)實(shí)踐集合 32
第 4 章 精益思想和精益產(chǎn)品開發(fā)實(shí)踐體系......35
精益思想的來龍去脈.............................35
精益的三個(gè)層面....39
精益產(chǎn)品開發(fā)實(shí)踐體系 .........................41
第 5 章 經(jīng)典天文學(xué)演進(jìn)對(duì)產(chǎn)品開發(fā)方法學(xué)的啟示 ................49
經(jīng)典天文學(xué)的三個(gè)里程碑......................49
經(jīng)典天文學(xué)演化過程給產(chǎn)品開發(fā)的啟示.54
尊重歷史,更要面向未來......................56
第Ⅱ部分 精益產(chǎn)品開發(fā)的方法
第 6 章 看板方法和看板實(shí)踐體系....................61
看板方法的起源....61
看板形成拉式生產(chǎn)方式帶來的收益........64
產(chǎn)品開發(fā)中的看板方法 .........................65
第 7 章 可視化價(jià)值流動(dòng)(上):案例.............75
案例背景介紹 .......76
初始的看板系統(tǒng)設(shè)計(jì).............................76
看板系統(tǒng)的重新設(shè)計(jì).............................77
案例總結(jié) ..............79
第 8 章 可視化價(jià)值流動(dòng)(下):看板系統(tǒng)建模...................83
看板系統(tǒng)設(shè)計(jì)的原則和步驟 ..................83
步驟一:分析價(jià)值流動(dòng)過程 ..................84
步驟二:選取可視化設(shè)計(jì)元素...............87
步驟三:建模價(jià)值流動(dòng) .........................94
第 9 章 顯式化流程規(guī)則..97
組織并明確流程規(guī)則.............................98
團(tuán)隊(duì)共同擁有規(guī)則 ..............................102
持續(xù)改進(jìn)流程規(guī)則 ..............................103
第 10 章 控制在制品數(shù)量(上):為什么要控制 ................107
束水攻沙 ............107
產(chǎn)品開發(fā)中的在制品 ...........................110
在制品帶來的問題 ..............................113
第 11 章 控制在制品數(shù)量(中):控制什么 .117
暫緩開始、聚焦完成 ...........................117
以用戶價(jià)值為單位控制在制品數(shù)量 ......118
控制而不僅僅是限制 ...........................119
第 12 章 控制在制品數(shù)量(下):如何控制 ..123
湖水巖石效應(yīng) .....123
限制在制品的原則 ..............................124
限制在制品的常見形式 .......................125
確定初始限制值 ..126
第 13 章 管理價(jià)值流動(dòng)(上):看板站會(huì) .....129
站會(huì)的目標(biāo) .........130
站會(huì)的組織形式 ..130
站會(huì)重點(diǎn)關(guān)注的信息 ...........................131
站會(huì)過程 ............132
第 14 章 管理價(jià)值流動(dòng)(中):就緒隊(duì)列填充 ...................135
什么是就緒隊(duì)列和就緒隊(duì)列填充 .........136
建立就緒隊(duì)列填充的節(jié)奏 ....................137
組織就緒隊(duì)列填充 ..............................140
第 15 章 管理價(jià)值流動(dòng)(下):發(fā)布規(guī)劃會(huì)議 ...................145
發(fā)布規(guī)劃會(huì)議的內(nèi)容和節(jié)奏 ................145
部署和發(fā)布應(yīng)該是兩個(gè)不同的概念 ......147
解耦部署和發(fā)布 ..148
特性開關(guān) ...........150
完美的敏捷愿景 ..152
第 16 章 建立反饋,持續(xù)改進(jìn)(上):定性反饋和改進(jìn) ....155
如何建立良好的反饋 ...........................156
關(guān)于順暢程度的反饋 ...........................157
關(guān)于質(zhì)量的反饋 ..159
將改進(jìn)落實(shí)為具體行動(dòng) .......................160
第 17 章 建立反饋,持續(xù)改進(jìn)(下):定量的綜合反饋和改進(jìn)...........163
累積流圖 ............163
控制圖 168
前置時(shí)間分布圖 ..170
第 18 章 看板方法的規(guī)模化應(yīng)用 ...................173
融合兩個(gè)看板系統(tǒng) ..............................173
連接多個(gè)看板系統(tǒng) ..............................175
向上下游拓展看板系統(tǒng) .......................177
層次化看板系統(tǒng) ..178
第Ⅲ部分 精益產(chǎn)品開發(fā)的實(shí)施
第 19 章 實(shí)施精益產(chǎn)品開發(fā),提高價(jià)值交付能力 ................185
衡量和評(píng)價(jià)組織的交付能力 ................185
流動(dòng)效率和資源效率的關(guān)系 ................186
從資源效率入手的改進(jìn)無法持續(xù) .........187
打破組織效率改進(jìn)的困局 ....................188
第 20 章 精益和敏捷需求:精益產(chǎn)品開發(fā)的源頭 ................199
在問題域分解需求 ..............................199
找到真正的問題 ..201
從問題到解決方案的進(jìn)一步分解:影響地圖 .............204
挖掘、組織和規(guī)劃需求:用戶故事地圖 ....................208
端到端的需求流動(dòng) ..............................210
第 21 章 精益質(zhì)量改進(jìn) .213
產(chǎn)品開發(fā)中的質(zhì)量模型 .......................213
實(shí)施精益質(zhì)量改進(jìn)的前提 ....................217
落實(shí)精益質(zhì)量改進(jìn)的步驟 ....................219
第 22 章 打造高效的自組織團(tuán)隊(duì) ...................227
自組織困難的根源 ..............................227
打開團(tuán)隊(duì)自組織的密碼 .......................229
自組織是管理提升的結(jié)果 ....................232
第 23 章 對(duì) Scrum 的洞察,以及 Scrum 和看板方法的比較 ...............237
Scrum 活動(dòng)設(shè)計(jì) .238
Scrum 角色選擇 .241
對(duì)比 Scrum 和看板方法 ......................242
第 24 章 實(shí)施 DevOps 的實(shí)踐原則 ...............245
基礎(chǔ)原則 ............246
實(shí)施原則 ............250
支撐原則 ............256
第 25 章 在具體上下文中實(shí)施精益產(chǎn)品開發(fā) ..261
對(duì)產(chǎn)品交付過程的抽象 .......................261
實(shí)施精益產(chǎn)品開發(fā)的步驟 ....................262
精益產(chǎn)品開發(fā)實(shí)施中的基礎(chǔ)和持續(xù)性的工作 .............266
附錄一 生成精益度量圖表的模板工具 ...........269
附錄二 物理看板和電子看板的比較及常見電子看板工具介紹 .............273
附錄三 精益產(chǎn)品開發(fā)相關(guān)圖書推薦 ..............277
后記...............279
第1 章 從傳統(tǒng)向敏捷軟件開發(fā)的演進(jìn)
在產(chǎn)品開發(fā)中,“敏捷”和“精益”這一對(duì)熱詞如影隨形。精益產(chǎn)品開發(fā)離不開對(duì)敏捷軟件開發(fā)的深入理解,所以我們的精益之旅也將從敏捷軟件開發(fā)開始。本章講述軟件開發(fā)從傳統(tǒng)進(jìn)化到敏捷背后的業(yè)務(wù)動(dòng)因以及敏捷軟件開發(fā)實(shí)踐體系。
傳統(tǒng)軟件開發(fā)方式面臨的挑戰(zhàn)
傳統(tǒng)軟件開發(fā)方法是與軟件工程的概念一同誕生的(圖1-1)。1968 年,北約(NATO)召開全球第一屆以“軟件工程”命名的會(huì)議,這次會(huì)議通常被視為軟件工程誕生的標(biāo)志。會(huì)議上提出了“軟件危機(jī)”的概念。隨著軟件復(fù)雜度的不斷提高,軟件項(xiàng)目普遍出現(xiàn)預(yù)算超支、質(zhì)量低、性能差、不符合實(shí)際需求和延期等問題,造成所謂的“軟件危機(jī)”。
圖1-1 傳統(tǒng)開發(fā)方法的產(chǎn)生歷程
當(dāng)時(shí),業(yè)界普遍認(rèn)為,軟件行業(yè)應(yīng)該借鑒工程領(lǐng)域的經(jīng)驗(yàn),“系統(tǒng)地應(yīng)用工程管理方法”,以此來應(yīng)對(duì)軟件危機(jī)。這是軟件工程誕生的背景,在這一思路下產(chǎn)生的軟件開發(fā)方法就是傳統(tǒng)軟件開發(fā)方法。它們共同的特點(diǎn)是強(qiáng)調(diào)計(jì)劃、管控和結(jié)構(gòu)化的工程方法,并遵循嚴(yán)格的生命周期概念,把軟件開發(fā)分割為順序階段構(gòu)成的過程,瀑布式開發(fā)方法是其中的代表之一。
相比作坊式的開發(fā),傳統(tǒng)方法開發(fā)方法進(jìn)步明顯。它讓產(chǎn)品開發(fā)有矩可循,讓項(xiàng)目和產(chǎn)品的成功可以重復(fù),讓組織的能力可以被評(píng)估,這些當(dāng)然是好的。圖1-1 是傳統(tǒng)開發(fā)方法的大致發(fā)展歷程,到了上世紀(jì)90 年代初,CMMI 和PMI 項(xiàng)目管理知識(shí)體系[1] 成為傳統(tǒng)產(chǎn)品開發(fā)管理方法的典型代表。
然而,傳統(tǒng)方法并沒有從根本上解決軟件危機(jī),軟件項(xiàng)目的失敗率依然居高不下,甚至越來越糟糕。在這方面被引用得最多的是Standish Group 定期發(fā)布的IT 項(xiàng)目報(bào)告[2],該報(bào)告在1994 年第一次發(fā)布時(shí)的數(shù)據(jù)顯示,項(xiàng)目成功比例只有16%,有31% 在發(fā)布前就被“砍掉”,剩下的53% 平均超出了預(yù)算189%。
人們認(rèn)識(shí)到,遵循嚴(yán)格生命周期的概念,把開發(fā)分割為順序階段構(gòu)成的過程,實(shí)施起來不現(xiàn)實(shí),造成了以下直接的危害。
�6�1 希望通過對(duì)各個(gè)階段設(shè)置關(guān)卡,嚴(yán)格控制,以期更早地發(fā)現(xiàn)問題,卻滯后了集成和測(cè)試,讓錯(cuò)誤的發(fā)現(xiàn)延遲到最后,這是很多項(xiàng)目失敗的根源。
�6�1 希望一開始就能設(shè)定完整和正確的需求,這對(duì)軟件產(chǎn)品越來越不可能,因?yàn)橛脩粢膊恢阑蛘f不清楚自己想要什么。事實(shí)上,對(duì)需求的挖掘和理解,應(yīng)該是一個(gè)持續(xù)的過程,需要不斷的反饋。
�6�1 把成功定義為“遵循最初的計(jì)劃和范圍”。為了確保項(xiàng)目的“成功”而避免或拒絕進(jìn)行合理的變更,卻忽略了“達(dá)成商業(yè)目標(biāo)才是真正的成功”。這已經(jīng)成為業(yè)務(wù)成功的一個(gè)嚴(yán)重障礙。
另一方面,傳統(tǒng)產(chǎn)品開發(fā)方法強(qiáng)調(diào)控制,所以一旦流程出現(xiàn)問題,自然的應(yīng)對(duì)就是進(jìn)一步加強(qiáng)管控,流程本身有自我復(fù)雜化的趨勢(shì),反而會(huì)壓制關(guān)鍵軟件開發(fā)人員的主觀能動(dòng)性。
面對(duì)以上問題,對(duì)傳統(tǒng)軟件開發(fā)方法的反思,幾乎與其本身一樣悠久。比如,瀑布模型的提出者Wiston Royce 1970 年在他的論文[3] 中,只是把瀑布模型作為一個(gè)理論模型提出,并警告人們它絕對(duì)不適合用來進(jìn)行大型軟件開發(fā)。在論文的后半部分,Royce 提出了一個(gè)包含原型和各階段之間反饋的修正模型。遺憾的是,業(yè)界當(dāng)時(shí)渴望的是一種建構(gòu)式工程方法,瀑布模型迎合了這一要求,導(dǎo)致反對(duì)瀑布模型的Royce 反倒被業(yè)界稱為“瀑布模型之父”。至于Royce 的忠告,也只有等到30 年后敏捷運(yùn)動(dòng)興起時(shí)才又被人們重新提起。
從傳統(tǒng)到敏捷
面對(duì)傳統(tǒng)軟件工程方法的現(xiàn)實(shí)問題,一批輕量級(jí)的軟件開發(fā)方法陸續(xù)涌現(xiàn)(圖1-2),它們共同的特點(diǎn)是遵循演進(jìn)和迭代的模型。其中,上世紀(jì)90 年代出現(xiàn)的Scrum 和極限編程在實(shí)踐上最為成功,它們都是迭代和增量的軟件開發(fā)框架。兩者的區(qū)別是,Scrum只包含管理實(shí)踐,而極限編程同時(shí)涵蓋工程和管理實(shí)踐。
圖1-2 敏捷產(chǎn)生和發(fā)展的歷程
上世紀(jì)90 年代,另一個(gè)主要變化是PC 軟件流行和第四代編程語言的出現(xiàn),面向?qū)ο蠛驮O(shè)計(jì)模式運(yùn)動(dòng)的興起,使小型開發(fā)項(xiàng)目蓬勃發(fā)展,同時(shí)互聯(lián)網(wǎng)應(yīng)用和開源社區(qū)也在此時(shí)興起,有別于傳統(tǒng)的開發(fā)模式不斷涌現(xiàn),優(yōu)秀個(gè)人在程序開發(fā)中的作用越來越明顯。
這些因素都讓非傳統(tǒng)開發(fā)方法有了實(shí)驗(yàn)的土壤。其結(jié)果是,一方面質(zhì)量問題層出不窮,促使源自全面質(zhì)量管理體系的CMM/CMMI 在這一時(shí)間迅速繁榮和推廣;另一方面也產(chǎn)生了許多不同于傳統(tǒng)方法的有效實(shí)踐,讓業(yè)界看到新的可能。敏捷運(yùn)動(dòng)這時(shí)呼之欲出,它既是對(duì)傳統(tǒng)的反叛,也是對(duì)野蠻生長(zhǎng)的規(guī)范。
2001 年2 月,17 位輕量級(jí)軟件工程方法的代表人物齊聚美國(guó)猶他州的雪鳥滑雪勝地,在兩天的會(huì)議之后,發(fā)布了對(duì)后來產(chǎn)生巨大影響的《敏捷軟件開發(fā)宣言》[4],如圖1-3所示,敏捷宣言陳述了他們共同認(rèn)可的軟件開發(fā)方法理念,同樣重要的是,他們找到“敏捷”這個(gè)詞來總領(lǐng)這些理念。
敏捷概念在2001 年出現(xiàn),可謂適逢其時(shí)。當(dāng)時(shí)一方面,傳統(tǒng)方法變得越來越臃腫笨重,卻沒有解決軟件危機(jī);另一方面,人類正在進(jìn)入互聯(lián)網(wǎng)時(shí)代,軟件業(yè)對(duì)響應(yīng)變化和創(chuàng)新的要求迅速升級(jí),這是更根本的原因,畢竟需求才是行業(yè)發(fā)展最好的助推劑。很快,敏捷成為一場(chǎng)運(yùn)動(dòng),被迅速推廣和應(yīng)用。
圖1-3 《敏捷軟件開發(fā)宣言》
理解敏捷必須回歸業(yè)務(wù)視角
《敏捷宣言》屬于價(jià)值觀層面的宣導(dǎo),對(duì)敏捷的推廣和公眾的認(rèn)知起到了很大的作用。但對(duì)于敏捷是什么,卻從來沒有統(tǒng)一的定義。2010 年,軟件工程大師Ivar Jacobson 在一篇博文中這樣說:“過去你問我支不支持敏捷,我會(huì)說哪些支持,哪些不支持,并給出我的理由。但現(xiàn)在你再問,我就只能回答支持。因?yàn),如今敏捷的意思已?jīng)演變成“軟件開發(fā)中一切好的東西(Everything good about software development)!盜var 一語道破了真相。如圖1-4 所示,敏捷成了一個(gè)集合性的概念,一切好的,都?xì)w入敏捷,而一切失敗,都?xì)w于不敏捷。這在商業(yè)上或許不錯(cuò),卻不利于概念的明晰和有效實(shí)施。
畢竟,要真正理解敏捷,還是要回歸業(yè)務(wù)目標(biāo)。產(chǎn)品開發(fā)的最終目標(biāo)是業(yè)務(wù)成功,這是沒有異議的。接下來我們將從目標(biāo)出發(fā),理解敏捷的意義所在,并以此來指導(dǎo)我們具體落實(shí)敏捷實(shí)踐。
圖1-4 霧里看花,敏捷是一個(gè)集合性名詞
你還可能感興趣
我要評(píng)論
|