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