劉海燕 張立杰 張賢
1 大連外國語學院軟件學院 遼寧 116044
2 商丘師范學院教育科學學院 河南 476000
美國國防部曾經(jīng)專門調(diào)查過項目失敗的原因,結(jié)果發(fā)現(xiàn)70%的項目是因為管理不善引起的,而非技術(shù)能力不夠。有效的軟件項目管理可以提高軟件產(chǎn)品的質(zhì)量和軟件組織的生產(chǎn)效率,還可以更好地積累組織財富,將開發(fā)人員的個人開發(fā)能力凝聚成企業(yè)的過程能力。
目前我國很多對日軟件外包企業(yè)規(guī)模偏小,軟件能力成熟度不高,開發(fā)和管理混亂。對日軟件外包企業(yè)要在激烈的市場競爭中站穩(wěn)腳跟,可持續(xù)發(fā)展下去,就需要具備成熟的開發(fā)和管理水平,以保證產(chǎn)品質(zhì)量和開發(fā)進度。為此,不少企業(yè)嘗試引入軟件能力成熟度模型集成(Capability Maturity Model Integration,CMMI),通過實施過程改進來提高軟件質(zhì)量和生產(chǎn)效率。
日本客戶對項目的管理工作要求較高,要求定期提交一些格式固定的記錄文檔,還要結(jié)合項目實際進行數(shù)據(jù)的統(tǒng)計分析和度量。項目管理人員需要收集和處理大量的基礎(chǔ)數(shù)據(jù)。如果單純采用手工方式會增加項目管理的工作量,還難以保證在各類文檔中所用數(shù)據(jù)的一致性。
作者通過對基礎(chǔ)理論的學習和研究,結(jié)合在對日軟件外包企業(yè)進行軟件開發(fā)、項目管理和推行CMMI的實踐經(jīng)驗,結(jié)合對日軟件外包項目的特色,設(shè)計開發(fā)出一個基于CMMI3級的軟件外包項目管理網(wǎng)絡(luò)平臺來簡化項目的管理工作。下面將詳細描述該平臺的設(shè)計和應(yīng)用細節(jié)。
對日軟件外包項目主要以代碼編寫和測試為主要任務(wù),客戶對軟件產(chǎn)品的質(zhì)量要求較高,需要編寫較多的開發(fā)和管理文檔,通常都是參照模塊范例進行增量開發(fā)。鑒于對日軟件外包項目的這些特點,將網(wǎng)絡(luò)平臺定位在提供一個支持工具,可以對組織中的項目進行高效率的計劃和控制,實現(xiàn)項目的動態(tài)管理和項目目標的綜合協(xié)調(diào),使得項目管理的過程變得可視化。
通過對軟件項目計劃、跟蹤與監(jiān)控等的實現(xiàn),為改進企業(yè)軟件過程能力不斷收集和整理一些項目基礎(chǔ)性的數(shù)據(jù),并形成各種報告和文檔,為建立企業(yè)軟件過程資產(chǎn)庫打下良好基礎(chǔ),從而逐步提高企業(yè)的過程能力成熟度,保障軟件產(chǎn)品的質(zhì)量。
(1) B/S結(jié)構(gòu)
對日軟件外包項目的開發(fā)活動有時需要由分布在不同地域的人們來協(xié)作完成,項目組人員之間的連接大都是建立在Internet基礎(chǔ)上的,因此本平臺采用Browser/Server三層架構(gòu)。
(2) MVC模式
采用Web應(yīng)用開發(fā)典型的MVC模式,使業(yè)務(wù)邏輯和表示層分離,提高了代碼的可重用性。
(3) Struts架構(gòu)
本平臺選擇用Java語言,采用Struts架構(gòu)來實現(xiàn),將顯示邏輯和業(yè)務(wù)邏輯分離開,簡化了基于MVC模式的Java Web應(yīng)用程序的開發(fā)。
本平臺的主要功能是對項目開發(fā)和管理過程中的信息進行收集和加工,幫助項目管理人員及時了解項目的進展狀態(tài),分析和發(fā)現(xiàn)項目推進過程中潛在的問題,實現(xiàn)對項目的監(jiān)督和軟件過程的改進。主要包括用戶管理、項目計劃、項目監(jiān)控、項目實施、項目總結(jié)和個人管理等功能模塊,其中項目計劃、項目監(jiān)控為核心模塊。
2.2.1 項目計劃
軟件項目計劃體現(xiàn)了對客戶需求的理解,為軟件工程的管理和運作提供可行的計劃,是跟蹤、監(jiān)督、評審計劃執(zhí)行情況的依據(jù)。計劃模塊如圖1所示,包括任務(wù)分解、項目裁剪、項目估算和計劃制定。
圖1 項目計劃功能圖
2.2.2 項目監(jiān)控
對日軟件外包項目的監(jiān)控主要包括任務(wù)完成進度、項目成員作業(yè)狀況、缺陷統(tǒng)計、問題確認、項目產(chǎn)生的成本等信息的跟蹤和分析。監(jiān)控模塊又劃分為以下幾個子模塊。
(1) 進度管理
平臺通過周報、日報、月報、工作日志等方式匯總項目任務(wù)的進展情況,記錄項目中每一個具體的開發(fā)或管理任務(wù)的進展狀態(tài)。把這些數(shù)據(jù)與計劃作對比,盡早發(fā)現(xiàn)問題并采取糾正措施。
(2) 品質(zhì)管理
在對日軟件外包項目中,軟件的品質(zhì)主要通過評審、測試、驗收等環(huán)節(jié)來把關(guān)。本平臺可以對有關(guān)產(chǎn)品質(zhì)量的基礎(chǔ)數(shù)據(jù),并進一步以這些數(shù)據(jù)為基礎(chǔ),進行統(tǒng)計分析。隨時可以了解到某一任務(wù)、某時期或者某一開發(fā)者的品質(zhì)狀況,為進一步的改善措施提供依據(jù)。
(3) 成本管理
對日軟件外包項目的成本包括軟硬件資源消耗、項目活動經(jīng)費、項目成員的差旅費等。成本管理除了記錄費用的直接支出金額,還記錄項目成員的工時成本,以分析項目成員的生產(chǎn)性能。
(4) 人員管理
將對日軟件外包項目的人員管理分為員工信息管理、績效考核管理等。員工信息管理側(cè)重于項目成員的姓名、軟件技能、工作經(jīng)驗、外語水平、業(yè)務(wù)能力這些基本信息,以及在項目中的角色和職務(wù)、所承擔的任務(wù)、需要接受的培訓等??冃Ч芾戆ㄔu價項目成員個人的生產(chǎn)性、品質(zhì)狀況等。
(5) 風險管理
將對日軟件外包項目的風險管理過程分為風險識別、風險評估和風險控制三個步驟。提供風險項目維護界面,對項目中潛在的風險進行分類和列舉,可以由用戶進行風險追加和更新,幫助識別風險。之后生成項目風險列表,由用戶進行定性分析,根據(jù)風險的嚴重性、可能性等進行量化。量化結(jié)果如果超出項目確定的警戒值,則提醒用戶對該風險采取緩解措施,并記錄風險緩解后的結(jié)果,提供風險狀態(tài)跟蹤信息。
(6) 需求管理
對日軟件外包項目的需求管理主要包括對客戶式樣說明書、式樣變更、問題確認等方面的管理。目的是在客戶與項目開發(fā)方之間建立對需求的共同理解,維護需求和工作產(chǎn)品的一致性,并控制客戶需求所發(fā)生的的變更。
本平臺的數(shù)據(jù)庫表包括項目信息表、任務(wù)信息表、缺陷信息表、評審信息表、用戶信息表、項目目標信息表等,在設(shè)計這些表的字段時盡量做到內(nèi)容詳盡,可以滿足基礎(chǔ)數(shù)據(jù)收集的需要,又能方便數(shù)據(jù)分析和統(tǒng)計,同時要保證規(guī)范化,又沒有冗余。表1為缺陷信息表的內(nèi)容。
表1 缺陷信息表
界面設(shè)計力求簡單大方、美觀、友好,控件布局合理,方便用戶查閱,操作簡單,實用為主。圖2為風險評估界面。
圖2 風險評估界面
借助于該網(wǎng)絡(luò)平臺,可以規(guī)范項目的管理流程,盡量避免項目基礎(chǔ)數(shù)據(jù)的重復錄入,自動進行分析統(tǒng)計,生成指定格式的項目管理文檔。使項目管理人員可以把更多的精力放在項目的具體實施上,減少工作量,達到提高軟件外包項目管理水平,提高軟件產(chǎn)品質(zhì)量和生產(chǎn)效率的目的。
本平臺具有以下特點:
(1) 應(yīng)用于Web環(huán)境
使項目有關(guān)人員都可通過Internet使用本系統(tǒng),來協(xié)同完成對日軟件外包項目的管理工作。
(2) 以CMMI過程管理框架為基礎(chǔ)
面向CMMI3級,幫助軟件外包項目進行過程改進。強調(diào)項目管理的統(tǒng)一性和規(guī)范化,增強項目的可控性,從而降低了風險。
(3) 面向?qū)θ哲浖獍椖抗芾?/p>
為對日軟件外包項目而設(shè)計,支持對日軟件外包項目的管理活動,在設(shè)計和實現(xiàn)上充分考慮對日軟件外包項目的管理需求。
(4) 提供靈活的數(shù)據(jù)收集方式
可以從EXCEL等文檔中提取數(shù)據(jù),并將其導入數(shù)據(jù)庫。對于那些無法自動收集的數(shù)據(jù),系統(tǒng)提供友好的錄入界面,幫助用戶手工輸入數(shù)據(jù)。
(5) 具有一定的分析和報表生成功能
可以對所收集的數(shù)據(jù)按照需求進行處理,并能將處理結(jié)果以豐富的表現(xiàn)形式提供給用戶,幫助用戶進行分析和決策,并且可以按照一定的格式生成報表。
對日軟件外包企業(yè)在充分利用現(xiàn)有項目管理軟件的基礎(chǔ)上,可以根據(jù)自身的需要,結(jié)合對日軟件外包項目的特點,量身定做,打造一套以CMMI為原型,以科學管理思想為指導,以公司組織過程財富為基石的網(wǎng)絡(luò)平臺,為項目管理工作提供有效的輔助和支持。
一個合適的項目管理網(wǎng)絡(luò)平臺可以加速對日軟件外包企業(yè)能力等級的提升進程,減少手工管理帶來的人為錯誤,降低成本,使企業(yè)的開發(fā)和管理工作早日走上規(guī)范、高效及自動化之路。
[1] Daniel.Halbert,Patrick D.O’Brien.Object-oriented development.IEEE Software.1987.
[2] 王振宇.我國軟件產(chǎn)業(yè)認證的現(xiàn)狀與分析.計算機教育.2005.
[3] 劉海燕,王雅軒.基于CMMI的對日軟件外包項目管理研究[J].硅谷.2011.
[4] 孫衛(wèi)琴.精通Struts:基于MVC的Java Web設(shè)計與開發(fā).北京:電子工業(yè)出版社.2005.