最近受朋友公司所托,幫他們的測試團(tuán)隊(duì)與產(chǎn)品線質(zhì)量保障體系業(yè)務(wù)進(jìn)行業(yè)務(wù)咨詢。其中讓我比較感興趣的就是一個50人的測試部門,從5年前的初創(chuàng)的十幾人團(tuán)隊(duì)開始,經(jīng)歷了從混亂到有序的流程演變,通過團(tuán)隊(duì)乃至公司整體的意識認(rèn)知與實(shí)際行動,自始至終將產(chǎn)品質(zhì)量思維貫徹其中,最后讓公司通過了CMMI4級認(rèn)證。
能獲得這樣的成就,最根本的原因就在于公司上下團(tuán)結(jié)一致,各層部門與人員有效的發(fā)揮著各自的作用,堅(jiān)持不斷創(chuàng)新、總結(jié)、優(yōu)化各類工作流程與項(xiàng)目經(jīng)驗(yàn)。而更難得的是公司內(nèi)的人員與團(tuán)隊(duì)又始終保持著高度的目的與價(jià)值觀統(tǒng)一,這樣的公司總體來說想不成功都很難。
說到這里就不得不提一下CMMI這個概念了,相信在IT公司做過研發(fā)與測試的同學(xué)應(yīng)該都有所耳聞,這次我們就圍繞著CMMI來詳細(xì)說說與其相關(guān)的一些內(nèi)容。
CMMI的全稱為Capability Maturity Model Integration,即能力成熟度模型集成。最早的時(shí)候在部分國家與地區(qū)還是使用的是CMM這個標(biāo)準(zhǔn),但隨著模型本身的發(fā)展與演化,最后就變成了CMMI這個廣泛的認(rèn)證模型標(biāo)準(zhǔn)了。
那CMMI又有什么用呢?企業(yè)在集成了CMMI的成熟度模型之后,可以增強(qiáng)軟件的開發(fā)與改進(jìn)能力,也方便對軟件工程過程進(jìn)行管理和優(yōu)化,從而能按時(shí)地、不超預(yù)算地開發(fā)出高質(zhì)量的軟件;這么說可能會有點(diǎn)虛,其實(shí)說直白點(diǎn)就是規(guī)范企業(yè)的項(xiàng)目產(chǎn)品執(zhí)行過程。
如果企業(yè)嚴(yán)格依照CMMI的要求去執(zhí)行產(chǎn)品或項(xiàng)目的流程,認(rèn)證時(shí)會評估企業(yè)這套執(zhí)行流程就給與評分和改進(jìn)建議,流程中的需求分析、設(shè)計(jì)、編碼、測試、集成、交付一些列的動作就可以依照這個標(biāo)準(zhǔn)來進(jìn)行優(yōu)化和提升,并且CMMI認(rèn)證的專業(yè)性也是毋庸置疑的,所以帶給企業(yè)的執(zhí)行流程方面的提升也是顯而易見且效果巨大的。
另外,如果企業(yè)的項(xiàng)目都是以招標(biāo)的形式進(jìn)行獲取的話,通過CMMI的高等級認(rèn)證,它可以幫助企業(yè)在招投標(biāo)中獲得高額加分,一般情況下可以獲得2-7分的加分。
某些情況下企業(yè)可以靠CMMI認(rèn)證獲得高額政府補(bǔ)貼,部分地區(qū)的補(bǔ)貼可以達(dá)到幾十萬元;至于CMMI為企業(yè)帶來的其他正向影響也是不勝枚舉,比如行業(yè)標(biāo)桿影響力、企業(yè)的品牌宣傳、融資時(shí)的優(yōu)勢等等。
CMMI一共分為5級,1級最低,5級最高,每一級的定義如下。
產(chǎn)品或項(xiàng)目的研發(fā)過程是混亂的,對過程管理幾乎沒有定義,就是我們平時(shí)所說的干到哪算哪。過程中的風(fēng)險(xiǎn)與不可控環(huán)節(jié)隨處都是,這樣的狀態(tài)下研發(fā)出的產(chǎn)品自然沒有任何的高質(zhì)量保障。說的極端點(diǎn),產(chǎn)品是否OK完全看運(yùn)氣。
產(chǎn)品或項(xiàng)目的研發(fā)過程中建立了基本的項(xiàng)目管理過程來跟蹤費(fèi)用、進(jìn)度和功能特性。制定了必要的過程規(guī)范,并能復(fù)用之前項(xiàng)目中成功經(jīng)驗(yàn)。一般來說大部分的小公司都處于在這個階段,有基本的研發(fā)流程與項(xiàng)目管理角色參與其中,但也僅限于此,項(xiàng)目中的時(shí)間、成本、質(zhì)量無法做到應(yīng)有的及時(shí)管控與優(yōu)化。盡管可以從既有與過往的項(xiàng)目中復(fù)盤進(jìn)行部分的完善與優(yōu)化,但也有其自身的局限性。
企業(yè)已經(jīng)將產(chǎn)品或項(xiàng)目的過程有了一整套完整的實(shí)施流程,并演化成企業(yè)自身的標(biāo)準(zhǔn)軟件過程。所有項(xiàng)目均使用經(jīng)批準(zhǔn)、剪裁的標(biāo)準(zhǔn)軟件過程來開發(fā)和維護(hù)軟件,軟件產(chǎn)品的生產(chǎn)在整個軟件過程是可見的。到了這一等級,整個產(chǎn)品或項(xiàng)目的研發(fā)過程已經(jīng)是相當(dāng)?shù)耐晟屏?,其中的每一個階段的準(zhǔn)入、輸入、輸出、成果物都是經(jīng)過準(zhǔn)確標(biāo)準(zhǔn)評審而產(chǎn)生的正向結(jié)果,也正是因?yàn)檫@樣的嚴(yán)格標(biāo)準(zhǔn),才能確保整個研發(fā)的鏈路中很少會出現(xiàn)不可控因素與低級風(fēng)險(xiǎn)產(chǎn)生,從而保證了產(chǎn)品與項(xiàng)目的高質(zhì)量交付與上線。
分析對軟件過程和產(chǎn)品質(zhì)量的詳細(xì)度量數(shù)據(jù),對軟件過程和產(chǎn)品都有定量的理解與控制。管理有一個作出結(jié)論的客觀依據(jù),管理能夠在定量的范圍內(nèi)預(yù)測性能。
這一級別是在3級的基礎(chǔ)上增加了數(shù)據(jù)論證與量級控制標(biāo)準(zhǔn),研發(fā)的過程中對于每個階段的要求都有精確的度量數(shù)據(jù),以此來進(jìn)行高精度的產(chǎn)品與項(xiàng)目質(zhì)量管控。
試想一下,在這個等級中,測試團(tuán)隊(duì)需要在項(xiàng)目的測試階段嚴(yán)格做好每一項(xiàng)測試流程中的活動:測試計(jì)劃(是否細(xì)化到大中小周期)、測試用例(覆蓋率是否100%)、評審的時(shí)機(jī)是否在需求規(guī)格說明書在設(shè)計(jì)階段進(jìn)行、接口測試-功能測試-非功能測試-性能測試是否按照事前安排準(zhǔn)確執(zhí)行、測試報(bào)告中測試結(jié)果描述維度、問題的解決與跟蹤是否有明確的去向、是否符合執(zhí)行標(biāo)準(zhǔn)。
除了這些,還需要有缺陷防范機(jī)制;主動進(jìn)行技術(shù)變動管理與標(biāo)志、選擇、評價(jià)的機(jī)制;過程變動管理,定義過程改進(jìn)的目的,經(jīng)常地進(jìn)行過程改進(jìn)等等條件限制。
優(yōu)化管理級的量化反饋和先進(jìn)的新思想、新技術(shù)促使過程持續(xù)不斷改進(jìn)。這一等級的要求就已經(jīng)變得極其嚴(yán)苛了,需要在產(chǎn)品或項(xiàng)目的過程中特別關(guān)注軟件過程改進(jìn)的持續(xù)性、有效性以及自身加強(qiáng)。防止缺陷及問題的發(fā)生。不斷地提高整個的過程能力。另外對于執(zhí)行過程的效果,進(jìn)行成本/利潤分析,從成功的過程實(shí)踐中吸取經(jīng)驗(yàn),加以總結(jié)。
把最好的創(chuàng)新成績迅速向全組織轉(zhuǎn)移。對失敗的案例,由項(xiàng)目團(tuán)隊(duì)近行分析以找出原因。項(xiàng)目完成后進(jìn)行分析,通過來自過程的質(zhì)量反饋和吸收新觀念、新科技,使過程能不斷地得到改進(jìn)。最后對過程的評價(jià)相對標(biāo)準(zhǔn)軟件過程的改進(jìn),都在全組織內(nèi)推廣。
一般來說CMM1和CMMI2,企業(yè)只要有軟件研發(fā)的過程,企業(yè)實(shí)際經(jīng)營管理能夠正常運(yùn)轉(zhuǎn)且經(jīng)營狀態(tài)為續(xù)存,就滿足了要求。而從CMMI3開始才會有相應(yīng)的認(rèn)證證書,對企業(yè)也開始有了一定的要求了,如團(tuán)隊(duì)規(guī)模與人員角色數(shù)量規(guī)定。
認(rèn)證CMMI3級的話研發(fā)團(tuán)隊(duì)人數(shù)應(yīng)在15-20人左右,開發(fā)的產(chǎn)品需要準(zhǔn)備3個(兩個是研發(fā)完成狀態(tài),另一個是需要在研發(fā)中),評估小組成員4人(ATM),另外就是固定的辦公場所。
CMMI3的人員架構(gòu)需要1名發(fā)起人(公司法人或高層,法人最好),組織級5人(高層經(jīng)理、組織培訓(xùn)、過程與產(chǎn)品質(zhì)量保證、配置管理員、過程改進(jìn)小組EPG),項(xiàng)目級10人(負(fù)責(zé)該項(xiàng)目的項(xiàng)目經(jīng)理、開發(fā)與測試人員等),評估小組4人(主要負(fù)責(zé)協(xié)助主任評估師完成正式評估)。
一般來說CMMI3的認(rèn)證不會太困難,大部分的企業(yè)都是可以達(dá)到認(rèn)證條件的,只需要全力配合認(rèn)證機(jī)構(gòu)順利開展,并確保所需的材料與日常工作標(biāo)準(zhǔn)與輸出物OK的情況下,剩下的就只是水到渠成的事。
CMMI4的要求自然就更高了,它要求認(rèn)證企業(yè)必須擁有自己的項(xiàng)目庫,并且能從一定量的案例中做到實(shí)際的優(yōu)化,對人員(開發(fā)、測試、質(zhì)量經(jīng)理、ATM等)、軟件、企業(yè)經(jīng)營規(guī)模等要求都更高。
CMMI的認(rèn)證是可以越級的,但也僅限于到CMMI3,要認(rèn)證CMMI4與CMMI5的話必須先通過CMMI3的認(rèn)證并且持證時(shí)間滿一年后才可以。
CMMI4認(rèn)證的資格除了上面說的這些先決條件之外,另外很重要的就是在CMMI3認(rèn)證取得之后一直到CMMI4或5認(rèn)證開的這段時(shí)間是否有積累到一定量的項(xiàng)目實(shí)施經(jīng)驗(yàn)與成果累積,這里的積累不是單純的只要執(zhí)行就好了,重點(diǎn)在于是否可以按照后期需要認(rèn)證的CMMI等級的標(biāo)準(zhǔn)要求進(jìn)行相應(yīng)的材料與經(jīng)驗(yàn)累積。
說的通俗一點(diǎn)就是你想考個證,就必須復(fù)習(xí)和他相關(guān)的教材的意思。日常工作中是否有嚴(yán)格按照CMMI的認(rèn)證要求執(zhí)行,對應(yīng)的流程與標(biāo)準(zhǔn)是否有跡可循,文檔化、量化、持久化都是必不可少的手段。剩下的無非就是團(tuán)隊(duì)的規(guī)模是否達(dá)標(biāo),企業(yè)戰(zhàn)略目標(biāo)是否合理且明確等等條件。
能申請到CMMI5的公司都是非常厲害的,達(dá)到企業(yè)規(guī)模65人和項(xiàng)目規(guī)模6個的要求其實(shí)并不難,難就難在20個實(shí)踐領(lǐng)域。企業(yè)必須確保在滿足CMMI3的實(shí)踐領(lǐng)域基礎(chǔ)上追加這些并嚴(yán)格執(zhí)行這些認(rèn)證要求。
這里需要注意的是之前很多人說的22個過程領(lǐng)域其實(shí)是CMMI v1.3版本的叫法,2019年開始就全面改為CMMI2.0版本,此版本開始已經(jīng)將這個22個領(lǐng)域進(jìn)行了分解與合并,變成了現(xiàn)在的20個實(shí)踐領(lǐng)域。