邵俊 倪楓 劉姜 吳霞 尹思淼
(上海理工大學(xué)管理學(xué)院,上海 200093)
近年來,我國軟件產(chǎn)業(yè)快速發(fā)展,行業(yè)產(chǎn)值逐年遞增[1]。軟件項目具有前期需求難、人力資源管理難、系統(tǒng)建設(shè)規(guī)劃難、項目組織協(xié)調(diào)難等特點[2],在當(dāng)前主流開發(fā)技術(shù)發(fā)生根本性變化之前,很難利用技術(shù)手段突破性提高軟件開發(fā)效率。因此,需要從項目管理的角度,通過更加科學(xué)有效的方法提升軟件項目開發(fā)效率。進度管理是整個軟件開發(fā)項目管理的重中之重,需要本著嚴(yán)謹(jǐn)認(rèn)真的態(tài)度進行深入分析。
軟件開發(fā)項目進度管理是使用體系化的管理方法對軟件開發(fā)項目中所包含的預(yù)期任務(wù)及可用資源進行有效統(tǒng)籌、合理計劃,從而實現(xiàn)某一明確的預(yù)設(shè)目標(biāo)的過程[3]。
通過分析相關(guān)文獻[4-9],本文將軟件開發(fā)項目進度管理歸納總結(jié)為11個不同的階段,詳細劃分如下:
(1)項目需求管理。為有效開展軟件開發(fā)項目,需了解當(dāng)前軟件開發(fā)主體公司的企業(yè)架構(gòu)、發(fā)展愿景、合理需求、人員能力、開發(fā)背景。
(2)進度風(fēng)險分析。當(dāng)軟件開發(fā)項目規(guī)模較小時,其所受外界干擾相對較少,甚至可以直接忽略。當(dāng)軟件開發(fā)項目規(guī)模較大時,由于項目開發(fā)所受外界干擾明顯,需要慎重考慮進度風(fēng)險影響因素。
(3)進度風(fēng)險評估。對當(dāng)前項目中的風(fēng)險因素進行評估,分析和確認(rèn)關(guān)鍵進度風(fēng)險因素,將影響項目進度的風(fēng)險因素信息提供給公司和項目的管理層,使軟件開發(fā)項目管理人員將有限的時間和資源集中于優(yōu)先度較高的進度風(fēng)險因素,為制訂合理的進度管理計劃奠定基礎(chǔ)。
(4)整體進度規(guī)劃。在深入了解軟件開發(fā)項目的整體背景后,為軟件開發(fā)項目制訂綱領(lǐng)性計劃,提出軟件開發(fā)項目主要步驟,設(shè)置軟件開發(fā)項目各階段主要完成目標(biāo),制定合理的指標(biāo)完成評價體系,選擇合適的軟件開發(fā)項目計劃監(jiān)測方式,為細化軟件開發(fā)項目活動做準(zhǔn)備。
(5)定義項目活動。根據(jù)軟件開發(fā)項目綱領(lǐng)性文件,結(jié)合軟件使用者實際需求,以項目各階段主要完成目標(biāo)為導(dǎo)向,對軟件開發(fā)項目的各主要步驟進行逐層分解、逐步分析,使其成為一個個有關(guān)聯(lián)性的、易于管理的基礎(chǔ)項目工作的過程。
(6)排列活動順序。活動是整個軟件開發(fā)項目中的基本工作事項,其相互之間既存在一定的關(guān)聯(lián)性,又可以彼此間獨立進行。以軟件使用者需求為最終目標(biāo),通過活動間存在的邏輯、制約關(guān)系以及當(dāng)前可利用資源的情況,合理設(shè)計各活動間的先后順序。當(dāng)前,識別項目活動順序的方法主要有增加邏輯標(biāo)志的甘特圖、單代號網(wǎng)絡(luò)圖、雙代號網(wǎng)絡(luò)圖。
(7)估算活動時間。在軟件開發(fā)項目可利用資源有限的背景下,根據(jù)實際情況,針對已經(jīng)明確的活動事項有效評估所需的人/天工作量,為制訂合理的進度計劃提供基本的數(shù)據(jù)。常用的活動時間估算方法有類比法、歷史數(shù)據(jù)參考法、決策者主觀臆斷法、項目實施專家評估法等。
(8)制訂進度計劃。利用上一階段完成的活動時間評估結(jié)果數(shù)據(jù),結(jié)合項目實際人員物資準(zhǔn)備情況,制訂符合本項目業(yè)務(wù)實施背景的進度管理計劃。這是有效控制項目進度的關(guān)鍵依據(jù),是進度風(fēng)險監(jiān)控的唯一參照。常用的進度管理方法有甘特圖法、關(guān)鍵路徑法、關(guān)鍵鏈法等。
(9)項目進度控制。以編制完成的項目進度計劃為依據(jù),協(xié)調(diào)項目人員、費用、物資,在各種不可控影響因素的干擾下,通過采取針對性的措施使項目進度符合預(yù)期目標(biāo)。項目進度控制是貫穿項目全生命周期的動態(tài)管理。
(10)進度風(fēng)險監(jiān)控。軟件開發(fā)項目進度風(fēng)險監(jiān)控具有兩層含義:一是軟件項目風(fēng)險監(jiān)督;二是軟件項目進度風(fēng)險控制。軟件項目進度風(fēng)險監(jiān)控通??梢砸暈楦櫘?dāng)前已識別的進度風(fēng)險影響因素,識別新出現(xiàn)的進度風(fēng)險影響因素,根據(jù)軟件開發(fā)項目當(dāng)前執(zhí)行情況變更進度管理計劃,確保進度風(fēng)險應(yīng)對計劃的正常實施,評估進度風(fēng)險應(yīng)對的效果。
(11)執(zhí)行應(yīng)對措施。當(dāng)進度風(fēng)險出現(xiàn)異常情況時,需要及時執(zhí)行進度風(fēng)險應(yīng)對計劃,以保證整體項目進度管理計劃按時完成。
軟件項目進度管理體系如圖1所示。
根據(jù)圖1可知,在軟件項目進度管理體系的所有階段中,進度風(fēng)險分析和進度風(fēng)險評估是關(guān)注的焦點,是整個軟件進度管理體系的基礎(chǔ),后續(xù)的所有階段均依賴于對此焦點的有效分析。因此,需要借助一種有效的風(fēng)險認(rèn)知方法明確當(dāng)前項目的風(fēng)險因素及其影響程度,本文推薦使用熵權(quán)法。熵權(quán)法是一種客觀賦權(quán)計算法,可以根據(jù)多個指標(biāo)進行量化綜合評價,首先利用信息熵計算出每個指標(biāo)各自的熵權(quán),然后通過各自熵權(quán)對自身指標(biāo)進行修改處理,具有客觀性和適應(yīng)性[10]。
在軟件項目管理領(lǐng)域,由于軟件開發(fā)自身的特性,很多指標(biāo)無法精確測量和計算,只能主觀賦權(quán)。故結(jié)合一定的客觀賦權(quán)法,會使計算結(jié)果更加符合實際情況。目前常用的客觀賦權(quán)法中,最常見且影響廣泛的是熵權(quán)法[12]。
圖1 軟件項目進度管理體系
熵權(quán)法計算步驟如下:
(1)根據(jù)軟件開發(fā)模式和當(dāng)前軟件項目具體情況,構(gòu)建決策矩陣A,設(shè)當(dāng)前該軟件開發(fā)有n個評價對象、k個評價指標(biāo)。計算評價矩陣,詳見式(1)
(1)
(2)采用離差標(biāo)準(zhǔn)化法對多屬性評價矩陣A中的各項數(shù)據(jù)xij進行標(biāo)準(zhǔn)化處理,xij表示第i個評價對象第j個評價指標(biāo)的值(i=1,2,…,n;j=1,2,…,k)。計算公式詳見式(2)
(2)
(3)根據(jù)項目實際情況,計算在第j屬性下第i次數(shù)據(jù)的比重Pij,計算公式詳見式(3)
(3)
(4)根據(jù)實際項目情況,計算第j屬性分量的熵值ej,計算公式詳見式(4)
(4)
(5)根據(jù)實際項目情況,計算第j屬性分量的差異系數(shù)gj,計算公式詳見式(5)
gj=1-ej
(5)
(6)根據(jù)實際項目情況,計算第j屬性分量的權(quán)重系數(shù)wj,計算公式詳見式(6)
(6)
使用熵權(quán)法有助于明確當(dāng)前該軟件開發(fā)項目主要影響因素的具體影響權(quán)重,有針對性地計算受各影響因素下的任務(wù)時間。在設(shè)計項目管理進度計劃初始階段,通過有效計算提前設(shè)置冗余時間,無須盲目調(diào)整進度管理計劃,減少該影響因素對整體計劃的影響。
本文以L公司TPM軟件開發(fā)項目為例進行進度風(fēng)險分析。L公司是一家快消品行業(yè)的龍頭企業(yè),軟件開發(fā)部門成立近20年,有大量可供參考的歷史數(shù)據(jù)。通過對比大量數(shù)據(jù)后發(fā)現(xiàn),該部門可能影響進度的因素有6種:成本、管理、人員技能、需求變更、社會、技術(shù)。根據(jù)熵權(quán)法的計算邏輯,收集相應(yīng)的評價對象和有關(guān)評價對象的評價指標(biāo),結(jié)合TPM軟件開發(fā)項目的實際情況,選擇該軟件開發(fā)規(guī)模預(yù)期為100天的迭代計劃及其不同年份受不同進度影響因素干擾下的實際開發(fā)天數(shù)作為比較參考,參考數(shù)據(jù)來源于L公司歷年來該軟件迭代開發(fā)歷史數(shù)據(jù),見表1。
表1 歷年數(shù)據(jù)分析 (單位:天)
表1數(shù)據(jù)說明:①成本。表示在優(yōu)先考慮整體成本因素的情況下,原計劃周期為100天的項目當(dāng)前可以將其周期縮短至多久。②管理。表示在優(yōu)先考慮管理因素的情況下,原計劃周期為100天的項目當(dāng)前可以將其周期縮短至多久。③人員技能。表示在優(yōu)先考慮項目因素人員技能的情況下,原計劃周期為100天的項目當(dāng)前可以將其周期縮短至多久。④需求變更。表示在優(yōu)先考慮成本因素需求的情況下,原計劃周期為100天的項目當(dāng)前可以將其周期縮短至多久。⑤社會。表示在優(yōu)先考慮社會因素的情況下,原計劃周期為100天的項目當(dāng)前可以將其周期縮短至多久。⑥技術(shù)。表示在優(yōu)先考慮技術(shù)因素的情況下,原計劃周期為100天的項目當(dāng)前可以將其周期縮短至多久。
(1)根據(jù)當(dāng)前收集的實際數(shù)據(jù),構(gòu)建有效的評價矩陣A
(2)進行標(biāo)準(zhǔn)化處理,數(shù)據(jù)處理結(jié)果詳見表2。
表2 數(shù)據(jù)處理結(jié)果
(3)計算熵值,結(jié)果見表3。
表3 熵值計算結(jié)果
(4)計算熵權(quán),結(jié)果見表4。
表4 熵權(quán)計算結(jié)果
通過以上計算結(jié)果可知,對于L公司的軟件開發(fā)項目而言,人員技能因素帶來的波動遠遠高于其他因素帶來的波動。在制訂進度管理計劃時,需要更多地關(guān)注人員技能因素,對其可能產(chǎn)生的影響提前做好準(zhǔn)備。
本文通過對軟件開發(fā)項目整體化的有效分析,系統(tǒng)總結(jié)了軟件開發(fā)項目進度管理的全流程、各階段,有效構(gòu)建了軟件開發(fā)進度管理模型,同時結(jié)合熵權(quán)法針對進度管理風(fēng)險進行量化分析,不僅解決了軟件開發(fā)進度管理中流程不明、管理混亂的問題,而且大大提高了軟件開發(fā)項目進度管理量化指標(biāo)的合理性,可為實際生產(chǎn)經(jīng)營中的軟件開發(fā)項目進度管理提供參考。