在實(shí)際項(xiàng)目工作過程中,中小型項(xiàng)目開發(fā)團(tuán)隊(duì)因?yàn)轫?xiàng)目規(guī)模等原因,在需求管理和測試管理上進(jìn)行了過度裁剪,導(dǎo)致項(xiàng)目的需求管理和測試管理出現(xiàn)失控。如何在中小項(xiàng)目開發(fā)團(tuán)隊(duì)中做好需求管理和測試管理,是目前大部分項(xiàng)目團(tuán)隊(duì)面臨的主要問題之一。本文主要說明如何使用Rational工具進(jìn)行有效的需求管理和測試管理,提高軟件的質(zhì)量和開發(fā)水平。
在本文中,中小型開發(fā)團(tuán)隊(duì)指項(xiàng)目成員數(shù)量在2-25個,項(xiàng)目工作量在6-75個人月的軟件項(xiàng)目。
1. 項(xiàng)目生命周期對于中小型項(xiàng)目管理的重要性
任何有機(jī)體都有其生命周期,中小型軟件項(xiàng)目也不例外。項(xiàng)目經(jīng)理或組織可以把每一個項(xiàng)目劃分成若干個階段,以便有效地進(jìn)行管理控制,并與實(shí)施該項(xiàng)目組織的日常運(yùn)作聯(lián)系起來,這些項(xiàng)目階段合在一起稱為項(xiàng)目生命周期。本文將項(xiàng)目生命周期劃分為啟動、計(jì)劃、執(zhí)行和結(jié)束四個階段(見圖一)。其中,執(zhí)行階段一般包括需求、設(shè)計(jì)、實(shí)現(xiàn)、測試和發(fā)布活動。這些活動可以按照實(shí)際情況采用瀑布或迭代等其他方式進(jìn)行開發(fā)。
圖一 項(xiàng)目生命周期階段及里程碑圖
正確的認(rèn)識和理解項(xiàng)目的生命周期,對制定與實(shí)施相應(yīng)的戰(zhàn)略、策略以在滿足成本性能、時間性能和技術(shù)性能的條件下實(shí)現(xiàn)項(xiàng)目管理的目標(biāo),并形成企業(yè)核心競爭優(yōu)勢,都具有非常重要的意義。通過對項(xiàng)目生命周期各個階段及各個階段里程碑的明確,便于項(xiàng)目團(tuán)隊(duì)的交流溝通,使團(tuán)隊(duì)成員對項(xiàng)目有更深更細(xì)的認(rèn)識。
在中小型項(xiàng)目開發(fā)團(tuán)隊(duì)中,由于資源限制,人們常常跳過項(xiàng)目生命周期的某些階段,或是敷衍的執(zhí)行其中的某個活動。在整個軟件生命周期中,經(jīng)常被忽視的兩大活動是需求管理以及測試管理。國內(nèi)軟件業(yè)的痼疾之一是,人們并不清楚究竟該做什么,但卻一直忙碌不停地開發(fā)。例如,還沒有弄清楚項(xiàng)目所需要解決的問題是什么,直接選擇項(xiàng)目的解決方案。更有甚者,直接進(jìn)行項(xiàng)目編碼活動。這種情況往往半途而廢,或返工重來,造成很大的損失。要進(jìn)行項(xiàng)目管理,要嚴(yán)格遵循項(xiàng)目活動中的內(nèi)在規(guī)律,并按照生命周期每個階段的策劃,與預(yù)定的實(shí)施活動進(jìn)行項(xiàng)目管理才有可能避免不必要的損失,少走彎路,使項(xiàng)目達(dá)到良好的效果。
2. 中小型項(xiàng)目開發(fā)團(tuán)隊(duì)如何做好需求管理和測試管理
需求是項(xiàng)目的根源,需求工作的優(yōu)劣對產(chǎn)品影響大。像一條河流,如果源頭被污染了,那么整條河流也被污染了。對于現(xiàn)代企業(yè)來說,能否生產(chǎn)出滿足顧客需求的軟件至關(guān)重要,在整個軟件的生命周期中,要確保各項(xiàng)工作和需求之間的一致性,應(yīng)用需求管理顯得格外重要。
要做好需求管理,主要從需求確認(rèn)、需求跟蹤和需求變更控制三個方面進(jìn)行。需求確認(rèn)主要指開發(fā)方和客戶方共同對《需求規(guī)格說明書》進(jìn)行評審,雙方對需求達(dá)成一致共識后作出承諾。在達(dá)成共識的需求基礎(chǔ)上,通過建立與維護(hù)“需求——設(shè)計(jì)——編程——測試”之間的一致性,確保所有提交的工作成果符合用戶需求。隨著項(xiàng)目的進(jìn)展,人們(包括開發(fā)方和客戶方)對需求的了解越來越深入,原先的需求文檔可能存在這樣那樣的錯誤或不足,因此開發(fā)方和客戶方要變更需求。通過建立變更管理流程,管理需求變更,對需求變更進(jìn)行分析和評估,控制需求變更造成的影響,以免需求變更失去控制。
在軟件生命周期中,除了需求管理外,經(jīng)常被忽視的另一個部分是測試管理。在傳統(tǒng)手工管理方式下,測試與需求間的關(guān)系很難進(jìn)行跟蹤控制。在需求發(fā)生變更時,經(jīng)常出現(xiàn)測試未完全覆蓋需求,導(dǎo)致測試不全面的問題。由于缺乏必要的系統(tǒng)平臺支撐,容易造成測試資產(chǎn)的遺漏,項(xiàng)目測試管理人員無法對測試資產(chǎn)進(jìn)行有效的跟蹤管理。隨著質(zhì)量管理發(fā)展的要求,測試的范疇已經(jīng)不再僅局限于發(fā)現(xiàn)缺陷,還包括對軟件產(chǎn)品質(zhì)量進(jìn)行評估、度量管理和缺陷預(yù)防等活動。通過測試活動,發(fā)現(xiàn)、跟蹤和處理缺陷,對項(xiàng)目進(jìn)行風(fēng)險評估。
做好測試管理,可以從以下四方面進(jìn)行:1)項(xiàng)目測試計(jì)劃管理、測試進(jìn)度管理:保證項(xiàng)目測試工作按照預(yù)期的計(jì)劃與可行的進(jìn)度開展;2)測試資產(chǎn)管理:包括測試計(jì)劃、測試用例、測試腳本、測試報告的創(chuàng)建與維護(hù)、缺陷跟蹤,保證測試資產(chǎn)之間是可跟蹤的,一致的;3)項(xiàng)目質(zhì)量評估與預(yù)防:通過測試度量數(shù)據(jù)的分析與預(yù)估,對項(xiàng)目質(zhì)量進(jìn)行風(fēng)險評估;4)測試團(tuán)隊(duì)管理:如測試人員的績效考核、人員的技術(shù)發(fā)展與定位、人員激勵等。
3. 中小型項(xiàng)目開發(fā)團(tuán)隊(duì)如何開展需求管理和測試管理
需求管理屬于CMMI中的KPA之一,而測試管理則在驗(yàn)證和確認(rèn)這兩個KPA中得到體現(xiàn)。CMMI主要是針對大型軟件項(xiàng)目開發(fā)團(tuán)隊(duì)的,對中小型軟件項(xiàng)目開發(fā)團(tuán)隊(duì)則需要進(jìn)行裁減。而我國大部分軟件項(xiàng)目開發(fā)團(tuán)隊(duì)都屬于中小型項(xiàng)目團(tuán)隊(duì),在進(jìn)行需求管理和測試管理活動時,不太可能也沒有必要原原本本地對照CMMI中定義的每一項(xiàng)要求進(jìn)行實(shí)施。這牽涉到對需求管理和測試管理進(jìn)行裁剪及解釋的問題。“裁剪”是指對范圍及程度的改變;“解釋”是指把實(shí)際軟件項(xiàng)目中的實(shí)踐工作,理解為或等同為某個關(guān)鍵實(shí)踐。
中小型項(xiàng)目開發(fā)團(tuán)隊(duì)來說,裁剪及解釋是否得當(dāng)是能否成功地應(yīng)用需求管理和測試的一個關(guān)鍵。筆者認(rèn)為,在不影響基礎(chǔ)要求的前提下,剪裁到越簡單,條理越清晰,執(zhí)行效果越好。