軟件企業(yè)過程改進(jìn)是一個持續(xù)的過程,從過程的初次建立到能真正產(chǎn)生應(yīng)用效果,需要一個相當(dāng)長的時間。本文結(jié)合筆者曾經(jīng)親歷的過程改進(jìn)的經(jīng)驗,從過程改進(jìn)應(yīng)該經(jīng)歷的階段和過程文件應(yīng)該滿足的規(guī)范兩方面與大家進(jìn)行分享。
(一)軟件過程改進(jìn)四步曲
筆者整理自己的親身經(jīng)歷,將軟件過程改進(jìn)活動分成如下四個階段:初次建立階段、僵化執(zhí)行階段、過程優(yōu)化階段和固化執(zhí)行并持續(xù)改進(jìn)階段。
1、初次建立階段
由于每一家公司的企業(yè)文化、客戶群體、業(yè)務(wù)方向、發(fā)展水平等都不一樣,因此我們切忌照搬CMMI的理論或其他公司的標(biāo)準(zhǔn)CMMI實施體系文件,這樣注定會失敗。初次建立階段一般需要歷時8到10個月左右的時間。
在初次建立階段,我們需要完成如下工作:
(1)聘請CMMI顧問公司;
(2)在顧問公司指導(dǎo)下,組建MSG(公司高層管理委員會)和SEPG(軟件工程過程組);
(3)提供真實完整的材料,讓顧問公司對單位的現(xiàn)狀進(jìn)行充分分析,確定CMMI實施和認(rèn)證級別;
(4)根據(jù)公司現(xiàn)狀和階段發(fā)展目標(biāo),MSG、SEPG和顧問一道確定重點實施的PA(過程域);
(5)由顧問給MSG、SEPG和軟件從業(yè)相關(guān)人員開展CMMI理論體系的培訓(xùn);
(6)按計劃組建TWG(技術(shù)工作組),在SEPG成員帶領(lǐng)下編制適合本公司特點的CMMI過程體系文件;
(7)組織SEPG和MSG對被建立的過程體系文件進(jìn)行審核和審批;
(8)選擇試點項目(試點項目的個數(shù)根據(jù)公司具體情況確定)執(zhí)行全部或部分過程;
(9)根據(jù)試點反饋結(jié)果修改過程文件;
(10)發(fā)布并執(zhí)行過程文件。
在該階段,我們需要重點注意以下事項:
(1)公司高層領(lǐng)導(dǎo)需要十分重視并親次參與過程改進(jìn)工作;
(2)公司需要提供充足的人力資源和經(jīng)費支持;
(3)此階段SEPG必須是對CMMI理論堅信不渝的專職人員并全程參與過程改進(jìn)和體系文件的建立工作;
(4)讓盡可能多的基層軟件從業(yè)相關(guān)人員真正參與過程改進(jìn)和體系文件的建立工作;
(5)每一個過程文件的建立需要進(jìn)行充分的討論和溝通,盡可能達(dá)成一致意見。
2、僵化執(zhí)行階段
所謂僵化執(zhí)行,是指公司的一種指令性或強(qiáng)制性行為,通俗一點說就是“無條件執(zhí)行”。僵化執(zhí)行階段一般需要歷時3到6個月左右的時間。
在該階段,我們需要完成如下工作:
(1)成立SQA(軟件質(zhì)量保證)組織,負(fù)責(zé)培訓(xùn)、指導(dǎo)和審計項目組過程執(zhí)行工作;
(2)項目組接受相關(guān)過程培訓(xùn)和考核;
(3)項目組執(zhí)行過程;
(4)收集過程改進(jìn)意見或建議。
在該階段,我們需要重點注意以下事項:
(1)SQA必須是對CMMI理論堅信不渝的專職人員,并且有豐富的項目管理經(jīng)驗和出色的溝通能力;
(2)任何項目任何人不能以過程不完善或不符合實際情況為借口而拒絕執(zhí)行;
(3)有固定的人員(最好是SEPG成員)收集項目組執(zhí)行過程時反饋的意見或建議;
(4)過程培訓(xùn)需要在項目組執(zhí)行過程之前進(jìn)行。
3、過程優(yōu)化階段
過程優(yōu)化階段主要根據(jù)過程執(zhí)行反饋意見不斷完善相關(guān)過程。過程優(yōu)化階段一般需要歷時6到9個月左右的時間。
在該階段,我們需要完成如下工作:
(1)根據(jù)僵化階段收集的過程改進(jìn)意見及過程評估結(jié)果改進(jìn)并發(fā)布過程;
(2)沒有接受過過程培訓(xùn)的項目組或項目成員接受相關(guān)過程培訓(xùn)和考核;
(3)項目組執(zhí)行過程;
(4)及時收集過程執(zhí)行數(shù)據(jù),定期(推薦三個月一次)評估過程改進(jìn)效果;
(5)定期(推薦三個月一次)進(jìn)行過程改進(jìn)并發(fā)布最新過程。
在該階段,我們需要重點注意以下事項:
(1)鼓勵項目組提出過程改進(jìn)意見;
(2)有固定的人員(最好是SEPG成員)及時收集項目組執(zhí)行過程時反饋的意見或建議;
(3)過程評估和過程改進(jìn)一般一個季度進(jìn)行一次,不宜太頻繁。
4、固化執(zhí)行并持續(xù)改進(jìn)階段
經(jīng)過了一段時間優(yōu)化的過程一般比較符合公司的實際情況,這時候可以固化執(zhí)行。固化執(zhí)行并持續(xù)改進(jìn)是一個長期的過程,這時公司過程得到不斷的執(zhí)行和改進(jìn),公司達(dá)到更高的能力級別。
在該階段,我們需要完成如下工作:
(1)沒有接受過過程培訓(xùn)的項目組或項目成員接受相關(guān)過程培訓(xùn)和考核;
(2)項目組執(zhí)行過程;
(3)及時收集過程執(zhí)行數(shù)據(jù),定期(推薦半年一次)評估過程改進(jìn)效果;
(4)定期(推薦半年一次)進(jìn)行過程改進(jìn)并發(fā)布最新過程。
在該階段,我們需要重點注意以下事項:
(1)鼓勵項目組一如既往地提出過程改進(jìn)意見;
(2)有固定的人員(最好是SEPG成員)定期或不定期收集項目組執(zhí)行過程時反饋的意見或建議;
(3)此階段SEPG可以是兼職人員;
(4)過程評估和過程改進(jìn)一般半年進(jìn)行一次。
(二)過程文件需要滿足的規(guī)范性要求
過程文件是過程改進(jìn)的重要成果,是指導(dǎo)項目組開展項目活動的規(guī)范性文件。過程文件除了其內(nèi)容要具有科學(xué)性、實用性和可執(zhí)行性外,其表現(xiàn)形式應(yīng)該簡單化、通俗化、標(biāo)準(zhǔn)化和專業(yè)化。一般來講,在顧問公司的指導(dǎo)下,嚴(yán)格按照過程改進(jìn)計劃完成的過程文件,在內(nèi)容上都具有比較高的質(zhì)量,因此這里我們只重點討論一下過程文件的表現(xiàn)形式要求。
1、簡單化要求
我們知道,建立質(zhì)量保障體系的初衷是“使復(fù)雜問題簡單化、程序化”而不是相反,因此,我們建立的過程文件一定要盡可能簡單、清晰,讓文件執(zhí)行者比較容易掌握。任何復(fù)雜的體系文件是注定得不到長久執(zhí)行或沒有好的執(zhí)行效果的。
2、通俗化要求
沒人愿意看含混晦澀的文章。通俗易懂直接決定了執(zhí)行者的接受程度,另外也能縮短培訓(xùn)時間、提高培訓(xùn)效率。過程文件是需要被現(xiàn)在和將來的軟件開發(fā)人員長期執(zhí)行的體系文件,因此應(yīng)盡可能通俗易懂。
3、標(biāo)準(zhǔn)化要求
過程文件的編寫應(yīng)該有統(tǒng)一標(biāo)準(zhǔn)和風(fēng)格,統(tǒng)一的文件編寫標(biāo)準(zhǔn)和風(fēng)格一方面能減少文件體系本身錯誤的發(fā)生,另一方面也方便文件執(zhí)行者對相關(guān)文件體系的一致性理解,避免同一內(nèi)容的不同理解而產(chǎn)生執(zhí)行上的偏差或錯誤。
4、專業(yè)化要求
我們制定的過程文件是軟件開發(fā)方面的質(zhì)量保障體系文件,因此一定要用軟件行業(yè)的名詞或術(shù)語,這些名詞或術(shù)語也需要在文件的顯示位置予以定義或說明;“隔行如隔山”,盡量不采用其它行業(yè)的專用名詞,否則不方便執(zhí)行者理解。