期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
凡事預則立,不預則廢。這里的“預”就是指計劃。對于軟件企業,計劃的重要性是不言而喻的。讓我們先看看A公司的項目計劃是如何制定的:在A公司,項目開始之前必須先估計項目的規模(以代碼行數來衡量);然后制定項目計劃。通常時間為2~3周,已知的最長有5周。EM負責制定項目 EWP(Engineer Work Paper),其中定義了項目需要的人力和計算機資源,由相關部門同意,并報研發總負責人批準后才能開始項目。
計算機和通信技術的迅速發展,特別是Internet技術的發展與普及,為企業內部、企業與外部提供了快速、準確、可靠的信息交流渠道。信息化企業運作管理系統已成為企事業單位參與全球市場競爭的必備支持系統。正是由于這樣的市場需求與技術發展現狀,為我國的IT行業帶來了空前發展的機遇,特別是軟件行業。軟件企業能否抓住這樣一個難得的發展機會需要多方面的努力,其中軟件質量保障在其發展過程中占有重要的位置。眾所周知,印度已成為世界上軟件業增長最快的國家,目前每年軟件業產值達數十億美元,并且還在以每年30%~50%的速度增長。
比較我國和印度的軟件產業,就不難發現:中國擁有巨大的軟件市場和世界公認的軟件開發資源,在基礎研究和對技術前瞻性的把握上,也有自己的優勢,就整體社會經濟環境而言也優于印度。此外,中國的軟件開發人員費用比較低廉,僅是世界市場的1/3左右。雖然中國人并不缺乏軟件開發的天賦,但是在越來越強調規模化經營的今天,先天不足的管理痼疾使我們舉步維艱,難以擺脫小作坊式的軟件開發模式。而印度軟件業從一開始就立足于為美國軟件企業服務,并遵循其軟件開發的管理模式,與國際標準接軌。
管理上的問題不能得到徹底的解決,軟件的質量保障就無從談起。筆者最近在與印度一家通過了CMM4級評估的軟件公司(以下簡稱A公司)進行過程中,較為詳細地了解了他們有關項目管理的一些詳細情況,更深刻地感受到了項目管理的規范化與企業軟件質量保障之間的密切關系。下面想著重從軟件企業的構架,軟件項目計劃、項目管理、項目經理的職責等方面對印度軟件的項目管理及我國軟件質量保障應注意的問題進行一些經驗總結,供業內人士參考。
1、軟件企業的組織結構
(1)A公司結構
A公司中,QA(Quality Assure)部門與研發部門獨立,負責監督流程的執行。QA同時負責領導與研發部門組成的聯合工作組,制定公司流程。
SSG(System Support Group)類似我們的IT部門,負責公司所有計算機軟件和硬件資源的分配和管理。所有的辦公環境和開發/實驗室環境由SSG負責安裝和維護,計算機資源屬于SSG,由各個項目向SSG提出需求,項目結束后,設備需要交還給SSG.個人和項目組沒有固定的軟件和硬件資源。SSG是與研發平行的部門。
人力資源部門負責公司的人力資源管理,并維護員工的技能數據庫。項目開始時,項目組向人力資源申請人力,向SSG申請計算機硬件和軟件。項目結束時需要釋放計算機資源給SSG,釋放人力資源到人力資源池,并同時更新員工的技能數據庫。研發部門的人力資源由研發總負責人和其助手分配(類似我國各公司的人力資源部)。
(2)項目組結構
1)A公司對項目組進行獨立核算,項目具體負責人為PC(Project Coordinator),負責項目計劃和執行,對項目具體成員進行分工。在每個階段的結束會議上(如概要設計結束),PC要接受QC(Quality Coordinator)的審查。除了PC與QC的接口外,所有其他外部接口都由 EM(Engineer Manager)完成,EM負責與客戶打交道,向SSG、人力資源要求資源,與其他項目組協調進度。
2)匯報關系為:Team Member->Team Leader->PC->EM->研發總負責人。
3)印度工程師分為7級,半年一次考評,即半年有一次升級機會。
1級:Software Engineer,剛畢業的本科生和研究生。
2級:Senior Software Engineer. 3級:Project Leader. 4級:Project Manager. 5級:Senior Project Manager.
3級可以成為PC,4級可以成為EM.剛開始平均2年升一級,越往后升職越慢。
A公司規定,一人最多可以同時兼任兩個項目的PC,EM管理的項目沒有限制。
A公司通常的項目組為4到5人,最多不超過10人。
以上是A公司(同時也是印度大多數規范化的軟件公司)的組織結構和項目組結構。可以看出,A公司的組織結構非常清晰,各個部門分類非常細,任務明確,軟件生產的每一個步驟都有專門的部門、專門的人員負責,從最基礎的開發人員到負責統領全局的總經理,層層管理,溝通渠道暢通。而在我國,管理的不規范往往首先體現在公司的組織結構上,集中表現為部門的缺失和管理的交叉上。我國的軟件公司,大部分規模較小,開發人員超過100人的公司很少。在印度,軟件公司無論大小,都是“麻雀雖小,五臟俱全”,絕不會因為公司的規模大小而改變合理的組織結構。因此筆者認為,國內的軟件企業要想有效地保障產品質量,首先就要在構架合理的組織結構上下功夫,這就如同蓋高樓首先要打好地基一樣,地基不打牢,結構不合理,其他方面再下功夫也是徒勞。有人說,因為國內軟件企業規模小,所以造成結構設置的欠缺,但筆者認為恰恰是因為沒有建立一個規范化的組織結構,才會使軟件產品質量不保,進而嚴重影響了企業的發展擴大。
2、項目計劃
項目的正式開始時間由項目組的Kickoff Meeting算起,Closeout Meeting結束。
大概很多人都聽過這樣一句話:“計劃趕不上變化”。這種“變化”對某些行業而言也許并不會產生太大的影響,但對于軟件企業而言,卻會給軟件產品的質量保證帶來嚴重的負面影響。為什么會造成這種“計劃趕不上變化”的現象?究其原因,筆者認為主要是因為對計劃的重視程度不夠,計劃過于籠統、粗糙導致可執行性太差,再加上一些人為因素的影響,必然會產生這樣的后果。
如果我們的軟件企業都能像A公司這樣,在作計劃時能考慮到每一個細節,不是倉促做出決定,而是由所有的相關部門共同對產品計劃進行反復研究、制定、討論、修改,最終形成一套系統、嚴密、具有很強的可執行性的計劃。計劃一旦形成,就嚴格按照計劃去執行,而不受某個人、某件事的影響,那么就不僅能夠減少大量資源的浪費,產品的質量也得到了保障。
因此,對計劃的高度重視、周密制定、嚴格執行是企業有效保障產品質量的一個重要環節。
3、項目管理
當企業構架了合理的組織結構并制定了縝密的計劃后,就進入了產品的開發階段。在這個階段中,項目管理起了重要作用,它所涉及的環節相當具體復雜,下面先介紹一下A公司在項目管理上的具體細節:
(1)開發階段和項目周期開發階段比較明顯,注重各階段應完成的功能,對本階段應完成的工作不能留到下一階段。
(2)流程
A公司對流程比對項目更重視。
軟件開發流程非常規范和系統化,其流程的可執行性很高,并且能在實踐過程中不斷改進。A公司的流程已覆蓋到了一個項目研發的所有方面,包括從最開始的意向到最后軟件的版本發布(release),都有相應的流程規定,基本上已形成一種工業化的軟件開發。
人和流程是保證項目成功的兩個最關鍵因素。由好的人按好的流程進行項目開發,才能最大限度地保證項目的成功。一個好的流程可以保證差的人做出來的東西不至于太差,但不能確保做出精品。通過流程可以實現一種規范化、流水線化、工業化的軟件開發。