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