1 概述
通過對項目管理的系統(tǒng)學(xué)習(xí),我個人對于工作分解結(jié)構(gòu)在軟件中的應(yīng)用有很深的感觸,對于工作分解結(jié)構(gòu)在軟件開發(fā)中的應(yīng)用有一些個人的看法和見解。
首先我們看一下項目分解結(jié)構(gòu)的定義,工作分解結(jié)構(gòu)是進行范圍規(guī)劃時所使用的重要工具和技術(shù)之一,是面向可交付成果的對項目元素的分組,它組織并定義了整個項目范圍,未列入工作分解結(jié)構(gòu)的工作將排除在項目范圍之外。它是項目團隊在項目期間要完成或生產(chǎn)出的終細目的等級樹,所有這些細目的完成或產(chǎn)出構(gòu)成了整個項目的工作范圍。
從項目分解結(jié)構(gòu)的定義和我們的學(xué)習(xí)我們知道,項目分解結(jié)構(gòu)主要針對的是可交付物以及工作細分。同時通過學(xué)習(xí)我們知道,項目分解結(jié)構(gòu)產(chǎn)生于項目計劃階段過程,在項目執(zhí)行過程的控制中對項目進行考核和控制,后在項目結(jié)束階段為整個項目的考核提供參考。但是,我個人認為,如果從軟件開發(fā)的角度來看的話,項目分解結(jié)構(gòu)這個工具在需求定義期間也能起到很好的應(yīng)用,也是非常有意義的,我將會再下面的示例中進行闡述。下面結(jié)合實際工作案例對項目分解結(jié)構(gòu)在軟件開發(fā)項目中的應(yīng)用作一個簡單的描述。
2 軟件項目存在的普遍性問題
1、工作范圍界定
首先我們來看一下什么是軟件開發(fā),說白了,軟件開發(fā)其實是讓電腦在我們設(shè)定好路線上行走的一個實現(xiàn)過程。而人的思維是邏輯的、發(fā)散性的,電腦的思維是單一的、指令性的。此而言,在電腦軟件的實現(xiàn)過程中需要對人的思維和操作方式進行整理,形成一個符合電腦工作的一個流程,在這中間涉及到了工作范圍界定,和各種信息的綜合篩選。
2、工作量估算
通過幾個軟件項目的完工,我又這樣的一個感觸,一個軟件項目如果完成時間超過預(yù)計時間15%以下算是一個很不錯完成時間。從我接觸的幾個項目上來看,長的一個項目甚至延期了將近半年的時間,而初的預(yù)期開發(fā)時間只有三個月。從后來對項目終評估結(jié)果看來,除了由于客戶的一些行政和人事原因引起的延時,很大一部分原因還是因為對項目的工作量把握不夠,在一些關(guān)鍵的模塊上產(chǎn)生了很嚴重的超時。
3、需求難以明確
在軟件項目啟動階段,不管是甲方還是乙方,對于軟件的估算都是不足的,項目的需求都有一個從模糊到清除的過程,在項目啟動階段,總是需求模糊的一個階段,而這個階段卻是項目的一個重要階段,明確地需求直接關(guān)系到開發(fā)的成本和報價,怎樣與客戶通過溝通得到較為一致且明確地需求顯得非常重要。
4、軟件開發(fā)過程控制
在軟件開發(fā)過程中,溝通和交流的直接明了非常重要,通暢準確的溝通可以很好的提高開發(fā)效率和明確的得到終交付物,但是如果光靠通過口頭交流來說的話容易產(chǎn)生一定的偏差,通過文字來交流話又不是很直觀。難以滿足對項目及時調(diào)整、管理、甚至決策的需要。
從以上的各個問題來說,事實上我們需要的是一個統(tǒng)一的、規(guī)范的溝通標準,利用此標準可以是項目的各個參與方進行有效的信息溝通,同時可以確保業(yè)余與項目管理方獲得準確實時的項目信息,以便高校的對整個項目的進度、成本、質(zhì)量進行統(tǒng)一的計劃和控制。
3 工作分解結(jié)構(gòu)的具體應(yīng)用
在這里我簡單的描述一下項目,該項目是針對電力行業(yè)的一個MIS項目,在項目的執(zhí)行過程中我們事實上沒有完全按照項目管理的規(guī)范來做,但是,在項目的各個環(huán)節(jié)中我們都很多的用到了工作分解結(jié)構(gòu)這樣的一個工具,在這里我們分階段進行應(yīng)用闡述。
1、啟動階段
項目在初定義階段,不管是客戶還是軟件開發(fā)人員,對于系統(tǒng)的了解總是基于大模塊的,而對于模塊的局部結(jié)構(gòu)的了即比較模糊了,在需求定義和明確的過程中,首先通過軟件人員的頭腦風(fēng)暴形成一個初的軟件分解結(jié)構(gòu),然后以此為基礎(chǔ)與客戶進行溝通比較直觀明了,便于客戶形成直觀的概念。但是,在這個階段里面,項目里面的很多內(nèi)容往往是不清晰和不確定的,在這里我們可以很好的利用項目分解結(jié)構(gòu)這個工具來進行有效的溝通。
我們可以從以下的三個圖來說明這種情況,這幾個圖是在對MIS項目行需求分析時產(chǎn)生的。首先圖一表示的是通過開發(fā)人員的初調(diào)研形成的組織分解結(jié)構(gòu)圖,然后在此基礎(chǔ)上,通過與客戶的交流發(fā)現(xiàn)MIS結(jié)構(gòu)的模塊分布式是上并不是原想的組織結(jié)構(gòu)。我們了解到,電管站的電費終也是收入到營銷部,從電費歸屬的意義上來說的話,電管站終也歸營銷部管理,所以我們對組織結(jié)構(gòu)圖進行了再一次的整合和修改。形成了第二個組織結(jié)構(gòu)圖,在大的模塊的到確認的前提下,對其中的各個模塊進行進一步的細分,對各個模塊以終可交付物為單位形成各個模塊的細分結(jié)構(gòu),如圖三,其他模塊省略。這樣同時對軟件開發(fā)人員和系統(tǒng)使用人員都形成了一個直觀可行的模塊印象。
在這里我們可以看出,在需求定義階段,項目分級結(jié)構(gòu)可以作為一個很好的客戶與調(diào)研人員溝通的手段,可以更好的對項目的構(gòu)建形成一個統(tǒng)一的認識,同時界定出項目的模塊范圍,為以后軟件開發(fā)產(chǎn)生需求變更提供參考依據(jù)。
同時由于組織分解結(jié)構(gòu)是以終交付物為單位的,以一人兩周的開發(fā)周期作模塊分解的依據(jù)。所以,當(dāng)終的項目分級結(jié)構(gòu)形成之后,可以依據(jù)項目分解結(jié)構(gòu)計算出項目所需要的工期以及開發(fā)人員資源,并以此為基準計算出項目的可估算成本。