張曉燕
(上海坦當電子科技有限公司,上海 201705)
早在10年前國內(nèi)許多產(chǎn)品軟件研發(fā)企業(yè)一旦研發(fā)團隊上了規(guī)模,就會進行IPD體系的變革或CMMI的認證,目前,隨著電子商務(wù)以及產(chǎn)業(yè)互聯(lián)網(wǎng)化以及智慧生活的發(fā)展,快速響應(yīng)和高穩(wěn)定性成為最亟需的需求,敏捷開發(fā)模式應(yīng)運而生。騰訊、百度、網(wǎng)易、阿里等公司在所有產(chǎn)品線軟件開發(fā)團隊全面推行敏捷開發(fā)。那么IPD、CMMI和敏捷究竟是什么關(guān)系呢?現(xiàn)在筆者借助工作多家公司多年從事軟件管理體系建設(shè)經(jīng)驗與大家做下分享。
筆者初次接觸CMMI體系是在2001年在南京一家集成公司在為江蘇省移動公司打造移動2.0項目中。此項目與新加坡HP咨詢公司合作,將此作為項目作為公司通過CMM3.0的重點示范項目。筆者非常有幸成為EPG的成員之一,主負責此項目的過程體系以及核心域、過程文檔模板的制定與落地。通過此項目,筆者對CMMI體系有了充分的了解。CMMI把軟件開發(fā)視為一個過程,CMMI框架結(jié)構(gòu)建立在項目管理過程和過程管理的公共特性基礎(chǔ)之上,自行形成完整的理論與實踐框架。它對軟件各個階段過程以及核心領(lǐng)域的定義、實施、度量、控制和改善過程做出了具體要求。它將軟件階段過程分為4個專業(yè)領(lǐng)域、五個等級以及25個過程域,4個專業(yè)領(lǐng)域即軟件工程(SW)、系統(tǒng)工程(SE)、集成的產(chǎn)品和過程開發(fā)(IPPD)、采購(Supplier Sourcing),并具體定義出每個不同的等級要求。目前國內(nèi)的大多數(shù)軟件企業(yè)通過了CMM3.0認證。
CMMI的框架模型具體可包括:
(1)數(shù)千個公共微型小資料;
(2)每個構(gòu)件是由一個或者多個微型小資料組成;
(3)通過不同的微型小資料構(gòu)建不同的構(gòu)件;
(4)整個框架劃分為十二種構(gòu)件,以此十二種構(gòu)件為基礎(chǔ)進行推演變化;
(5)通過構(gòu)件不同再次重組與構(gòu)建形成新的框架。
CMMI通過十二種構(gòu)件來組織成不同的框架和層級,構(gòu)件由微型資料構(gòu)成,微型小資料均屬于公共資料,通過微型小資料的改變來實現(xiàn)構(gòu)件的改進;CMMMI將軟件研發(fā)看作工程管理,建立軟件工程管理制度,建立相應(yīng)的度量方式和明確的度量指標,使度量易于理解與執(zhí)行,從而控制軟件過程的研發(fā)時間和使用費用。為了不斷推進改進與改變,針對此過程建立了EPG來指導了管理者一次次將軟件開發(fā)過程的不斷優(yōu)化和技術(shù)的變更,從而促進管理效率的不斷提升,使管理標準化、管理化、自動化,實現(xiàn)最終目標提高生產(chǎn)力。筆者從事的集成公司用了3年的時間通過了CMM3.0認證,極大的標準化了研發(fā)過程的管理,使其產(chǎn)出得到了極大的保障,為客戶帶來了更穩(wěn)定更有效率的極致體驗。
IPD出現(xiàn)在國內(nèi)最早大約2008年。當時筆者在上海一家最大的旅游公司負責整個軟件管理體系的更新與改善。當時公司正處于蓬勃發(fā)展的階段,然而公司成立以后參照基本CMM體系以及國際4000體系基礎(chǔ)建立的軟件研發(fā)體系,尤其是瀑布式的開發(fā)模式嚴重阻礙了業(yè)務(wù)發(fā)展。尤其是在旅游業(yè),用戶的需求多變而又瑣細,如何快速的響應(yīng)市場需求,盡快將相應(yīng)的研發(fā)需求發(fā)布完成,以滿足用戶在線預(yù)定的需求,成了當時最亟待解決的問題。IPD應(yīng)運而生。IPD以市場為導向,以市場需求作為產(chǎn)品開發(fā)與迭代的源動力,重視客戶需求以及用戶體驗;IPD采用在公司內(nèi)部組建虛擬的投資決策委員會(IPMT)對產(chǎn)品開發(fā)團隊(PDT)的活動關(guān)鍵點進行決策的方式,決定投資與否;此虛擬團隊以如何快、準、低成本推進產(chǎn)品開發(fā)為目標,通過跨部門、跨組織成員組成,打破了部門之間的溝通壁壘;為了更好地跨部門合作,IPD通過對研發(fā)過程結(jié)構(gòu)化設(shè)計、異步開發(fā),在軟件系統(tǒng)的架構(gòu)上進行調(diào)整配合,增強了中臺系統(tǒng),輕量化級客戶端,使得數(shù)據(jù)庫分層分庫、虛擬化、隔離化,從而保證了系統(tǒng)輕盈、穩(wěn)定、體驗感受更加入心。
IPD核心內(nèi)容包括:
(1)IPD過程包括市場管理流程、產(chǎn)品研發(fā)流程、技術(shù)開發(fā)流程,流經(jīng)各個職能部門,從而在組織結(jié)構(gòu)上更加適用于矩陣式管理;同時互為起點與改進點,形成閉環(huán),是基于市場需求與客戶交付的全流程;
(2)IPD研發(fā)流程采用分層和并行開發(fā)的思想,自上而下設(shè)計,通過最下層各種模板和SOP組成,按照階段、步驟、任務(wù)、活動,將計劃、流程與實踐融為一體;
(3)IPD具體實施分為六大階段:概念、計劃、開發(fā)、驗證、發(fā)布、生命周期,每項工作明確規(guī)定,定義清晰,定義唯一責任人,明確各階段的輸入、輸出與樣例,明確評價要素,以及各時間節(jié)點。
IPD能夠更好地理解客戶需求和競爭態(tài)勢,以業(yè)務(wù)需求為出發(fā)點,定義和開發(fā)出具有競爭優(yōu)勢的差異化產(chǎn)品,注重產(chǎn)品生命周期,從而進一步實現(xiàn)產(chǎn)品的商業(yè)價值和產(chǎn)品持續(xù)改進,提升產(chǎn)品的成功率,加強自身的產(chǎn)品競爭力。IPD體系通過跨部門團隊和流程化運行,使各領(lǐng)域人才在相互協(xié)作中和流程以及知識體系支撐下更全面快速成長,更具有復合型能力,也為各個行業(yè)培養(yǎng)了一批批綜合性領(lǐng)軍人才。經(jīng)過3年的摸索與小規(guī)模試點,公司在2011年正式按照IPD管理模式進行工作。首先在組織架構(gòu)上進行了改革,實行業(yè)務(wù)線管理制度,也就是事業(yè)部分化的前身,從而保證管理細節(jié)的落地與更有成效;其次,在KPI績效管理上進行了改革,由原來的研發(fā)不參與業(yè)績考核,更改為研發(fā)與業(yè)務(wù)人員共為一體共同承擔業(yè)績考核,同時共享業(yè)績分紅,從而保證風險共擔利益共享,這極大地提升了研發(fā)人員工作積極性,一舉擊破業(yè)務(wù)與技術(shù)之間的隔閡;最后IPD的六大階段明確每個階段的產(chǎn)出與輸入,也明確了各個時間節(jié)點,從而更有效地提升了研發(fā)效率。這三個核心的改變,使得公司更上一層樓,從原來的科技公司進階成大型集團公司。
敏捷管理(Agile Management)是以項目、任務(wù)、人為起點,以迭代發(fā)布、循序漸進改進,以隨時站會、展板、進度條、實例化等工具推進進度與加強溝通,注重人與人之間的溝通,注重協(xié)作的管理模式。首先,它是一種開發(fā)方法,指導使用者用規(guī)定的環(huán)節(jié)去完成項目的開發(fā),小步快跑,迭代開發(fā),小模塊、小層次的進行研發(fā),避免一次性完成項目的交付所造成的時間與成本風險。某種意義上來講,這種開發(fā)方式的主要驅(qū)動核心是人。
敏捷式開發(fā)要求研發(fā)人員尤其是產(chǎn)品設(shè)計人員要與業(yè)務(wù)方面的參與者保持緊密溝通,使業(yè)務(wù)需求-產(chǎn)品設(shè)計-研發(fā)-測試驗證-上線齊頭并進,快速研發(fā)與被驗證,更快的交付業(yè)務(wù)需求更快獲得效益,提高市場優(yōu)先權(quán),降低改變的成本、提高系統(tǒng)的靈活性,降低投資的風險。敏捷開發(fā)核心做法是由分析人員對需求進行分析,架構(gòu)師整體設(shè)與細分可測試化、可視化、可演示化的模塊,然后交給不同的編程團隊,由編程團隊按照需求規(guī)格,把東西給做出來。所有的這些東西都是由不同的人在不同的時間完成的,按照計劃按照不同的特性模塊的優(yōu)先順序進行發(fā)布、演示,與業(yè)務(wù)相關(guān)人員進行溝通與協(xié)調(diào),保證每一個小模塊都符合業(yè)務(wù)部門的需求,最終保證最終的提交物符合業(yè)務(wù)投資的需求。更重要的是敏捷開發(fā)模式計劃性強,能夠有效降低改變所帶來的成本與風險。
敏捷開發(fā)具有4個核心價值觀和12條原則,通過這些價值觀和原則根據(jù)不同團隊需求的構(gòu)建不同敏捷實踐。敏捷的區(qū)別于其他管理模式的地方在于其將團隊協(xié)作、質(zhì)量、可工作的軟件為關(guān)注點。它是一個高度協(xié)作、不斷演進以及注重質(zhì)量的軟件開發(fā)方法,允許快速業(yè)務(wù)變更的開發(fā)實踐。
任何一個組織在追求卓越的過程中,都會嘗試多種途徑,采用不同的原則、方法及技術(shù)。一個對敏捷實踐感興趣的組織可能也會對IPD或能力成熟度模型集成(CMMI)或六西格瑪感興趣,反之亦然,因為這些都是通向卓越的手段。因此CMMI與敏捷框架在很多方面能夠相互融合,共處一室,取長補短,互為補充,甚至協(xié)同工作。管理上,如以市場為目標,IPD更加實用;如以項目為目標,敏捷更加實用。
IPD以整個產(chǎn)品為起點,將市場、開發(fā)(軟件、硬件)、結(jié)構(gòu)、生產(chǎn)、采購、財務(wù)等各個方面歸于全流程管理,以產(chǎn)品概念定義、計劃、開發(fā)、驗證、發(fā)布、維護等階段設(shè)置階段性決策點,通過決策點的控制進而對產(chǎn)品做出調(diào)整、保證投資收益比。而CMMI與敏捷管理模式均是以軟件研發(fā)過程為管理核心,注重實踐。CMMI是在研發(fā)過程中一般以瀑布模型為多,注重研發(fā)過程整體控制,強調(diào)流程和管理,以整體交付結(jié)果為準,優(yōu)點在于產(chǎn)品與研發(fā)更有整體性,缺點在于更改風險與成本較高;敏捷管理版本迭代的模式為核心,更加注重團隊及時溝通,強調(diào)擁抱變化,強調(diào)在高度信任的氛圍中,與客戶的緊密合作,更在意被激勵起來的個人之間的協(xié)作創(chuàng)新,優(yōu)點在于及時、快速,缺點在于缺乏整體感;所以,某種意義上,CMMI可以借用敏捷的一些管理實踐,如站立會議,結(jié)對編程等,敏捷管理可以借用CMMI的整體設(shè)計以及拆分細化的管理思路,從而保持團隊觀念一致,更有全局觀。
在這三種開發(fā)模式中,IPD深刻包含了“做正確的事”以及“把事情做正確”含義,為公司級運營流程,更為關(guān)注宏觀與戰(zhàn)略;CMMI和敏捷則更加注重工程實踐,可理解為同一個管理層級。某種意義上,CMMI和敏捷不具備高層決策能力,更關(guān)注戰(zhàn)術(shù)和執(zhí)行,將“事情做正確”。在實際工作中,建議以IPD的方式進行戰(zhàn)略定位與規(guī)劃,以CMMI和敏捷開發(fā)為戰(zhàn)術(shù),CMMI和敏捷開發(fā)在具體工作中相互補充、相互支持。由CMMI定義組織級或企業(yè)級改進的重點,回答項目應(yīng)該做什么,輔以敏捷開發(fā)小步快跑,以具體項目為起點,在不斷執(zhí)行中獲得最佳實踐,使得雙方在定位、執(zhí)行形成很好的相互補充的態(tài)勢,兩者的有效結(jié)合,有效地實現(xiàn)了個人績效向團隊績效、向組織績效的轉(zhuǎn)變的過程。CMMI實施過程中重文檔、重流程的缺點在敏捷管理中得到了避免,在實施中以組織實際價值、客戶體驗以及創(chuàng)新為重點;另一方面,組織體系上選用CMMI組織級保證過程管控,在具體研發(fā)時選用敏捷開發(fā)模式,二者合一的模式,有力地提高了產(chǎn)品質(zhì)量和產(chǎn)品發(fā)布的效率,促進開發(fā)團隊成員的協(xié)作,從而大大提高客戶的滿意度。作者正是把這一思想實際應(yīng)用到了自己工作的企業(yè)中,使得研發(fā)效率與研發(fā)質(zhì)量得到了極大的提高,使工作更有秩序感,成員更有成就感,獲得了公司上下一致認可。
任何一種思想都需用在實踐中方可體現(xiàn)其價值,筆者也希望大家能夠在實踐中不斷完善,不斷實踐,從而將IPD、CMMMI以及敏捷開發(fā)的模式更上一層樓,推陳出新,有更多的創(chuàng)新與創(chuàng)造,開拓更有效地管理模式。