隨著越來越多的企業(yè)自行或者在咨詢公司的幫助下導(dǎo)入IPD,IPD已經(jīng)在國內(nèi)很多企業(yè)發(fā)揮了巨大的作用,對于涉及軟件開發(fā)的企業(yè)來說,IPD與CMM的結(jié)合,效果還是非常不錯的,但是隨著敏
捷開發(fā)理論及實(shí)踐的不斷發(fā)展,敏捷開發(fā)也帶來了另一種不錯的選擇,特別是對于一些外部環(huán)境復(fù)雜、客戶需求變化快的企業(yè)而言,敏捷與IPD的結(jié)合也成了企業(yè)當(dāng)前推行或者預(yù)備導(dǎo)入IPD面臨的一
個難題。華為從1998年在IBM的幫助下引入IPD,采取的是IPD+CMM的開發(fā)模式,但是從2009年開始,華為大規(guī)模推行IPD+敏捷的開發(fā)模式,IPD+敏捷的開發(fā)模式不僅沒有降低華為產(chǎn)品的質(zhì)量,拖累企業(yè)的發(fā)展,反而讓華為產(chǎn)品更加完美的滿足了客戶的需求。
IPD模式下如何進(jìn)行敏捷開發(fā),筆者通過分析成熟應(yīng)用敏捷開發(fā)的企業(yè)的成功實(shí)踐,特別是重點(diǎn)對比分析華為的IPD+敏捷開發(fā)模式,發(fā)現(xiàn)華為等企業(yè)在這種開發(fā)模式上的成功,其實(shí)有著必然的因素,也可以這么說,在IPD+敏捷的開發(fā)模式上有著多種成功且成熟的實(shí)踐,這些好的實(shí)踐主要體現(xiàn)
首先是堅(jiān)持系統(tǒng)工程分析過程,這是IPD與敏捷開發(fā)銜接的關(guān)鍵點(diǎn)。推行IPD不是意味著固定的開發(fā)流程和開發(fā)節(jié)奏,推行敏捷開發(fā)也不是意味著一定要靈活,不寫文檔,很多企業(yè)軟件人員甚至高層管理者對敏捷開發(fā)的理解存在誤區(qū),筆者曾在某企業(yè)調(diào)研,企業(yè)在
之前已經(jīng)自行導(dǎo)入IPD,建立了IPD流程,對于軟件開發(fā),引入了敏捷開發(fā)。筆者對敏捷開發(fā)推行現(xiàn)狀做了交流,發(fā)現(xiàn)企業(yè)對敏捷開發(fā)的整體感受就是每天召開了站立會議,以及不要寫文檔。同時在對
企業(yè)的全面調(diào)研中還發(fā)現(xiàn),軟件和硬件之間缺乏有效協(xié)同,硬件對軟件的需求變更頻繁,而且軟件和硬件開發(fā)節(jié)奏也不同步。
敏捷開發(fā)針對各軟件開發(fā)組,但是一個產(chǎn)品不僅是一個軟件開發(fā)組,一般都會包含多個軟件開發(fā)組,還會包含硬件、結(jié)構(gòu)、電氣等開發(fā)小組,各開發(fā)組只是整個新產(chǎn)品開發(fā)的一部分,之前的產(chǎn)品整體需求分析、產(chǎn)品總體設(shè)計(jì)對軟件開發(fā)影響重大。需求分析的充分完整,可以有效減少軟件開發(fā)的不
確定性,減少需求變更,降低設(shè)計(jì),提高設(shè)計(jì)效率。敏捷開發(fā)的適應(yīng)外部需求的變更并不意味著無限的需求變更。IPD與敏捷的結(jié)合的關(guān)鍵是需求,即Product Backlog。系統(tǒng)工程的作用,就是把市場/
客戶需求,以及內(nèi)部需求,通過需求分析、總體設(shè)計(jì),明確各軟件開發(fā)組需求,系統(tǒng)工程是IPD與敏捷銜接的關(guān)鍵過程。
? ? ? ?其次是產(chǎn)品開發(fā)管理思想的轉(zhuǎn)變。一方面是管理者與團(tuán)隊(duì)成員的思想的轉(zhuǎn)變。對于管理者,傳統(tǒng)的CMM管理強(qiáng)調(diào)計(jì)劃的控制,控
制是主旋律,管理者組織制定詳細(xì)的工作計(jì)劃,從上往下分配工作。而敏捷開發(fā)強(qiáng)調(diào)管理者的支撐及引導(dǎo)職能,強(qiáng)調(diào)管理者要去激發(fā)、激勵團(tuán)隊(duì),想辦法建設(shè)自組織自管理團(tuán)隊(duì),通過設(shè)立目標(biāo)去牽引團(tuán)
隊(duì)成員,幫助團(tuán)隊(duì)成員去完成工作任務(wù)。對于團(tuán)隊(duì)成員,傳統(tǒng)的CMM對團(tuán)隊(duì)成員的定位是聽從命令做工作,重視文檔交付,任務(wù)相對單一,聚焦專項(xiàng)能力。在敏捷開發(fā)模式下,強(qiáng)調(diào)團(tuán)隊(duì)成員的重要性,關(guān)注團(tuán)隊(duì)成員的工作積極性,強(qiáng)化任務(wù)的主動參與及認(rèn)領(lǐng),任務(wù)可以多樣化,面對面交流是主要
交流方式。
另一方面是敏捷開發(fā)強(qiáng)調(diào)簡單管理規(guī)則,如站立會議的“三固定”原則、燃盡圖、CI運(yùn)作規(guī)則等,與傳統(tǒng)CMM模式對比,敏捷開發(fā)的簡單管理規(guī)則,可以讓管理運(yùn)作高效。
? ? ? ?最后,是敏捷實(shí)踐過程中工具的應(yīng)用。
敏捷開發(fā),不僅是流程、實(shí)踐、新管理思想的應(yīng)用,高效工具的引入對敏捷的效果發(fā)揮至關(guān)重要??梢栽O(shè)想下,如果沒有持續(xù)集成工具,如何保證每日集成的正確性?沒有自動化測試,如何保證
代碼重構(gòu)的正確性并及時驗(yàn)證?等等。因此,推行敏捷開發(fā),必須重視工具的導(dǎo)入,華為在敏捷開發(fā)的推行過程中就自行研發(fā)并且同步引入了大量的工具以提高開發(fā)及測試效率。
IPD+敏捷開發(fā)模式的推行,不是一蹴而就的事情,可以實(shí)施分步走的策略。如下是某企業(yè)推行
IPD+敏捷開發(fā)的“三步走”策略,可供正在或者未來希望采取IPD+敏捷開發(fā)模式的企業(yè)作為借鑒:
三步走核心思想:敏捷轉(zhuǎn)型成功的關(guān)鍵是團(tuán)隊(duì)意識的轉(zhuǎn)變和能力的提升,通過三步走的策略,實(shí)現(xiàn)人員技能、工程能力、流程、工具等方面的積累,在風(fēng)險可控的情況下逐步達(dá)到全面敏捷的目標(biāo)。
項(xiàng)目級敏捷:實(shí)施的范圍限定在TR2-TR4A,聚焦單個項(xiàng)目組或多個項(xiàng)目組協(xié)同的開發(fā)過程和能力改進(jìn);對IPD流程的對外交付點(diǎn)及非研發(fā)領(lǐng)域(用服、Marketing等)沒有影響。
? ? ? ?版本級敏捷:版本級敏捷實(shí)施的范圍將擴(kuò)展到TR1’-TR6,對架構(gòu)、設(shè)計(jì)、非研發(fā)領(lǐng)域協(xié)同(用服,Marketing等)等多個方面能力提出了更高的要求;版本具備按特性向最終客戶分批交付的能力,加快對用戶響應(yīng)速度(TR1’表示在版本級敏捷下的TR1定義和當(dāng)前IPD流程中定義的TR1將會有
區(qū)別)。
? ? ? ?產(chǎn)品級敏捷:實(shí)施范圍擴(kuò)展到產(chǎn)品的全生命周期(含所有版本),以更小的需求包接納客戶需
求,給用戶提供更快的市場響應(yīng)速度,將在規(guī)劃、組織結(jié)構(gòu)、主流程、市場、財務(wù)、供應(yīng)鏈、商務(wù)等方面帶來巨大挑戰(zhàn)。