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