摘 要:本文結(jié)合作者的實際工作經(jīng)驗,以作者所在企業(yè)的過程裁剪規(guī)范為樣例,從過程裁剪的目的、過程裁剪的依據(jù)、過程裁剪的內(nèi)容、過程裁剪的步驟等方面出發(fā),論述了中小型軟件企業(yè)在推行軟件工程化過程中,如何根據(jù)不同的項目特性對組織標(biāo)準(zhǔn)過程進行裁剪,形成適合項目的軟件開發(fā)過程。
關(guān)鍵詞:過程裁剪;過程改進;中小型企業(yè);CMMI
中圖分類號:TP311.5
軟件企業(yè)過程改進的目的在于規(guī)范軟件產(chǎn)品開發(fā)及管理,提高組織的軟件開發(fā)生產(chǎn)效率和產(chǎn)品質(zhì)量。不論軟件企業(yè)實施了ISO、CMMI、6Σ,或是其它類型的質(zhì)量管理體系,無數(shù)實踐證明:建立適合自身軟件產(chǎn)品線發(fā)展的過程體系是促進軟件企業(yè)持續(xù)、良性發(fā)展的必經(jīng)之路。
中小型企業(yè)具有不同于大型企業(yè)的企業(yè)特征:由于中小型企業(yè)規(guī)模較小,人員較少,企業(yè)結(jié)構(gòu)較單一,沒有足夠的人力資源承擔(dān)復(fù)雜的項目管理任務(wù),所以對于中小型軟件企業(yè)而言,過程改進工作的關(guān)鍵一點在于:量體裁衣。即:以理論和模型為指導(dǎo),充分結(jié)合企業(yè)特征,進行適合企業(yè)自身特色的軟件過程改進。以下筆者將結(jié)合在某中型信息公司的工作經(jīng)驗對中小型軟件企業(yè)的過程裁剪做出探析。
1 過程裁剪目的
組織標(biāo)準(zhǔn)過程(Organizational Standard Process,OSP)是在企業(yè)的層面上描述的,它包括了開發(fā)一個完整產(chǎn)品/項目的全過程,以及相應(yīng)的支撐過程,它是一個企業(yè)運作的過程的全集。由于企業(yè)產(chǎn)品復(fù)雜程度的差別、開發(fā)模式的差別、所用技術(shù)的差別等,不同產(chǎn)品的開發(fā)流程不可能是完全一樣的,這就需要在企業(yè)已經(jīng)定義的、相對比較完整和標(biāo)準(zhǔn)的產(chǎn)品開發(fā)流程的基礎(chǔ)上,根據(jù)實際情況進行裁剪,形成適用于將要開發(fā)產(chǎn)品的項目流程。過程裁剪的目的就是用來指導(dǎo)項目對組織標(biāo)準(zhǔn)過程進行裁剪,將組織標(biāo)準(zhǔn)軟件過程和過程資產(chǎn)應(yīng)用到具體項目中,以形成符合項目特點的項目定義過程(Process Defined Process,PDP)[1]。
過程裁剪包括過程設(shè)計與集成,同時建議也要包括開發(fā)與管理工具的選擇與開發(fā),合理的開發(fā)與管理過程,及其支持工具或系統(tǒng),能夠使軟件開發(fā)的效率與質(zhì)量不斷提高,取得競爭優(yōu)勢。
2 過程裁剪依據(jù)
要使各項目能按照統(tǒng)一、規(guī)范的標(biāo)準(zhǔn)來執(zhí)行過程裁剪,那么,企業(yè)的過程體系中必須包含一份過程裁剪規(guī)范(或指南),它定義了如何根據(jù)不同的項目特點對項目內(nèi)需要開展的工程活動及管理活動進行取舍。
項目特點是過程裁剪的依據(jù)和出發(fā)點,常見的項目特點包括:(1)項目規(guī)模:如大、中、小等,通??梢允褂霉δ茳c(Function Point)或千行代碼(KLOC)、工作量(工時)等單位進行度量;(2)項目類型:如全新開發(fā)、系統(tǒng)維護、科研項目等;(3)項目技術(shù)復(fù)雜度:如是否涉及新技術(shù)的應(yīng)用、可否復(fù)用已有框架或技術(shù)、是否需要技術(shù)選型等;(4)項目周期:如工期緊張、工期正常等要素。不同企業(yè)因自身產(chǎn)品領(lǐng)域或管理模式的差別,可能具有不同的項目特點。
一份好的過程裁剪規(guī)范應(yīng)具備以下特征[2]:(1)描述方式:采用簡單易用的圖、表等形式展示如何裁剪;(2)抽象層次:對于整個管理的體系應(yīng)該從策略層、過程層、活動層、模板層定義裁剪規(guī)范;(3)完備:裁剪的內(nèi)容、裁剪的步驟、裁剪的因素應(yīng)都有描述;(4)易用:可以針對不同類型的項目(如:大中型項目、小型項目、科研型項目、外包項目等)提供裁剪后的多套裁剪模板;(5)明確:裁剪規(guī)范的描述沒有二義性,減少理解的偏差和溝通的誤差。下圖是我所在企業(yè)的過程裁剪標(biāo)準(zhǔn)樣例:
3 過程裁剪內(nèi)容
根據(jù)不同的項目特性,過程裁剪可能采取的行為是:合并、擴充、簡化、替換、順序調(diào)整、多選一、刪除或修改權(quán)限、級別等。下面以我所在企業(yè)的過程裁剪規(guī)范為參考,對過程裁剪主要涉及的裁剪內(nèi)容進行舉例說明:
3.1 活動的裁剪。以項目計劃為例,過程體系中定義了大中型項目在需求開發(fā)前,必須進行項目的初步估算和計劃,而在需求評審?fù)ㄟ^后,項目還需根據(jù)已明確的功能點再次對項目計劃進行更新并進行相應(yīng)的計劃評審活動;而對于小型項目而言,項目開發(fā)周期短、工作量小、重要程度較低,在需求開發(fā)活動前,只需以需求開發(fā)計劃替代完整的項目計劃用以指導(dǎo)需求階段的開發(fā)工作,待需求確定后再進行項目計劃工作,而由于小型項目取消了人力成本較高的評審環(huán)節(jié),故小型項目的計劃以審查替代。該例子從一個側(cè)面再次印證了:“裁剪”并不等于“裁減”。
3.2 成果的剪裁。成果產(chǎn)自于活動,成果的裁剪并不等于活動的裁剪。比如過程體系允許小型項目不用輸出單獨的《數(shù)據(jù)庫設(shè)計說明書》,可以縮編為《概要設(shè)計說明書》的一個章節(jié),但該成果的裁剪并不意味著項目不會對數(shù)據(jù)庫進行設(shè)計,只是成果被簡化執(zhí)行而已。
3.3 角色的剪裁。一套完整的過程體系中涉及到的角色非常全面,以需求規(guī)格說明書的審查為例,過程體系要求了需求規(guī)格說明書由項目需求人員編制、項目負(fù)責(zé)人審查,但對于項目成員較少的項目而言,并沒有足夠的人員全職執(zhí)行過程體系中設(shè)定的角色,也許項目負(fù)責(zé)人正是需求獲取人員和需求開發(fā)人員,因為項目負(fù)責(zé)人和項目需求人員角色的裁剪,導(dǎo)致了該文檔的審查活動被相應(yīng)裁剪。
3.4 評審的剪裁。為保證工作和成果的質(zhì)量,過程體系中無可避免的會設(shè)置各種類型的評審活動,而參與評審的人員大多包括領(lǐng)導(dǎo)或?qū)<遥@類角色相較于一般人員來說其時間成本較高,但對于部分項目而言,實施評審所花費的時間、成本也許會遠遠超出評審帶來的效益。因此,可允許重要程度較低的項目取消部分成果的評審環(huán)節(jié),以檢查或?qū)彶榈姆绞教娲?,?.1中所提到的小型項目計劃審查。
4 過程裁剪步驟
過程裁剪結(jié)果明確了項目生命周期內(nèi)所有需要執(zhí)行的活動及需要產(chǎn)出的成果,是項目后續(xù)所有工作的執(zhí)行基礎(chǔ),為保證項目裁剪結(jié)果符合項目實際特點,且與組織標(biāo)準(zhǔn)過程一致,項目負(fù)責(zé)人在進行項目裁剪時,需要在QA的協(xié)助下進行。由于過程裁剪規(guī)范很難枚舉所有的裁剪情況,所以項目最終的裁剪結(jié)果還應(yīng)由EPG或部門主管結(jié)合項目的質(zhì)量要求、合同要求和存在的風(fēng)險等進行綜合考慮后正式確認(rèn)。
項目裁剪步驟可分為以下幾步:(1)項目負(fù)責(zé)人根據(jù)項目不同的類型,選擇不同的裁剪標(biāo)準(zhǔn):如大中型項目則選擇大中型軟件開發(fā)項目裁剪標(biāo)準(zhǔn)、外包項目則外包項目裁剪標(biāo)準(zhǔn);(2)項目負(fù)責(zé)人對項目特性進行分析、識別,包括:項目規(guī)模、項目來源、項目工期、培訓(xùn)需求等,常見的項目特性(即裁剪因素)應(yīng)體現(xiàn)在過程裁剪規(guī)范中。下圖是我所在企業(yè)的過程裁剪因素樣例:
(3)在對項目特性進行初步分析的基礎(chǔ)上,QA負(fù)責(zé)協(xié)助項目負(fù)責(zé)人參照過程裁剪規(guī)范對項目進行裁剪,明確項目需進行的活動和需產(chǎn)出的成果以及對應(yīng)的負(fù)責(zé)人和審查要求,同時也可包括開發(fā)與管理的支持工具或系統(tǒng);(4)最終的項目裁剪結(jié)果需得到EPG代表或部門主管的簽字審批。
除上述四步基本的裁剪步驟外,裁剪時需遵循的基本原則還包括(但不局限于)以下幾點:(1)如果客戶/合同對過程提出特定要求且是合理的,必須遵循;(2)裁剪后不得降低產(chǎn)品質(zhì)量、可視性;(3)裁剪后的活動必須有足夠的人力、經(jīng)費支持;(4)如果存在特殊的裁剪情況,需說明理由且記錄在案。(5)在需求分析完成后或項目發(fā)生各類變更后,裁剪所依據(jù)的項目特性如果發(fā)生了改變,則應(yīng)根據(jù)新的項目特性重新進行過程裁剪。
5 結(jié)語
軟件工程化研究與應(yīng)用始終存在一定的差距,在國內(nèi)外成功應(yīng)用并受益于這些軟件經(jīng)驗與技術(shù)的企業(yè)多數(shù)是國防企業(yè)和大型的商業(yè)企業(yè)[3],中小型企業(yè)具有不同于大型企業(yè)的企業(yè)特征,這些特征有些有利于軟件工程技術(shù)的應(yīng)用與實施,而有些又限制了軟件工程技術(shù)的應(yīng)用與實施。
毋庸置疑,無論是EPG還是項目管理者都需要具備豐富的項目管理知識及CMMI模型理論知識,但過程體系的建立、推廣和改進更應(yīng)從企業(yè)自身產(chǎn)品開發(fā)特點和需求出發(fā),對已完成項目的過程執(zhí)行信息進行分析,總結(jié)過程經(jīng)驗,在大量經(jīng)驗數(shù)據(jù)和豐富的項目管理經(jīng)驗的基礎(chǔ)上,不斷的形成適合企業(yè)自身特色的軟件開發(fā)及管理模式。在有效保障過程體系良性運轉(zhuǎn)的同時,滿足企業(yè)管理者和項目成員的需求和預(yù)期期望,實現(xiàn)管理者和執(zhí)行者的“雙贏”。
參考文獻:
[1]徐俊.軟件開發(fā)過程定義裁剪研究與實施[J].現(xiàn)代計算機,2008,12:129-131.
[2]劉銘.如何進行研發(fā)過程裁剪[J].計算機工程與設(shè)計,2009,5,67-70.
[3]李健,金茂忠.中小型企業(yè)軟件過程改善方法研究[J].計算機工程與應(yīng)用,2011,19:107-110.
作者簡介:周靈(1982-),女,四川省南充人,工程師,碩士研究生,2007年畢業(yè)于重慶大學(xué)自動化學(xué)院自動控制專業(yè),現(xiàn)主要從事信息系統(tǒng)項目管理和質(zhì)量控制工作。