(1.東北大學 東軟信息學院 計算機系, 遼寧 大連 116023; 2.華中科技大學 軟件學院, 湖北 武漢 430074)
摘 要:
工作分解結構是確定項目范圍的一種主要技術。從軟件的過程、產品二元性以及軟件工程異于傳統工程的特點出發,提出了將工作分解結構、組織分解結構、產品分解結構和項目中的工作責任相結合的WBSR模型,給出了模型的工作流程,分析了該模型對軟件項目管理的作用。在一個國際性軟件企業的軟件項目管理軟件中成功地實現了該模型,它對軟件項目的范圍界定和軟件項目計劃能起到較好的作用。
關鍵詞:軟件工程; 項目管理; 工作分解結構
中圖法分類號:TP3115文獻標識碼:A
文章編號:10013695(2006)08001903
Study on Work Breakdown Structure Model of Software Project
XIONG Yaohua1, CHEN Chuanbo2
(1.Dept. of Computer, Neusoft Institute of Information, Northeastern University, Dalian Liaoning 116023, China; 2.School of Software, Huazhong University of Science Technology, Wuhan Hubei 430074, China)
Abstract:Work Breakdown Structure(WBS) is a main technique to define the scope of project. Based on the software’s dua lism: process and product, and the software unusual distinguishing feature depart to the traditional project, the WBSR model is proposed in this paper, which integrates work breakdown structure, organization breakdown structure, product breakdown structure and the work responsibility in software project together. The work process of this model is put forward, and the effect to software project management of the WBSR model is analyzed at the same time. The model is realized in the software project management system of an international software enterprise successfully, which is useful to define the scope of software project and plan the project.
Key words:Software Engineering; Project Management; Work Breakdown Structure(WBS)
1引言
軟件項目管理的核心內容就是軟件項目計劃的管理,軟件計劃的第一個活動就是確定軟件范圍,該范圍是項目的最終成果和產生該成果需要做的工作,既不欠缺也不多余,在管理級和技術級均是無二義的。在軟件項目計劃中,對項目范圍的準確確定以及工作量、成本等各項估算都是十分重要的。工作分擔(責任范圍)不明確,工作分解結構(Work Breakdown Structure,WBS)與項目組織結構不明確或者不相對應,各成員之間的接口不明確,將會導致一些工作根本無人負責,而這將成為軟件項目失敗的重大隱患[1]。進行軟件項目的估算最精確的方法通常是建立一個將工作分解開的結構,工作分解結構就是一個有效的工具。
工作分解結構是為了管理和控制的目的而將項目分解的技術。它按層次把項目分解成子項目,子項目再分解成更小的、更易管理的工作單元(或稱工作包),直至具體的活動(或稱工序)的方法[2]。WBS通常是一棵結構化樹,該樹組織并確定了項目的整個范圍[3]。
產品分解結構(Product Breakdown Structure,PBS)是面向產品或服務的分解,它用于定義項目可交付的產品及產品的組成單元,確定產品或服務中應包含的功能和特征。這里的產品指軟件工作產品,包括軟件產品(最終要提交給用戶的)和最終不提交給用戶的產品。
項目的組織分解結構(Organization Breakdown Structure,OBS)是關于項目內部組織的分解,它是用與工作分解結構相似的方法構建而成的項目的內部組織圖表。
軟件具有過程和產品的二元性。軟件項目的生命周期有項目立項、系統需求分析、系統設計、系統實現、系統測試、系統上線安裝和系統維護等幾個階段,每個階段的工作也有其很強的規律性,都有其相應的操作規程。所以,軟件項目按照軟件系統開發過程的規律對工作進行分解,確定項目工作范圍是非常重要的。同時,由于軟件產品主要是邏輯產品而非物化的有形產品,這樣對客戶需求的正確理解就會有或多或少的偏差[4]。鑒于此,對軟件項目產品進行分解,盡可能準確地界定軟件產品范圍,對項目的成功也是非常關鍵的。如果過程很弱,最終產品將不可避免地會出問題,但過分依賴過程也是很危險的。
軟件開發與傳統的工業產品制造相比,有以下特性:
(1)軟件是被開發或設計的,而不是傳統意義上被制造的;
(2)軟件開發不需要使用大量的物質資源,而主要是人力資源;
(3)雖然軟件產業正在向基于構件的組裝前進,但大多數軟件仍是定制的;
(4)軟件開發的產品只是程序代碼和技術文件與數據等邏輯產品,并沒有其他的物質結果。
基于上述特點,軟件項目管理與其他項目管理相比,有很大的獨特性,不能像管理其他項目一樣管理軟件項目。對軟件項目而言,最重要的資源是人,最重要的生產力也是人,確定了軟件項目的工作范圍和產品范圍,如果有人對范圍內的各個元素負責,那么制定工作計劃就容易多了[5]。
下面要討論的WBS模型就是針對軟件項目的特點所提出來的。
2WBSR模型
本文要提出的WBS模型是工作、產品、組織分解的結果要素與責任(Responsibility)相結合的,在本文中把該模型稱為WBSR(Work Breakdown Structure Responsibility)模型。
2.1軟件工程項目的WBSR模型示意圖
從WBS,PBS,OBS三個維度來結構化項目并將其結合起來,可以有效地確定軟件工程項目的工作范圍和產品范圍,并確定相關負責工作和產品的組織或人員及其相關責任,如圖1所示。
WBS,PBS平面體現的是軟件項目中工作分解結構與軟件產品分解結構之間的關系,確保每個分解的PBS都有相應的WBS去完成,也讓項目管理者明確某個WBS對應的PBS產品。圖1所示的WBS制定項目計劃,其對應產品有《項目計劃》和《項目基線計劃》兩個。
WBS,OBS平面體現的是軟件項目的某項工作與項目組織結構之間的對應關系,就是責任分配矩陣RAM,這可以讓項目組成員明確自己所要做的工作和責任,同時讓項目管理者明確項目各項工作相關的責任人。這將為項目計劃的制定、項目組人員的績效考核提供依據。圖1中所示的WBS制定項目計劃有OBS中的項目經理和項目監管人(一般為軟件企業的部門經理)對其負責,PBS中的《項目計劃》和《項目基線計劃》分別由OBS中的項目經理和項目監管對其負責。其中項目經理負有“負責”責任,項目監管負有“審批”責任。
2.2WBSR模型的相關定義
定義1單位責任集S是一個非空有限集合,{S|s∈S,s是軟件項目中的一種責任}。
在軟件項目中,對于某一種工作,有某人為之負一種責任,這責任可以是通知、執行、審查、批準、輔助、負責等。
定義2責任集R是一個非空有限集合,{R|F∈R,f∈F,f∈S}。
R是S的不含空集的冪集,對于軟件工程的某一項工作,某人可能對其有多重責任。
定義3 WBS集W是一個非空有限集合,{W|w∈W,w是軟件項目的WBS樹型結構的一個節點或空集φ}。
定義4 PBS集P是一個非空有限集合,{P|p∈P,p是軟件項目PBS樹型結構的一個節點或空集φ}。
定義5 OBS集O是一個非空有限集合,{O|o∈O,o是軟件項目組OBS樹型結構的一個節點}。
定義6 四元組(w,p,o,r)是軟件項目的一個工作包,當且僅當
(1)w∈W;
(2)p∈P;
(3)w,p不同時為空集φ;
(4)o∈O;
(5)r∈R。
定義7 工作包集V是一個非空有限集合,{V|v∈V,v是軟件項目的一個工作包}。
定義8 工作責任矩陣,即工作包集V在三維空間WBS,PBS,OBS向WBS,OBS平面投影所形成的矩陣。
定義9 產品責任矩陣,即工作包集V在三維空間WBS,PBS,OBS向PBS,OBS平面投影所形成的矩陣。
定義10 工作產品對應矩陣,即工作包集V在三維空間WBS,PBS,OBS向WBS,PBS平面投影所形成的矩陣。
定義11 工作包可達。vi,vj∈V,vi可達vj當且僅當
(1)vi與vj相關;
(2)vi先于vj。
在軟件項目中,“先于”的概念主要從軟件開發階段和產品先后順序來考慮。
定義12工作包一步可達。vi,vj∈V,vi可達vj當且僅當
(1)vi與vj直接相關;
(2)vi先于vj。
在圖1中的兩個工作包,項目經理完成工作計劃后由項目負責人審批,這是直接關系,是一步可達的。
2.3WBSR模型的非形式化描述
根據具體軟件項目的特點,分析得到責任集;由軟件過程規律和項目個體特性,對軟件項目做工作結構分解,得到WBS集;以軟件項目的客戶需求為基礎,分析得到該軟件項目的產品分解結構的輸出PBS集;結合軟件企業和項目組的特點得到項目的組織分解結構OBS;在以上基礎上分析得到工作包集以及工作包的可達矩陣和一步可達矩陣,作為項目計劃的依據。
該模型的輸入是WBS,PBS,OBS的分解策略,項目自身特征,客戶需求,軟件工程過程方法;輸出是WBS樹型結構圖、PBS樹型結構圖、OBS樹型結構圖、工作責任矩陣、產品責任矩陣、工作包可達矩陣和工作包一步可達矩陣。
3WBSR模型的工作流程
WBSR模型的工作程序包括組建WBSR工作小組,對項目工作、產品、組織進行分解,工作結果的確認,軟件項目范圍變更時WBS結果的更新等作業序列,如圖2所示。
(1)組建WBSR工作小組
小組成員一般由該軟件項目的項目經理、技術經理、系統分析人員、客戶代表、項目外有經驗人員等組成,還可能包括SEPG,SCM,SQA組的成員和最終用戶代表。
(2)工作結構分解
工作結構分解是該模型工作程序很關鍵的一步,一般是根據軟件開發的過程,按照階段進行分解的。同時,小組成員的經驗和企業的軟件過程知識庫是很重要的參考。
(3)產品結構分解
軟件產品主要是邏輯產品的特性決定了客戶需求在軟件產品分解工作中的地位,在產品分解時要從產品功能和服務兩個方面去分析和分解,對于隱含的功能和服務要與客戶達成共識。
(4)組織結構分解
組織結構分解在很大程度上依賴軟件企業的運作模式,如SEPG小組、SQA小組、SCM小組的設置等。在該模型中,將這三個小組納入組織結構分解的范疇,同時將項目的監管人也作為項目組織結構內的人員。
(5)責任類型劃分
責任類型劃分主要取決于軟件項目行業領域和軟件企業的管理方法,主要參考軟件過程知識庫中的歷史數據。
(6)生成項目工作包集
項目工作包集的生成是WBSR模型最為重要的一步,也是該模型的核心。WBS與OBS的映射、PBS與OBS的映射、責任集R的分派、工作包粒度的控制等都是影響該模型能否正確工作的關鍵,也將影響后面工作包可達矩陣的正確性。
(7)生成工作包可達矩陣
在工作包集V正確定義的基礎上生成的工作包可達矩陣將為軟件項目計劃提供科學的依據。可以先將工作包集分成相對獨立的小集合,然后在小集合的范圍內再進行工作包可達性分析,這樣可以降低復雜度,提高其準確性。在項目計劃和跟蹤監督過程中,更加有價值的是工作包一步可達矩陣。
(8)工作結果檢核
WBSR工作小組在完成工作包集和可達矩陣后將檢核工作結果,確保范圍定義沒有遺漏并正確定義,工作包可達矩陣、一步可達矩陣正確,并對有偏差的地方進行修正或補充。
(9)項目范圍變更
軟件項目實施的過程中,項目范圍發生變更的情況是無法避免的。項目范圍變了,工作包集和可達矩陣也要作相應變化,從而為項目當前計劃的制定提供依據。
4WBSR模型對軟件項目管理的作用
WBSR模型的工作成果有軟件項目責任矩陣WBS結構圖、PBS結構圖、工作包集、工作包可達矩陣等,這些將對軟件計劃、預估、評估等提供依據或參考。具體關系如圖3所示。
WBSR模型最重要的工作成果是WBS圖、PBS圖和工作包集合,它們將是軟件項目計劃的制定尤其是工作分配的主要依據,同時也是跟蹤監督項目計劃完成情況以及計劃調整的依據。在項目的成本、資源、缺陷、風險預估的過程中,分解后的WBS圖和PBS圖對各項預估結果的準確性和正確性將起到至關重要的作用。工作包集是軟件過程評估和改進以及產品的檢測等環節的數據采集過程中保證數據精確性的重要基礎。WBSR模型所得到的責任矩陣,對于項目組成員工作的監督和績效考核將提供重要的依據。
5WBSR模型性能分析與評價
WBSR模型從過程和產品的不同視角對項目進行分解,從而使軟件項目范圍的定義更加準確和有效,減少工作的遺漏及做一些無用的工作;并且工作落實到人,在工程實踐中可以有效避免有些工作無人負責的情況。模型對軟件項目范圍界定和軟件項目計劃有較好的支持作用。
WBSR模型中工作包可達分析是較為復雜的部分,但模型沒有給出具體的分析方法,如果能提出具體有效的可達分析算法,該模型對項目進度安排的支持作用將得到充分發揮。
6結束語
本文提出將WBS,OBS與PBS相結合,并進一步與具體工作的責任相結合的WBSR模型。WBS主要從軟件工程過程的角度出發去界定軟件項目的范圍;PBS主要從客戶的需求出發對軟件項目進行面向結果的分解;WBS和PBS的整合遵循軟件的過程、產品二元性規律,并有效解決軟件項目范圍難以確定的問題;WBS,PBS分別與OBS相結合,從而使得軟件工程的各個階段、各個環節以及客戶需求的各個細節能與項目組的每個組織或個人對應起來,都有人為其負責,確保軟件項目順利完成,并能滿足用戶的需求。WBSR模型還提出將軟件項目分解的結果(工作包)按照軟件過程和軟件產品的要求分析其可達性(相關性和先后關系),形成工作包可達矩陣和一步可達矩陣,為軟件項目計劃提供依據。
在一個國際性軟件企業(宜諾維新集團武漢開發中心)的項目管理系統ESSP(Enovation Software Service Platform)中對上述WBSR模型作了剪裁,并成功地實現了該模型。該模型的采用將會對軟件項目的范圍界定、項目計劃、計劃跟蹤、績效考核、軟件過程改進等起到較好的效果。
參考文獻:
[1]Voegtli C. High Impact Management Techniques for any Project[J]. Antennas and Propagation Magazine, IEEE, 2000,42(5):122-124.
[2]劉易勇,高天德,熊宗慧.項目管理技術在行業制造過程管理中的應用研究[J]. 計算機工程與應用,2003,39(8):20-22.
[3]Larrabee R C.Effective Work Breakdown Structures[J]. Software, IEEE, 2003,20(2):84-85.
[4]Aaen I.Software Process Improvement: Blueprints Versus Recipes[J]. Software, IEEE , 2003,20(5):86-93.
[5]TomaykoJ. Scientific Management Meets the Personal Software Process[J]. Software, IEEE, 2003,20(2):12-14.
作者簡介:熊耀華(1974-),男,湖北嘉魚人,碩士,研究方向為軟件項目管理;陳傳波(1957-),男,湖北武漢人,教授,博導,研究方向為基于網絡的計算機應用技術和軟件項目管理
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。