文/郭蘇川
中小型企業(yè)軟件過程改進(jìn)方法
文/郭蘇川
對于一些中小型軟件企業(yè)來說,只有當(dāng)企業(yè)建立的改進(jìn)框架與企業(yè)實際情況相符合時,其改進(jìn)軟件過程的工作才能順利進(jìn)行。本文將依據(jù)ASD和CMMI這兩個理論,以國內(nèi)中小型軟件企業(yè)為研究對象,對其改進(jìn)軟件過程的方法加以探討,構(gòu)建了以CMMI為基礎(chǔ)的框架來對軟件過程加以改進(jìn),希望為企業(yè)的軟件改進(jìn)提供參考。
中小型軟件企業(yè) CMMI 軟件過程改進(jìn)
CMMI和CMM是兩種改進(jìn)軟件過程的模型,作為重要成果它們在國際上被普遍使用,它們可以在過程改進(jìn)與質(zhì)量管理上來對軟件企業(yè)加以衡量。然而這兩個模型是為大型軟件企業(yè)量身定做的,并不充分適用于中國數(shù)量龐大的中小型軟件企業(yè)。所以,就中小型企業(yè)而言,構(gòu)建合適的改進(jìn)框架以滿足其軟件過程改進(jìn)的需要十分必要。下文通過對CMMI和ASD兩個理論進(jìn)行探討并加以借鑒,針對國內(nèi)中小型軟件企業(yè),構(gòu)建一種合適的軟件過程改進(jìn)框架。
中小企業(yè)是我國軟件企業(yè)的主要類型,大部分企業(yè)的員工都少于50人,它們都存在下面這些特點(diǎn)。
(1)以小于30歲的年輕員工為主,大都具有本科及以上學(xué)歷,但是卻沒有受過軟件過程改進(jìn)的培訓(xùn)。企業(yè)的管理者并不能很好的認(rèn)識到培訓(xùn)的重要性,認(rèn)為培訓(xùn)是對時間與金錢的浪費(fèi),只一味地想讓員工立刻上崗。
(2)企業(yè)員工并不能很好的認(rèn)清企業(yè)自身的優(yōu)勢,在它們看來,技術(shù)人員足夠優(yōu)秀就行,但是存在這樣一些問題:時間不可控、有很大的開發(fā)壓力、用戶的需求在不斷變化。
(3)在這些企業(yè)中,管理者大都來自計算機(jī)及其相關(guān)專業(yè),管理專業(yè)出身的非常少,這就使企業(yè)的管理變得混亂。經(jīng)營者沒有有力的手段來對企業(yè)進(jìn)行管理,造成企業(yè)盈利水平低下。
(4)開發(fā)規(guī)模小,項目給定時間小于6個月,有時也會接受大型項目,這對企業(yè)管理項目的能力有所要求。
CMMI 有以下四類過程域:
(1)過程管理類過程域:包括五部分內(nèi)容,組織過程定義、組織過程聚焦、組織過程性質(zhì)功能、組織培訓(xùn)計劃以及組織部署和革新。
(2)項目管理類過程域有以下五部分內(nèi)容:項目監(jiān)控、項目計劃、供應(yīng)商協(xié)議管理、項目集成控制和風(fēng)險評價。
(3)工程類過程域有以下六部分內(nèi)容:需求分析、技術(shù)解決計劃、產(chǎn)品集成、需求管理、檢驗證明和確認(rèn)生效。
(4)支持類過程域有以下五部分內(nèi)容:過程保證及產(chǎn)品質(zhì)量保證、配置設(shè)置、測量分析、因果分析和解決計劃以及決策分析及解決計劃。
敏捷方法論在19世紀(jì)50年代首次被提出,直到2001 年,這個輕量級開發(fā)方法才被命名為敏捷。敏捷方法以人為中心,將有價值的軟件開發(fā)作為重點(diǎn)。在開放的環(huán)境下,進(jìn)行全面協(xié)調(diào)合作,采用迭代的形式來實現(xiàn)增量開發(fā),以反饋的形式來實現(xiàn)自我改進(jìn)。由于敏捷軟件開發(fā)能通過自主調(diào)整來對繁復(fù)的過程予以矯正,其受到軟件行業(yè)的廣泛關(guān)注。此方法之所以合理,并不是因為它的“輕重”,而是因為它的以人為先和優(yōu)越的適應(yīng)性。
為了有機(jī)結(jié)合項目的管理與開發(fā)過程,本框架利用增量迭代模型來對軟件的生命周期加以描述,根據(jù)階段把項目管理分為不同內(nèi)容。此時,軟件開發(fā)可以分為兩個過程:項目開發(fā)過程和項目管理過程。
4.2.1 項目管理過程
(1)需求管理過程域,將分配需求統(tǒng)一成一個標(biāo)準(zhǔn),并根據(jù)此標(biāo)準(zhǔn)進(jìn)行活動,使產(chǎn)品與軟件計劃相符,使分配需求與活動相符。
(2)項目計劃管理過程域,為了將軟件估計提供給軟件計劃和項目跟蹤使用,需要將軟件估計文檔化。
(3)項目跟蹤和監(jiān)控過程域,為掌握項目的進(jìn)展,有計劃地對項目各部分如成本、進(jìn)度、工作量和資源等進(jìn)行跟蹤與監(jiān)督,當(dāng)項目進(jìn)展顯著偏離計劃時采取糾正措施。當(dāng)項目發(fā)生顯著偏離的情況時及時糾正。
(4)軟件質(zhì)量保證過程域,設(shè)計一種人員組織形式與適當(dāng)?shù)墓芾矸椒ǎ瑱z查開發(fā)產(chǎn)品的質(zhì)量并進(jìn)行監(jiān)督,以達(dá)到改善軟件的目的。
(5)此程域是軟件過程的重點(diǎn),目的是使產(chǎn)品在生存期內(nèi)保持完整,為軟件進(jìn)程的各階段提供方法與要求。
4.2.2 項目開發(fā)過程
(1)需求分析過程,調(diào)查并獲取用戶的需求信息,對產(chǎn)品進(jìn)行需求定位。
(2)系統(tǒng)設(shè)計過程域, 對軟件產(chǎn)品的數(shù)據(jù)庫、子模式、用戶界面和體系結(jié)構(gòu)等予以計劃開發(fā)。并對使用的技術(shù)與工具予以確定,從而使代碼與需求相聯(lián)系。
(3)編碼和單元測試過程域,以設(shè)計文檔為依據(jù),首先對各個模塊實行編碼,然后對得到的階段性產(chǎn)品單元實行測試。
(4)綜合測試工程域,以設(shè)計文檔和用戶需求為根據(jù),系統(tǒng)地對整個產(chǎn)品予以測試,使產(chǎn)品符合用戶要求。
(5)維護(hù)過程域,客戶自行按照合同對最終產(chǎn)品予以測試和維護(hù),已檢驗產(chǎn)品是否滿足用戶需求。
為了對該框架的效果進(jìn)行評估,特意制定了下面的評分規(guī)則,規(guī)則包括一些評分指標(biāo)和占比,分別由5位中小軟件企業(yè)項目負(fù)責(zé)人與5位專家進(jìn)行評分。
(1)共有7個評分指標(biāo)如:是否符合軟件規(guī)格說明,能否完成客戶要求,是否易于理解,是否易于接受和使用,是否能取得明確的結(jié)果且對外可見,是否出現(xiàn)過程錯誤,是否受意外發(fā)生問題的干擾。評分標(biāo)準(zhǔn)分別設(shè)為:不及格(6分以下);及格(6-7分);良好(8-9分);優(yōu)秀(9-10分)。
(2)邀請 10 位專家,根據(jù)各指標(biāo)進(jìn)行打分,最后得到以下評分: 75 分、85 分、90 分、88 分、84 分、79 分、93 分、86 分、91 分、87 分。
(3)對專家評分結(jié)果進(jìn)行統(tǒng)計,加權(quán)平均后得到的最終結(jié)果為 85.8 分,通過與基準(zhǔn)值的比較可以看出此框架效果良好。
本文以國內(nèi)中小型軟件企業(yè)的特點(diǎn)與實際情況為根據(jù),在CMMI和ASD為理論基礎(chǔ)構(gòu)建出改進(jìn)軟件過程的框架,為國內(nèi)中小型軟件企業(yè)構(gòu)建框架提供參考,從而幫助其提升軟件能力。以后可以結(jié)合實踐對此框架進(jìn)行細(xì)化,使其具備更強(qiáng)的可操作性。
作者單位南京浩博科技有限公司 江蘇省南京市210000
郭蘇川(1981-),男,江蘇省徐州市人。大學(xué)本科學(xué)歷。工程師,目前從事軟件咨詢服務(wù)、軟件過程改進(jìn)方面的工作。