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