毛程佳
(科多思(北京)咨詢有限公司上海分公司,上海 200335)
K公司目前的主要業(yè)務(wù)是為各大通信運(yùn)營商提供各種服務(wù),包括域名系統(tǒng)(DNS)、電話號(hào)碼映射(ENUM)服務(wù)和認(rèn)證授權(quán)計(jì)費(fèi)(AAA)服務(wù)等產(chǎn)品。由于該產(chǎn)品是從瑞典轉(zhuǎn)移來到上海,缺乏核心骨干的技術(shù)支持,并且沒有嚴(yán)格的軟件項(xiàng)目管理模式。雖然有相關(guān)的項(xiàng)目管理人員,但是從傳統(tǒng)的瀑布型開發(fā)模式變革為敏捷開發(fā)模式,項(xiàng)目管理人員并沒有相關(guān)的項(xiàng)目管理經(jīng)驗(yàn)和相關(guān)的培訓(xùn),需要一定的時(shí)間去適應(yīng)新的環(huán)境以及開發(fā)模式。這就導(dǎo)致了項(xiàng)目開發(fā)過程中出現(xiàn)了各種問題,例如,沒有定期進(jìn)行項(xiàng)目階段審評(píng)、日程進(jìn)度安排不合理、對項(xiàng)目進(jìn)度估計(jì)失誤、拖延工期、一定程度返工,即使勉強(qiáng)按照項(xiàng)目計(jì)劃完成,產(chǎn)品質(zhì)量也達(dá)不到預(yù)期要求。因此,分析并解決上述問題成為企業(yè)的當(dāng)務(wù)之急,有必要深入研究質(zhì)量管理相關(guān)的方法,從而構(gòu)建適合K公司軟件開發(fā)的質(zhì)量管理體系。
軟件質(zhì)量往往是軟件工程的核心所在。軟件質(zhì)量是一個(gè)被過度使用的術(shù)語,它對不同的人意味著不同的東西,其主要包括了軟件質(zhì)量管理、質(zhì)量管理計(jì)劃、質(zhì)量保證、質(zhì)量控制、文檔及其相關(guān)的缺陷跟蹤。
軟件質(zhì)量的含義可以概括為:一個(gè)實(shí)體的特征的總和,它依賴于滿足明確和隱含需求的能力。這意味著交付的軟件產(chǎn)品必須按照定義的需求。
能力成熟度模型集成(CMMI)是一個(gè)過程和行為模型,可以幫助組織簡化過程改進(jìn),并鼓勵(lì)生產(chǎn)效率高的行為,從而降低成本、產(chǎn)品和服務(wù)開發(fā)中的風(fēng)險(xiǎn)。
CMMI將能力成熟度分為5個(gè)等級(jí),分別是:初始級(jí)、已管理級(jí)、已定義級(jí)、量化管理級(jí)和優(yōu)化級(jí)。這5個(gè)等級(jí)中每一個(gè)等級(jí)構(gòu)成了下一級(jí)的基礎(chǔ)。CMMI為改進(jìn)一個(gè)組織的過程提供了一個(gè)單一的集成化框架,新的集成模型框架消除各個(gè)模型的不一致性,減少模型間的重復(fù),增加透明度和理解,建立一個(gè)自動(dòng)的、可擴(kuò)展的框架,從而從整體上改進(jìn)產(chǎn)品的質(zhì)量和組織的效率。
K公司的目標(biāo)是將其組織提升至第4級(jí),即量化管理層次。
CMMI能力等級(jí)描述了組織對于過程域的能力,能力由相關(guān)的共性和特定實(shí)踐組成,該過程域可以改進(jìn)與其相關(guān)的組織流程。每一層都是持續(xù)過程改進(jìn)的基礎(chǔ)。
CMMI將能力等級(jí)分為6個(gè)等級(jí):不完整級(jí)、已執(zhí)行級(jí)、已管理級(jí)、已定義級(jí)、定量管理級(jí)和優(yōu)化級(jí)。
根據(jù)所使用的領(lǐng)域(獲取,服務(wù),開發(fā))的不同,它所包含的過程域?qū)⒂兴煌?。過程域是CMMI模型的基本組織特征。表1列出了CMMI 1.3版本所定義的17個(gè)核心過程域。
表117個(gè)核心過程域
度量與分析組織過程定義組織過程焦點(diǎn)組織績效管理組織過程績效組織培訓(xùn)項(xiàng)目跟蹤與監(jiān)控項(xiàng)目計(jì)劃過程域產(chǎn)品質(zhì)量保證量化項(xiàng)目管理需求管理風(fēng)險(xiǎn)管理供應(yīng)商協(xié)議管理2335432224232
目的:建立和維護(hù)一組可用的過程資產(chǎn)。
步驟:創(chuàng)建組織過程資產(chǎn):
(1)建立組織的標(biāo)準(zhǔn)過程。
(2)建立生命周期模型描述。
(3)制定裁剪標(biāo)準(zhǔn)和指導(dǎo)方針。
(4)建立組織的過程資產(chǎn)庫。
(1)將每個(gè)標(biāo)準(zhǔn)過程分解為組成數(shù)個(gè)過程元素,以了解和描述過程所需的細(xì)節(jié)。每個(gè)過程元素涵蓋一系列相關(guān)的活動(dòng)。過程元素可能包含模板、片段、需要細(xì)化的抽象等內(nèi)容。
(2)指定每個(gè)過程元素的關(guān)鍵屬性。
(3)指定流程元素之間的關(guān)系。
(4)文檔化組織標(biāo)準(zhǔn)的標(biāo)準(zhǔn)過程。
3.1.2 創(chuàng)建組織生命周期模型描述
—— 瀑布模型
圖1 瀑布模型
—— 增量模型
圖2 增量模型
—— 極限編程模型
這段時(shí)間里,老鄧頻繁地來現(xiàn)場勘查。當(dāng)然,他每次都會(huì)開玩笑,要么是一瓶酒,要么是一斤糖或幾斤鹽。剛開始是丁主任主動(dòng)送的,后來成了老鄧主動(dòng)要,而且每次都毫不含糊,好像根本沒看見丁主任越來越哭喪的臉。
圖3 極限編程模型
—— 快速原型模型
圖4 快速原型模型
3.1.3 制定組織裁剪標(biāo)準(zhǔn)和指導(dǎo)方針
裁剪的目的就是為標(biāo)準(zhǔn)軟件過程裁剪,提供框架和總體指導(dǎo)方針,進(jìn)而利用現(xiàn)有的資源優(yōu)化現(xiàn)有的流程。K公司擬定每月進(jìn)行一次內(nèi)部審核,當(dāng)月如果遇到新的文檔或有待解決的問題時(shí),會(huì)根據(jù)審核報(bào)告進(jìn)行項(xiàng)目改進(jìn)計(jì)劃,并結(jié)合裁剪準(zhǔn)則進(jìn)行裁剪。
表2 制定組織裁剪標(biāo)準(zhǔn)
3.1.4 創(chuàng)建組織過程資產(chǎn)庫
組織過程資產(chǎn)庫的集合主要包含:
(1)過程和過程元素的描述,例如各工作流程、流程中各元素的定義等。
(2)生命周期的描述,針對整個(gè)軟件開發(fā)和維護(hù)生命周期的描述,例如,從何時(shí)開始,到何時(shí)結(jié)束,當(dāng)中經(jīng)過幾次小版本和大版本的發(fā)布。
(3)過程裁剪的指導(dǎo)方針。
(4)過程相關(guān)的文檔和數(shù)據(jù)。
組織級(jí)培訓(xùn)提供崗位所需的技能培訓(xùn),并以此提高技術(shù)人員專業(yè)能力和工作技巧。許多開發(fā)人員甚至是管理人員沒有意識(shí)到組織級(jí)培訓(xùn)的重要性和前瞻性。為了能夠讓開發(fā)人員整體上達(dá)到組織級(jí)別的需求,項(xiàng)目組應(yīng)當(dāng)定期地組織培訓(xùn),分享工作經(jīng)驗(yàn)成果,針對未來的前瞻技術(shù)進(jìn)行基礎(chǔ)的培訓(xùn)。
級(jí)培訓(xùn)分為:
(1)規(guī)章制度培訓(xùn)。在新員工入職時(shí)執(zhí)行,包括公司的規(guī)章制度、安全須知、年假病假等。
(2)技術(shù)技能培訓(xùn)。針對程序員、測試人員等技術(shù)方面的培訓(xùn),包括開發(fā)工具、開發(fā)環(huán)境等。
(3)開發(fā)流程培訓(xùn)。針對目前已有的開發(fā)模型,進(jìn)行詳細(xì)的流程方面的講解和梳理。
(4)內(nèi)部技術(shù)分享。針對新開發(fā)的功能和特性,相關(guān)開發(fā)人員應(yīng)當(dāng)進(jìn)一步將開發(fā)經(jīng)驗(yàn)分享出來,提高整體開發(fā)人員技術(shù)能力。
(5)其他類型的培訓(xùn)。例如項(xiàng)目管理方面的培訓(xùn),技術(shù)文檔寫作方面的培訓(xùn),針對工作各種可能運(yùn)用到的技術(shù),都可以組織培訓(xùn)提高相關(guān)人員的水平。
在引入CMMI模型之前,K公司需求開發(fā)流程較為松散,也沒有有效的監(jiān)控措施,并不是所有的需求都進(jìn)行了文檔化,有的時(shí)候甚至是口頭傳輸信息,對于某些含糊不清的地方,也沒有盡可能地解釋清楚,所以可能會(huì)導(dǎo)致開發(fā)人員的誤解。加之,缺乏完整有效的審核機(jī)制,使構(gòu)建的需求可能會(huì)無法滿足客戶的真實(shí)需求。
K公司擬定建立一套規(guī)范的流程對需求開發(fā)進(jìn)行管理。需求開發(fā)主要是集中在項(xiàng)目,需求分析人員與客戶或產(chǎn)品經(jīng)理通過引導(dǎo)客戶實(shí)際的具體的需求,完成《客戶需求分析研究報(bào)告》,之后需求分析人員進(jìn)一步細(xì)化需求,將所得到的具體需求文檔化為《需求分析報(bào)告》,并保存起來以便于接下來的審核和整理。接下來《需求分析報(bào)告》交由專家進(jìn)行審核,通過以后再與客戶確認(rèn)需求并簽字。
K公司需求開發(fā)的流程如圖5所示:
圖5 需求開發(fā)流程
隨著K公司項(xiàng)目的開發(fā)進(jìn)展,將會(huì)陸續(xù)收到各種需求,為了避免需求蔓延,首先必須制定適當(dāng)?shù)那酪垣@得需求。需求提供者與需求分析人員共同進(jìn)行需求分析,以確保對需求的正確理解。對于需求的管理需要有一套標(biāo)準(zhǔn)的規(guī)范,K公司擬定撰寫《評(píng)估和接受需求的標(biāo)準(zhǔn)》。
在獲得了項(xiàng)目各相關(guān)利益者的承諾后,將項(xiàng)目承諾的需求以及需求變更文檔化。其次在發(fā)生需求變更的情況下,項(xiàng)目經(jīng)理需要分析需求變更的影響,是否需要提供額外的控制手段,任何的需求變化都必須文檔化。
對于需求的可追溯性,必須要提供一個(gè)可以追蹤需求的系統(tǒng),K公司擬定使用OpenALM進(jìn)行需求的管理和追溯。對于各類需求需提供水平和垂直的關(guān)系表。盡可能將原始需求細(xì)化為最小的力度,這種雙向的可追溯性有助于確定所有的原始需求已被完全處理,并且在較低層次的需求也可以追溯到一個(gè)有效的原始需求。
K公司的需求管理的流程如圖6所示:
圖6 需求管理流程
通過從需求開發(fā)和需求管理中接收的產(chǎn)品和產(chǎn)品組件的需求,技術(shù)解決方案才得以開啟。
項(xiàng)目啟動(dòng)后,產(chǎn)品經(jīng)理需創(chuàng)建《產(chǎn)品概要設(shè)計(jì)》,產(chǎn)品組的研發(fā)人員針對《產(chǎn)品概要設(shè)計(jì)》進(jìn)行詳細(xì)設(shè)計(jì),建立《詳細(xì)設(shè)計(jì)》和《測試用例分析》等說明書,并且需要經(jīng)過專家的審核,如不通過,需退回去重新修改,通過以后,產(chǎn)品正式進(jìn)行開發(fā)流程。
專家必須包括已有相關(guān)經(jīng)驗(yàn)的高級(jí)開發(fā)人員、專職的項(xiàng)目審核人員、項(xiàng)目經(jīng)理等。
項(xiàng)目的測試人員根據(jù)《產(chǎn)品概要設(shè)計(jì)》進(jìn)行測試用例的分析,與組內(nèi)開發(fā)人員進(jìn)行合作,制定出《測試用例分析報(bào)告》報(bào)告等,測試用例必須要涵蓋所開發(fā)或更新模塊的所有功能。
技術(shù)文檔工程師根據(jù)《詳細(xì)設(shè)計(jì)》撰寫用戶支持使用說明書,主要包含的內(nèi)容包括產(chǎn)品的安裝,升級(jí),配置文檔,各類接口文檔,以及功能和特性文檔的需求詳述。針對臨時(shí)發(fā)生的需求變更,需要重新進(jìn)行技術(shù)方案的評(píng)審工作,并且得重新估算項(xiàng)目時(shí)間。
產(chǎn)品經(jīng)理可以根據(jù)功能將產(chǎn)品拆分為數(shù)個(gè)組件的形式,以工作包的形式分發(fā)給各個(gè)開發(fā)組進(jìn)行并行開發(fā),以此提高開發(fā)效率。工作包主要包含了產(chǎn)品架構(gòu)的描述、分配的需求、產(chǎn)品組件的描述、關(guān)鍵的產(chǎn)品特性、接口需求、測試標(biāo)準(zhǔn)(保證需求得以滿足)、使用條件和場景等。
在項(xiàng)目開發(fā)周期內(nèi),項(xiàng)目經(jīng)理需安排相關(guān)負(fù)責(zé)人(一般為產(chǎn)品經(jīng)理)對需求進(jìn)行跟蹤,如遇到需求相關(guān)的問題,需及時(shí)登記《項(xiàng)目問題日志》,持續(xù)跟蹤并將問題解決。
K公司的技術(shù)解決方案流程如圖7所示:
圖7 技術(shù)解決方案流程
驗(yàn)證包括對產(chǎn)品和中間工作產(chǎn)品的驗(yàn)證,以對抗所有選定的需求,包括客戶、產(chǎn)品和產(chǎn)品組件需求。驗(yàn)證本質(zhì)上是一個(gè)漸進(jìn)的過程,因?yàn)樗l(fā)生在產(chǎn)品和工作產(chǎn)品的開發(fā)過程中,從對需求的驗(yàn)證開始,通過對不斷變化的工作產(chǎn)品的驗(yàn)證,并最終對已完成的產(chǎn)品進(jìn)行驗(yàn)證。
本文針對K公司的軟件開發(fā)項(xiàng)目,結(jié)合CMMI的管理體系,進(jìn)行軟件質(zhì)量管理的優(yōu)化。主要是基于CMMI中的兩個(gè)基礎(chǔ)過程域:過程管理過程域和工程過程域,進(jìn)行流程和解決方案上的優(yōu)化。通過聘請專家組對這些過程域的流程進(jìn)行審核。通過建立標(biāo)準(zhǔn)過程,定義產(chǎn)品生命周期模型,制定項(xiàng)目剪裁標(biāo)注,以及創(chuàng)建資產(chǎn)庫(即文檔),組織各類培訓(xùn),使項(xiàng)目管理過程規(guī)?;驼?guī)化。對于項(xiàng)目的需求開發(fā)和管理,通過技術(shù)解決方案和確認(rèn)驗(yàn)證進(jìn)行了進(jìn)一步的流程優(yōu)化以及責(zé)任分配,從項(xiàng)目開始至結(jié)尾進(jìn)行了嚴(yán)格的把握,最終可以對于項(xiàng)目的質(zhì)量產(chǎn)品了積極的影響。