網站首頁 文學常識 簡歷 公文文書 文學名著 實用文 人生哲理 作文 熱點話題作文
當前位置:文萃咖 > 實用範文 > 論文

印度項目質量管理經驗論文

欄目: 論文 / 發佈於: / 人氣:1.03W

計算機和通信技術的迅速發展,特別是Internet技術的發展與普及,為企業內部、企業與外部提供了快速、準確、可靠的信息交流渠道。信息化企業運作管理系統已成為企事業單位參與全球市場競爭的必備支持系統。正是由於這樣的市場需求與技術發展現狀,為我國的IT行業帶來了空前發展的機遇,特別是軟件行業。軟件企業能否抓住這樣一個難得的發展機會需要多方面的努力,其中軟件質量保障在其發展過程中佔有重要的位置。眾所周知,印度已成為世界上軟件業增長最快的國家,目前每年軟件業產值達數十億美元,並且還在以每年30%~50%的速度增長。比較我國和印度的軟件產業,就不難發現:中國擁有巨大的軟件市場和世界公認的軟件開發資源,在基礎研究和對技術前瞻性的把握上,也有自己的優勢,就整體社會經濟環境而言也優於印度。此外,中國的軟件開發人員費用比較低廉,僅是世界市場的1/3左右。雖然中國人並不缺乏軟件開發的天賦,但是在越來越強調規模化經營的今天,先天不足的管理痼疾使我們舉步維艱,難以擺脱小作坊式的軟件開發模式。而印度軟件業從一開始就立足於為美國軟件企業服務,並遵循其軟件開發的管理模式,與國際標準接軌。

印度項目質量管理經驗論文

管理上的問題不能得到徹底的解決,軟件的質量保障就無從談起。筆者最近在與印度一家通過了CMM4級評估的軟件公司(以下簡稱A公司)進行合作的過程中,較為詳細地瞭解了他們有關項目管理的一些,更深刻地感受到了項目管理的規範化與企業軟件質量保障之間的密切關係。下面想着重從軟件企業的構架,軟件項目計劃、項目管理、項目經理的職責等方面對印度軟件的項目管理及我國軟件質量保障應注意的問題進行一些經驗總結,供業內人士參考。

1、軟件企業的組織結構

(1)A公司結構

A公司中,QA(QualityAssure)部門與研發部門獨立,負責監督流程的執行。QA同時負責領導與研發部門組成的聯合工作組,制定公司流程。

SSG(SystemSupportGroup)類似我們的IT部門,負責公司所有計算機軟件和硬件資源的分配和管理。所有的辦公環境和開發/實驗室環境由SSG負責安裝和維護,計算機資源屬於SSG,由各個項目向SSG提出需求,項目結束後,設備需要交還給SSG.個人和項目組沒有固定的軟件和硬件資源。SSG是與研發平行的部門。

人力資源部門負責公司的人力資源管理,並維護員工的技能數據庫。項目開始時,項目組向人力資源申請人力,向SSG申請計算機硬件和軟件。項目結束時需要釋放計算機資源給SSG,釋放人力資源到人力資源池,並同時更新員工的技能數據庫。研發部門的人力資源由研發總負責人和其助手分配(類似我國各公司的人力資源部)。

(2)項目組結構

1)A公司對項目組進行獨立核算,項目具體負責人為PC(ProjectCoordinator),負責項目計劃和執行,對項目具體成員進行分工。在每個階段的結束會議上(如概要設計結束),PC要接受QC(QualityCoordinator)的審查。除了PC與QC的接口外,所有其他外部接口都由EM(EngineerManager)完成,EM負責與客户打交道,向SSG、人力資源要求資源,與其他項目組協調進度。

2)彙報關係為:TeamMember->TeamLeader->PC->EM->研發總負責人。

3)印度工程師分為7級,半年一次考評,即半年有一次升級機會。

1級:SoftwareEngineer,剛畢業的本科生和研究生。

2級:SeniorSoftwareEngineer.3級:ProjectLeader.4級:ProjectManager.5級:SeniorProjectManager.

3級可以成為PC,4級可以成為EM.剛開始平均2年升一級,越往後升職越慢。

A公司規定,一人最多可以同時兼任兩個項目的PC,EM管理的.項目沒有限制。

A公司通常的項目組為4到5人,最多不超過10人。

以上是A公司(同時也是印度大多數規範化的軟件公司)的組織結構和項目組結構。可以看出,A公司的組織結構非常清晰,各個部門分類非常細,任務明確,軟件生產的每一個步驟都有專門的部門、專門的人員負責,從最基礎的開發人員到負責統領全局的總經理,層層管理,溝通渠道暢通。而在我國,管理的不規範往往首先體現在公司的組織結構上,集中表現為部門的缺失和管理的交叉上。我國的軟件公司,大部分規模較小,開發人員超過100人的公司很少。在印度,軟件公司無論大小,都是“麻雀雖小,五臟俱全”,絕不會因為公司的規模大小而改變合理的組織結構。因此筆者認為,國內的軟件企業要想有效地保障產品質量,首先就要在構架合理的組織結構上下功夫,這就如同蓋高樓首先要打好地基一樣,地基不打牢,結構不合理,其他方面再下功夫也是徒勞。有人説,因為國內軟件企業規模小,所以造成結構設置的欠缺,但筆者認為恰恰是因為沒有建立一個規範化的組織結構,才會使軟件產品質量不保,進而嚴重影響了企業的發展擴大。

2、項目計劃

凡事預則立,不預則廢。這裏的“預”就是指計劃。對於軟件企業,計劃的重要性是不言而喻的。讓我們先看看A公司的項目計劃是如何制定的:在A公司,項目開始之前必須先估計項目的規模(以代碼行數來衡量);然後制定項目計劃。通常時間為2~3周,已知的最長有5周。EM負責制定項目EWP(EngineerWorkPaper),其中定義了項目需要的人力和計算機資源,由相關部門同意,並報研發總負責人批准後才能開始項目。

項目的正式開始時間由項目組的KickoffMeeting算起,CloseoutMeeting結束。

大概很多人都聽過這樣一句話:“計劃趕不上變化”。這種“變化”對某些行業而言也許並不會產生太大的影響,但對於軟件企業而言,卻會給軟件產品的質量保證帶來嚴重的負面影響。為什麼會造成這種“計劃趕不上變化”的現象?究其原因,筆者認為主要是因為對計劃的重視程度不夠,計劃過於籠統、粗糙導致可執行性太差,再加上一些人為因素的影響,必然會產生這樣的後果。

如果我們的軟件企業都能像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各項流程和模板,並且收集項目中發現的一些問題和解決方法以優化流程。

(6)度量數據

CMM中比較強調用數據説話,對項目過程中基本上所有的數據都會有記錄,最後把收集的數據提交質量保證部門進行分析,以改進流程。A公司的項目經理和質量經理很重視項目中的數據收集,包括各種Review數據、測試數據以及項目組員每天的活動數據等。項目經理也要維護一個項目檔案,在這個項目檔案中可以説包含了項目開發過程中所有的產出、開發活動、管理活動等的記錄。可以這麼説,有了這個項目檔案,你就可以完全瞭解這個項目的開發過程。

(7)團隊精神

印度公司都比較強調團隊精神、合作精神,應該説,其流程本質上就要求員工之間的互相協調和理解。相對而言,印度員工的合作精神和協調精神都比我國員工要好得多。

(8)培訓

印度公司都比較強調培訓,一般有專門的培訓部門進行協調。在新員工進入公司後都會有公司流程和其他一些公司普遍章程的培訓,以保證員工對流程的理解和執行。對於具體項目,項目經理在制定項目計劃時就會在項目計劃中提出所有的培訓需求,包括技術上的培訓和其他所需的培訓。

(9)配置管理在項目正式開展前,項目經理就要制定配置管理計劃,並且指定配置管理員建立起配置管理庫,按配置流程嚴格進行配置管理。在配置流程中也詳細提供了對更改的控制,沒有經過批准的更改請求是絕對不能進行的。

(10)記錄

記錄及時、充分、比較準確。這些記錄包括:重要的郵件、會議紀要、審核記錄、缺陷報告、測試報告。

1)與客户和其他項目組的所有往來必須郵件記錄。

2)對所有的活動都有一個跟蹤落實的過程,比如對所有的Review記錄和更改請求都會有一個狀態標識,標識其當前狀態,通過跟蹤其狀態來監督其落實。

3)對所有的活動,包括對文檔和代碼的更改都會有一個歷史記錄。

4)記錄比較準確、比較客觀。

5)許多記錄都是通過定量的數值記錄,強調以數據説話(CMM4級的重點就是量化管理)。

以上是A公司在項目管理中所涉及到的一些主要環節,很值得國內的軟件企業在制定項目管理規劃時借鑑。除此之外,我國的軟件企業在產品開發管理的過程中,還易出現以下幾個方面的問題:

1)需求説明差─需求不清楚、不完整、太概括、或者不可測試,都會造成問題。

2)不切實際的時間表─如果在很短的時間裏要求做許多事,出現錯誤是不可避免的。

3)測試不充分─只能根據客户意見或系統崩潰來判斷系統的質量。

4)不斷增加功能─在開發正在進行過程中要求增加許多新的功能。這是常見的問題。

5)交流問題─如果開發人員對客户的要求不瞭解,或者客户由不恰當的期望,必然會導致錯誤。

這些問題的出現,將會對軟件質量的保證產生不良影響,針對上述問題並結合A公司在項目管理方面的經驗,筆者提出一些相應的解決方法,以供參考:

1)可靠的需求─應當有一個經各方一致同意的、清楚的、完整的、詳細的、整體的、可實現的、可測試的需求。為幫助確定需求,可使用模型 (prototypes)。

2)合理的時間表――為計劃、設計、測試、改錯、再測試、變更、以及編制文檔留出足夠的時間。不應使用突擊的辦法來完成項目。

3)適當測試─儘早開始測試;每次改錯或變更後,都應重新測試。項目計劃中要為測試和改錯留出足夠時間。

4)儘可能堅持最初的需求─一旦開發工作開始,要準備防止修改需求和新增功能,要説明這樣做的後果。如果必須進行變更,必須在時間表上有相應的反映。如果可能,在設計階段使用快速的模型,以便使客户瞭解將會得到的東西。這將會使他們對他們的需求有較高的信心,減少以後的變更。

5)溝通――在適當時機進行預排和檢查;充分利用團組通信工具―電子郵件、羣件(groupware)、網絡故障跟蹤工具、變更管理工具、以及因特網的功能。要確保文件是可用的和最新的。優選電子版文檔,避免紙介質文檔:進行遠距離聯合作業及協作;儘早使用模型,使客户的預想表達清楚。

4、PC(項目經理)

項目經理是項目成敗的關鍵人物,其對項目的成敗負主要責任。因此在這裏將項目經理的有關內容單獨提出,以A公司為例詳細説明PC在整個產品研發過程中所扮演的角色,希望能對國內軟件企業的項目經理有所啟示。

(1)在A公司,按流程在一個項目正式開展之前,項目經理需要完成:

項目計劃(Project Plan):在此描述整個項目所應完成的交付物、項目時間表、培訓需求、資源需求、質量保證計劃以及過程和交付物的定量質量目標等。

項目配置管理計劃(Project Configuration Plan):在此指定配置管理員,描述項目配置項列表、配置管理庫、版本管理計劃等等。

項目過程手冊(Process Handbook):在此描述本項目所採取的裁剪後的生命週期模型和流程。

(2)在項目開發過程中,項目經理需非常瞭解項目進度,進行工作任務細化、具體計劃和安排項目成員工作任務等工作。對突發事件項目經理需能及時合理地進行協調。

(3)總的説來,PC安排工作有這麼幾個特點:

對軟件開發具有豐富的經驗,瞭解軟件開發的普遍流程,瞭解各個階段所需完成的工作,這是安排好項目組成員工作的前提,在A公司對PC的整體素質要求非常高。

b.在項目正式開展前,PC準備項目計劃文檔,在項目計劃中包含了項目進度時間表,但此時間表比較粗,只能給出各個階段和各個子階段的起始結束日期。對各個階段和各個子階段的詳細工作安排和各項工作責任人只能在項目開展工程中根據項目實際情況進行安排,一般是在每週項目組例會上進行本週詳細工作安排。

對工作安排往往精確到天,有時甚至精確到小時,要做到這一點,需要:

PC對本項目進展非常瞭解。瞭解渠道通常是每週組員的狀態報告和直接與組員接觸瞭解,這也需項目組成員能如實彙報工作。

對現階段或本週所需完成的工作非常瞭解。知道現在該做什麼,並且能把各項工作進行合理細緻地劃分,因為各個分解的工作比較細緻,因此能相對精確地評估出這些工作完成所需的時間。

PC對項目組員的能力比較瞭解,安排工作時能做到有的放矢。當安排的員工對工作不熟悉時,會指定相應的組員進行協助。

PC對組員的工作安排都比較細緻飽滿。一般不會出現有些員工有事幹,有些員工沒事幹的情況,當出現這種情況或員工提前完成工作時,PC就會進行相應的協調。

在項目組例會上的工作安排一般只限於本週或甚至是過後的二、三天,一般不會太長,對長時間工作的安排容易失去精確並且不易控制。相對而言,短時間的工作安排就比較精確而且容易控制,並且能不斷根據完成的工作進行調整。當然,這就要求PC能根據項目計劃中的項目時間表進行整體進度的把握。

e.項目組例會一般一週一次(時間不能太長),但必要時(如組員工作已完成或其他事情),也可在中途召開項目會議進行工作安排,一般時間都比較短(十幾分鐘左右,一般不超過半小時,以免浪費時間),總之,當PC覺得需要時,就會召開項目會議。

f.當項目組出現意外事件或影響項目團結的事件時,PC能及時合理協調,解決項目組內的不和諧氣氛。

善於鼓勵手下,發揮員工的潛能,PC往往會讚揚很好地完成了工作的組員。

從上面可以看出,對PC的能力(包括技術和管理能力)要求是非常高的,我國的軟件企業往往只重視PC的技術能力,但事實上,一個只精通技術的人往往不能成為一個合格的領導者, 筆者認為對PC而言,首先要求他能夠比他的下屬看得更遠一步,順利時不盲目樂觀,遇到挫折時不茫然失措,使整個團隊始終保持高昂的士氣。

總結

以上結合印度軟件項目管理的經驗總結了一些我國軟件質量保障應注意的問題。曾有人提出:這樣一味地學習模仿,民族軟件工業沒有多大希望。但筆者認為,在這個問題上不妨採取“拿來主義”的辦法,對於好的,事實證明是成功的經驗,首先是“佔有”,然後才是“挑選”和“創新”。如果能把印度的管理經驗真正領會並付諸實踐,相信對我們的民族軟件工業一定會起到積極的推動作用。