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