目前CMM/CMMI認證在國內的軟件企業比較流行,無論是大的上市公司還是小的軟件企業對此都情有獨鐘,希望借此提高公司的聲譽,改進研發的開發過程期望取得良好的效果。但是小公司往往由于資金、資源和規模等方面的原因不可能花巨額請好的咨詢公司或者國際的主任評估師,造成了心有余力而不足,不知道如何進行過程改進,無法實施的尷尬境地。本人原在某上市公司作為SEPG和SQA通過了CMM2級,并實施CMM3的經驗,現在在某小的軟件企業擔任項目管理,有部分經驗總結如下,供大家參考討論。 對于小公司的主要的目標是先生存,再發展。往往承接的項目比較小,時間要求比較急忙,并且人力、設備資源的限制,如果完全照搬CMM中KPA的要求去實施往往難度較大。公司的老板和員工產生抵觸情緒。我的經驗在開始實施階段,采取以下方法:
一、 確定生命周期模型,制定軟件開發規范SPE
雖然說SPE(Software Product Engineering)這個KPA是在CMM三級中體現出來的,對于軟件開發過程的描述和要求;但是在小公司開始規范化中可以先初步的實施,對于公司領導和開發人員比較容易接受。目前,國內的一些小的企業大多數在具體的一個項目中都沒有開發規范,完全是手工作坊式的開發,思想深處是“重技術,輕管理”項目經理和開發人員雖然都學習過軟件工程理論,但是沒有明確的在開發過程中顯性的表現出來。制定出簡單而實用的開發技術規范,比較容易符合開發人員的慣有思路。主要的目的是在開發人員中建立起最直接的規范,培養他們的管理意識。這要比一開始就讓項目組去實施需求管理、項目策劃和項目的跟蹤與監督非技術的流程更實用。
在生命周期模型的選擇上面,我還是建議對于不成熟的公司,采用重疊瀑布型,原因有兩個:首先,瀑布型是“線性化”大家最容易掌握并能熟練應用其思想方法;其次,在其他的生命周期模型中細分后幾乎都能找“線性”的思想,為以后的改進打好基礎;
二、 項目策劃的實施,計劃的制定
在項目執行過程中需要制定計劃,這是CMM二級中SPP(SoftWare Project Planning)的核心內容,并且是SPTO(SoftWare Project Tracking and Oversight)的依據;項目計劃這個活動的實施好壞直接影響到2個KPA的效果。我認為這是CMM二級中的難點之一;在小公司實施CMM開始階段,開發人員不習慣也不可能準確的在制定計劃前估計出項目的規模、工作量、進度、計算機關鍵資源、預測風險及其預防措施,但是對于計劃制定的必要性所有人還是比較認可的。所以在開始階段讓項目組一起討論制定出計劃 (討論的時候項目管理人員有意識的引導項目組是作類似于估計的活動),由項目經理或者項目管理人員跟蹤計劃,在項目結束后,總結項目的進展情況并記錄下來。作為下次開發的經驗。幾個項目的完成后,有了歷史數據對估計的過程有實際的認識后,再明確的提出估計活動和SPTO的相關活動,大家就會很自然的接受并且去執行了,大大的減少了推廣的難度。
三、 建立評審機制
同行評審也是CMM三級的KPA之一;評審活動也可以在小的公司執行,首先從技術評審開始實施,管理評審可以先暫緩執行。技術評審對項目組的工作有著直接的幫助,并且能得到管理者的支持。評審會議可以采用討論、問答、講解、走讀等等形式(雖然理論上評審中不提倡討論并且要避免討論,但是我認為小公司在剛開始階段沒有必要嚴格遵守),執行一段時間后,所有的人對評審的流程和重要性有了充分的認識,結合公司的實際情況確定引入其他評審內容(例如里程碑的評審);但是要記住切不可急于求成,一旦評審會議造成走形式,產生負面影響,資源的浪費,人員情緒的抵觸,對于小公司來說是很不利的。
四、 建立配置管理制度
配置管理執行的過程中,暫時不設置SCCB這個機構,首先先確定受控的工作產品和做版本管理;進行相應的培訓讓項目組建立起基線、里程碑、版本一致性的概念并具體的工作為Check-in 和Check-out活動。對于配置審核、SCM活動狀態的審計等管理、驗證內容項目組可以暫緩執行,具體的工作可以由項目管理和配置人員作這方面的工作,發現問題提醒開發人員,及時進行糾正。上面的配置活動和采用的配置工具無關,及時公司沒有配置管理工具,用Windows目錄管理也不會影響執行的效果。
五、 監督體系的完善
監督體系可以從三個方面進行。第一、項目經理每周提交項目周報,內容包括,項目的進度是否符合計劃、從事的額外工作匯總、出現的問題及其解決辦法、人員的變化等方面;第二、測試人員對相應工作產品的審核,包括需求文檔、用戶說明書、代碼和產品質量等環節;第三、類似于SQA職責,主要的職責幫助制定計劃、配置活動,出現了非技術性問題,由其解決并匯報。這種情況下,對SQA的要求比較高的,不僅僅是擔任高級管理者的“耳目”的作用,而且還要能幫助解決項目組實際困難的職責。這需要一定的管理能力,工作技巧。
總的來說,小公司實施CMM應當符合自己公司的現狀,在人員、資源有限的情況下,將有限的精力用于“刀刃”上,每件事情都能起到積極的效果,保證產品和公司的最大利益這才是最關鍵的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/