[摘要] 本文討論了一個(gè)作者參與的軟件項(xiàng)目的項(xiàng)目計(jì)劃制訂的若干問題。項(xiàng)目所開發(fā)的產(chǎn)品是一種智能電子教學(xué)設(shè)備,該設(shè)備可以實(shí)時(shí)同步地將用戶在硬件端的書寫內(nèi)容顯示在計(jì)算機(jī)屏幕上,并可以保存、編輯、打印用戶輸入的數(shù)據(jù),聯(lián)網(wǎng)的計(jì)算機(jī)也可以實(shí)時(shí)觀看用戶的書寫過程,并且用戶還可以通過投影在硬件端的PC機(jī)畫面交互操作PC機(jī)。作者針對(duì)項(xiàng)目計(jì)劃的制定采取了:分而治之,逐步求精,經(jīng)驗(yàn)數(shù)據(jù)三個(gè)主要策略,從而得到較好的效果。
中圖分類號(hào):D627;F426.61文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-914X(2016)21-0085-01
1.概述
作者參與了一個(gè)項(xiàng)目,該項(xiàng)目開發(fā)出來的產(chǎn)品是一種智能教學(xué)設(shè)備,該設(shè)備可以實(shí)時(shí)同步地將用戶在硬件端的書寫內(nèi)容顯示在計(jì)算機(jī)屏幕上,用戶可以保存、編輯、打印通過硬件端輸入到計(jì)算機(jī)的書寫內(nèi)容,聯(lián)網(wǎng)的計(jì)算機(jī)也可以實(shí)時(shí)觀看用戶的書寫過程。另外,用戶還可以通過投影在硬件端的PC機(jī)顯示畫面交互地操作PC機(jī)。對(duì)于這種實(shí)時(shí)通信且具有聯(lián)網(wǎng)功能的軟件項(xiàng)目,我認(rèn)為首先需要制定一個(gè)良好的項(xiàng)目計(jì)劃,才可以保證項(xiàng)目開發(fā)的成功。
我認(rèn)為行之有效的策略有三個(gè),分別是分而治之、逐步求精、經(jīng)驗(yàn)數(shù)據(jù)。下面就結(jié)合這三個(gè)策略詳細(xì)討論本次項(xiàng)目計(jì)劃的制訂。
2.分而治之
將一個(gè)過于復(fù)雜的問題分解成若干復(fù)雜度不那么高的小間題來依次解決,這種方法人類已經(jīng)采用了幾千年.這里我們也可以用于項(xiàng)目計(jì)劃的制定.因?yàn)檎麄€(gè)考慮項(xiàng)目的方方面面來制定計(jì)劃其復(fù)雜度已經(jīng)超過了人類處理問題的能力.為了解決這個(gè)問題,可以將整個(gè)項(xiàng)目分解為一些更小的組織體,逐一進(jìn)行處理,這項(xiàng)工作也就是項(xiàng)目管理中的WBS(工作分解結(jié)構(gòu))。
比如針對(duì)這次項(xiàng)目中采取的RUP開發(fā)過程模型,我在完成需求管理計(jì)劃時(shí)我就將計(jì)劃內(nèi)容分解成初始、細(xì)化、構(gòu)建、移交四個(gè)階段來分別制定,最后合到一塊兒就是完整的需求管理計(jì)劃。
除了按時(shí)間段分解的角度來制定項(xiàng)目計(jì)劃,我制訂軟件開發(fā)計(jì)劃時(shí)同時(shí)按照了RUP過程方法的工作流的概念來分解項(xiàng)目計(jì)劃的制定工作,根據(jù)每個(gè)工作流在四個(gè)階段業(yè)界通用的工作量估計(jì)來制定計(jì)劃,安排工作人員以及相應(yīng)的軟件資源。因?yàn)檐浖_發(fā)計(jì)劃涉及到多個(gè)工作流,我認(rèn)為以這種方式分解是合理的.同時(shí)因?yàn)楸卷?xiàng)目的特點(diǎn),我省略了業(yè)務(wù)建模工作流,這是因?yàn)檫@次的產(chǎn)品是以硬件為主,軟件為輔的消費(fèi)類產(chǎn)品,所以業(yè)務(wù)建模不是那么必要了.以不同的方式分解項(xiàng)目,可以從多個(gè)不同的角度來制定整個(gè)項(xiàng)目計(jì)劃,有利于全面、深入地了解項(xiàng)目,避免“瞎子摸象”的情況發(fā)生.
3.逐步求精
計(jì)劃工作其實(shí)是一種管理未來、管理未知的工作,而未來是變化莫測(cè)的,還存在許多自身無法掌握的因素,因此存在很大的難度.而解決這一困難的法寶就是逐步求精。按照先框架后細(xì)節(jié),先粗后細(xì)地進(jìn)行項(xiàng)目的計(jì)劃.
比如在這個(gè)項(xiàng)目中,在接受這個(gè)項(xiàng)目后就開始了做了一個(gè)初步計(jì)劃,這個(gè)計(jì)劃的內(nèi)容主要是做出時(shí)間上的安排。因?yàn)榇蛩阍?月需要用這個(gè)項(xiàng)目的產(chǎn)品申請(qǐng)國(guó)家中小企業(yè)創(chuàng)新基金的支持,所以完成時(shí)間就定在了4月,預(yù)留一個(gè)月用于寫申請(qǐng)報(bào)告。總的時(shí)間進(jìn)度確定后,大概分配了三個(gè)時(shí)間段:系統(tǒng)工程分析、軟件開發(fā)模型確定、軟件產(chǎn)品制造時(shí)間段、項(xiàng)目總結(jié)。
比如在初始階段時(shí)架構(gòu)設(shè)計(jì)考慮以MFC為平臺(tái),根據(jù)這個(gè)決定軟件開發(fā)計(jì)劃的制定是比較粗略的,在細(xì)化階段架構(gòu)設(shè)計(jì)進(jìn)一步詳細(xì),這時(shí)已經(jīng)清楚各個(gè)模塊和MFC的Doc/View主結(jié)構(gòu)的接口定義,以及各模塊之間的接口定義,這時(shí)我就可以根據(jù)所需開發(fā)的模塊制定計(jì)劃。比如這時(shí)我就計(jì)劃了特效界面模塊開發(fā)分兩次迭代,第一次迭代計(jì)劃一個(gè)月時(shí)間,第二次迭代兩周時(shí)間,第一次迭代需要完成放大和縮小、樹形選擇、縮略顯示等主要的界面效果,第二次迭代的主要任務(wù)是根據(jù)用戶反饋進(jìn)行修改調(diào)整。
4.經(jīng)驗(yàn)數(shù)據(jù)
要制定一個(gè)良好的計(jì)劃離不開精確的估算。不過項(xiàng)目計(jì)劃是在項(xiàng)目開發(fā)的早期制定的,而在早期要完成精確的估算是非常困難的.要解決這個(gè)問題的關(guān)鍵就在于“經(jīng)驗(yàn)數(shù)據(jù)”。由于整個(gè)軟件產(chǎn)業(yè)都還十分年輕,經(jīng)驗(yàn)數(shù)據(jù)的積累都普遍不足,才導(dǎo)致這一現(xiàn)象的出現(xiàn)。
但是因?yàn)檫@次項(xiàng)目開發(fā)的產(chǎn)品在國(guó)內(nèi)還沒有開發(fā)過,再加上公司沒有積累深厚系統(tǒng)的項(xiàng)目歷史數(shù)據(jù)。針對(duì)面臨的困難,我選用了FP功能點(diǎn)分析作為項(xiàng)目主要的估算方法。因?yàn)镕P方法中有大量項(xiàng)目經(jīng)驗(yàn)數(shù)據(jù)可以從網(wǎng)絡(luò)上獲得,同時(shí)其數(shù)據(jù)功能TLF、EIF,以及事務(wù)功能EI、EO、EQ的計(jì)算對(duì)經(jīng)驗(yàn)數(shù)據(jù)依賴不強(qiáng),只需對(duì)概念理解正確一般就可以正確估算了。在估算成本的時(shí)候,因?yàn)楣疽郧暗纳a(chǎn)率數(shù)據(jù)是以LOC為單位的,我利用軟件工程書籍中的“逆火”經(jīng)驗(yàn)數(shù)據(jù),將LOC轉(zhuǎn)換為功能點(diǎn)單位,當(dāng)然,這里必然導(dǎo)致一些誤差。為了降低估算誤差,最后使用Delphi專家分析法對(duì)估算結(jié)果進(jìn)行了調(diào)整。
在上述三個(gè)策略的指導(dǎo)下,以及合適工具的輔助下,使最后形成的計(jì)劃有效地指導(dǎo)了后期的開發(fā)活動(dòng)。項(xiàng)目開發(fā)出來的產(chǎn)品通過了專家的鑒定。項(xiàng)目完成后發(fā)現(xiàn)的問題是早期計(jì)劃的估算結(jié)論偏差還是較大,看來還是受到缺乏經(jīng)驗(yàn)數(shù)據(jù)或者經(jīng)驗(yàn)數(shù)據(jù)不夠精確的影響,所以在以后的工作中需要開展有效的度量的工作,積累覆蓋面廣且盡量精確的經(jīng)驗(yàn)數(shù)據(jù).