2、項目計劃
凡事預則立,不預則廢。這里的“預”就是指計劃。對于軟件企業,計劃的重要性是不言而喻的。讓我們先看看A公司的項目計劃是如何制定的:在A公司,項目開始之前必須先估計項目的規模(以代碼行數來衡量);然后制定項目計劃。通常時間為2~3周,已知的最長有5周。EM負責制定項目 EWP(Engineer Work Paper),其中定義了項目需要的人力和計算機資源,由相關部門同意,并報研發總負責人批準后才能開始項目。
項目的正式開始時間由項目組的Kickoff Meeting算起,Closeout Meeting結束。
大概很多人都聽過這樣一句話:“計劃趕不上變化”。這種“變化”對某些行業而言也許并不會產生太大的影響,但對于軟件企業而言,卻會給軟件產品的質量保證帶來嚴重的負面影響。為什么會造成這種“計劃趕不上變化”的現象?究其原因,筆者認為主要是因為對計劃的重視程度不夠,計劃過于籠統、粗糙導致可執行性太差,再加上一些人為因素的影響,必然會產生這樣的后果。
如果我們的軟件企業都能像A公司這樣,在作計劃時能考慮到每一個細節,不是倉促做出決定,而是由所有的相關部門共同對產品計劃進行反復研究、制定、討論、修改,最終形成一套系統、嚴密、具有很強的可執行性的計劃。計劃一旦形成,就嚴格按照計劃去執行,而不受某個人、某件事的影響,那么就不僅能夠減少大量資源的浪費,產品的質量也得到了保障。
因此,對計劃的高度重視、周密制定、嚴格執行是企業有效保障產品質量的一個重要環節。
3、項目管理
當企業構架了合理的組織結構并制定了縝密的計劃后,就進入了產品的開發階段。在這個階段中,項目管理起了重要作用,它所涉及的環節相當具體復雜,下面先介紹一下A公司在項目管理上的具體細節:
(1)開發階段和項目周期開發階段比較明顯,注重各階段應完成的功能,對本階段應完成的工作不能留到下一階段。
(2)流程
A公司對流程比對項目更重視。
軟件開發流程非常規范和系統化,其流程的可執行性很高,并且能在實踐過程中不斷改進。A公司的流程已覆蓋到了一個項目研發的所有方面,包括從最開始的意向到最后軟件的版本發布(release),都有相應的流程規定,基本上已形成一種工業化的軟件開發。
人和流程是保證項目成功的兩個最關鍵因素。由好的人按好的流程進行項目開發,才能最大限度地保證項目的成功。一個好的流程可以保證差的人做出來的東西不至于太差,但不能確保做出精品。通過流程可以實現一種規范化、流水線化、工業化的軟件開發。
(3)計劃
1)計劃詳細、周到。
2)流程中明確定義開發階段。
3)每個階段都列出了該階段的各項活動,并詳細描述每項活動的屬性:
進入條件,輸入;
驗證方法;
結束條件,輸出。
4)每個階段結束都要召開階段結束會議。前一個階段結束才能進入下一階段。
5)計劃中每個活動都比較具體,每個活動的時間以天(半天)為單位。計劃包括了開展質量控制活動的時間。
(4)Review
按印度公司流程,一般把Review和測試作為保證軟件質量兩個主要手段。測試的重要性就不需說明了,而Review則是一個非常簡單有效并能盡早發現軟件中錯誤的方法,可以說,任何交付物都要經Review后才能進行基線化。目前A公司有很詳細全面、可執行性很高的Review流程和各種交付物的Review Checklist.
在印度軟件企業,現有這么一句口號:凡事有計劃,凡事必review.
(5)QA
QC(質量經理)作為質量保證部門(SQA)的代表,監督和保證項目的進展遵循QMS各項流程和模板,并且收集項目中發現的一些問題和解決方法以優化流程。