曹 萍, 張 劍, 陳福集
(1.福州大學 經(jīng)濟與管理學院,福建 福州 350116; 2.上海工程技術(shù)大學 航空學院,上海 201620)
?
軟件項目支付進度問題研究
曹 萍1, 張 劍2, 陳福集1
(1.福州大學 經(jīng)濟與管理學院,福建 福州 350116; 2.上海工程技術(shù)大學 航空學院,上海 201620)
軟件項目的復雜性和特點使得其支付進度問題較具特殊性。針對軟件質(zhì)量的差異性,對軟件項目支付進度問題進行研究。以承包商凈現(xiàn)值最大化為優(yōu)化目標,構(gòu)建了具有懲罰結(jié)構(gòu)的支付進度優(yōu)化模型,該模型反映了不同軟件質(zhì)量對承包商收益的影響;針對該問題的特點設(shè)計了啟發(fā)式求解算法;最后通過一個算例對模型進行了驗證。可為承包商在簽訂外包合同及外包實施中的策略提供決策依據(jù)。
軟件項目;支付進度安排;優(yōu)化模型;啟發(fā)式算法;軟件承包商
軟件外包項目實施過程中外包雙方均面對各種決策,收益最大化是決策的重要依據(jù)和目標。Kweku-Muata等認為外包合同是外包決策的重要組成部分[1]。外包合同中支付進度的安排直接影響到外包雙方的收益,因此支付進度問題(payment scheduling problems,PSP)成為承包商和客戶所共同關(guān)注的一個關(guān)鍵性決策問題[2]。支付進度研究如何合理安排項目的支付進度,包括支付次數(shù)、支付量及支付時間以使項目的收益最大化[3]。
在傳統(tǒng)工程項目領(lǐng)域,支付進度問題研究已取得了一些基本成果。如Dayanand和Padman研究了在項目時間和支付總數(shù)固定的情況下,以承包商的凈現(xiàn)金流量(Net Present Value,NPV)最大為目標分析了支付進度問題[4];后又從客戶的角度研究了支付進度問題,根據(jù)實際的支付規(guī)則構(gòu)建了支付進度的混合整數(shù)規(guī)劃模型,確定出使客戶NPV最大化的支付進度安排[5];Ulusoy和Cebelli從雙方聯(lián)合角度研究了平等的項目支付進度問題,指出承包商和客戶的理想解分別是在項目開始和結(jié)束時一次性付清[6]。何正文等研究了具有多種執(zhí)行模式的項目支付進度安排問題,認為業(yè)主和承包商對支付進度安排的偏好差異明顯[7]。這些研究均針對傳統(tǒng)工程項目領(lǐng)域,由于軟件項目的特殊性和相對復雜性,現(xiàn)有研究成果并不適用于軟件項目領(lǐng)域。而目前文獻中尚未見有關(guān)軟件項目領(lǐng)域的支付進度問題的研究。軟件項目與傳統(tǒng)的工程項目相比較為復雜,具有許多工程項目不具備的特性,如交付的軟件質(zhì)量的差異性等,具體支付規(guī)則亦不完全同于傳統(tǒng)工程項目。因此,軟件外包項目支付進度問題的研究,無論在理論和實踐上都具有重要意義。
在軟件項目外包的實踐中,為了約束承包商使其保持較高的表現(xiàn)水平,按照軟件質(zhì)量等級規(guī)定對承包商設(shè)置懲罰措施是一種經(jīng)常被客戶采用的做法[8]。Kweku-Muata和Ojelanki認為信息系統(tǒng)(IS)的質(zhì)量等級與承包商的表現(xiàn)水平有關(guān),可由承包商的努力程度決定[1]。本文對存在質(zhì)量差異情況下的軟件項目支付進度問題(Software Project Payment Scheduling Problem , SPPSP)進行研究。首先對問題進行了界定,然后從承包商的角度構(gòu)建該問題的基本數(shù)學模型;獎勵懲罰結(jié)構(gòu)對雙方收益的影響以及如何對該種結(jié)構(gòu)進行評價;針對該問題的特點設(shè)計相應的啟發(fā)式算法;最后,通過一個算例對研究成果進行說明。
軟件外包項目中客戶對承包商的付款通常為里程碑支付,即在里程碑開始或結(jié)束時刻進行支付。如可在以下里程碑處進行支付:項目執(zhí)行初期、系統(tǒng)分析與設(shè)計階段、系統(tǒng)的構(gòu)建與測試階段、系統(tǒng)驗收后等。
1.1 基本假設(shè)
假設(shè)1 軟件項目活動的工期和費用是確定的;
假設(shè)2 軟件項目的費用按一定比例在其開始和結(jié)束節(jié)點之間進行分配;
假設(shè)3 在項目交付時,按照事先約定的標準對軟件項目的質(zhì)量進行評估,確定其質(zhì)量等級,對于質(zhì)量等級存在懲罰結(jié)構(gòu);
假設(shè)4 客戶的收益與軟件質(zhì)量等級有關(guān),客戶為避免收益下降,預留一部分合同款用于項目評價結(jié)束后支付,通常根據(jù)軟件質(zhì)量等級進行扣除相應數(shù)額后支付;
假設(shè)5 軟件質(zhì)量等級由承包商的表現(xiàn)水平?jīng)Q定,不同的表現(xiàn)水平下承包商花費的費用和時間存在差異;
假設(shè)6 客戶在里程碑事件發(fā)生時對承包商進行支付,在每一個里程碑事件完成后支付一部分工程款。
1.2 符號定義
為將現(xiàn)金流與事件相聯(lián)系,可將軟件項目的實施過程用AOA(Activity-on-Arc)網(wǎng)絡(luò)圖來描述,假設(shè)一個軟件項目有N個活動,M個事件,F(xiàn)個里程碑,里程碑事件的集合描述為:mf={m1,…,mF},文中用到的符號定義如下:
NPVprovider為承包商現(xiàn)金流凈現(xiàn)值;α為現(xiàn)金折現(xiàn)率;ESm為事件m發(fā)生的最早開始時間;LSm為事件m發(fā)生的最晚開始時間;dij為項目活動(i,j)的持續(xù)時間;Ct為軟件項目在第t期的支出;Pk為第k次支付的支付量;Pq為若未達到質(zhì)量等級的罰款;Cm為完成事件m需要的費用;ymt為事件m在時期t發(fā)生的0-1變量;xm為事件m處發(fā)生支付;Q為質(zhì)量等級Q={q,q=1,2,…H};T*為事件發(fā)生時間的集合;T*={t,ymt=1;m=1,2,…,M};P*為支付量集合P*={pk;k=1,2,…,M};∏*為支付進度,∏*={T*,P*,Q*}。
合同總價款U分為兩部分,U=UA+UB,UA為支付款總額,UB為預留罰款部分,可設(shè)UB=ξU,通常在項目結(jié)束時依據(jù)評估結(jié)果進行支付。ξ稱作預留罰款比例系數(shù),由雙方簽訂合同時商定。假設(shè)t時期后的收益折現(xiàn)到項目開始時的收益為exp(-αt)≈(1+α)-t,承包商累積發(fā)生費用被支付的比例為β,k為支付變量,從承包商的角度建立SQ-PPSP優(yōu)化模型:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
目標函數(shù)式(1)為承包商現(xiàn)金流的凈現(xiàn)值最大化;約束條件式(2) 保證事件m在其時間窗[Em,Lm]內(nèi)發(fā)生;式(3)表示支付次數(shù)為K次,即在項目開始和里程碑事件處分別進行一次支付;式(4)為活動(v,w)的開始和結(jié)束事件的優(yōu)先關(guān)系約束。式(5)為支付量約束,在時期T內(nèi)支付總量不超過承包商累積發(fā)生費用的一個比例β;式(6)保證全部支付的總和對于項目合同中的支付款總額。
項目交付時專家組對軟件項目質(zhì)量會進行評價,假設(shè)在軟件項目開發(fā)中承包商的努力水平與軟件質(zhì)量成正比,不同的努力水平下承包商所需成本不同,軟件質(zhì)量不同,客戶的收益也不同。當客戶和承包商的偏好存在差異時,為激勵承包商提高表現(xiàn)水平,客戶常對承包商設(shè)置獎懲結(jié)構(gòu)。當存在獎懲結(jié)構(gòu)時,承包商的最終收益依賴于軟件項目的質(zhì)量等級。承包商的最終收益可表示為:
maxNPVprovider=NPVprovider+pqexp(-αt)yMtq=1,2,…,H
(8)
其中:pq表示與評價等級有關(guān)的付款,可表示為:pq=Uβ-γ(B1-Bq)U。
B1為客戶預期的收益,即質(zhì)量評價等級為最好時客戶的收益,在這種情況下,承包商的表現(xiàn)水平滿足預期要求,客戶按照預定的合同價格向承包商支付剩余的全部款項。一般而言,承包商的努力程度是私人信息,客戶無法對承包商的表現(xiàn)水平進行評價,只有對軟件產(chǎn)品的質(zhì)量進行評價從而決定對承包商的獎懲。項目完成時若評價級別低于預期結(jié)果,即q>1,則項目完成時客戶在向承包商支付時扣除罰款。罰款為客戶預期收益與實際收益之差的一個比例,即γ(B1-Bq),γ為懲罰系數(shù)。
PPSP問題已經(jīng)證明屬于NP-hard問題,而SQ-PPSP求解比PPSP更為復雜,它不僅要考慮質(zhì)量等級不同造成的成本、時間的不同,同時還要確定活動的開始時間。在文獻[8]的基礎(chǔ)上,結(jié)合SQ-PPSP的特點,開發(fā)了針對軟件項目進度支付的啟發(fā)式模擬退火算法。每個等級的項目支付進度優(yōu)化流程圖如圖1所示。
圖1 項目支付進度優(yōu)化流程圖
事件發(fā)生時間的選擇機理如下:首先在項目的事件序列中選擇ESm作為事件發(fā)生集合的初始值,之后從ESm≠LSm的隨機中地挑出一個事件,將該事件的發(fā)生時間在其時間窗內(nèi)隨機地變動一個時間單位,檢查該事件與其前后事件的優(yōu)先關(guān)系約束,如違反,則調(diào)整發(fā)生時間直至滿足優(yōu)先關(guān)系約束為止,所有事件的新發(fā)生時間構(gòu)成了一個新的事件發(fā)生時間集合。圖中的ε是一個較小的正數(shù)。圖1描述的是每一個等級下的項目支付進度優(yōu)化的流程圖,為求出所有等級中最優(yōu)的支付進度,可增加一個外循環(huán),將相同條件下所有不同等級的支付進度進行比較,找出其中最優(yōu)的支付進度。具體步驟如下:
步驟1 確定初始解T0,在不違反優(yōu)先關(guān)系約束的前提下,為每個事件在其時間窗內(nèi)隨機地安排一個實現(xiàn)時間,得到一個事件實現(xiàn)時間向量T,如果T中結(jié)束事件M的實現(xiàn)時間不晚于項目截止日期D1,則接受T為一個可行的初始事件實現(xiàn)時間向量T0,反之重復該步操作,直至得到一個可行的T0為止。計算P0和項目收益NPV0;
步驟2 初始溫度t=Temp0,終止溫度Tempf,冷卻速率μ(0<μ<1),搜索精度ξ,Markov鏈長度L,可令L=10*N(N為項目的活動數(shù));
步驟3 生成一個臨點T1,從除開始事件之外的其余事件中隨機地選擇一個事件,在其時間窗內(nèi)將該事件的實現(xiàn)時間隨機地變動一個單位,并確保網(wǎng)絡(luò)優(yōu)先關(guān)系約束能夠得到滿足。檢查結(jié)束事件的實現(xiàn)時間是否超過項目截止日期,如果沒有超過則得到當前T0的一個可行鄰點T1,反之,重復該算子操作直至獲得一個可行的T1為止。計算在T1下的NPV1;
步驟4 若ΔNPV=NPV1-NPV0>0,則該臨點成為當前解:T0←T1,NPV0←NPV1,否則生成一個[0,1]之間的一個隨機數(shù),若R≤eΔNPV/T,則接受臨點成為當前解:T0←T1,NPV0←NPV1;反之拒絕T1;
步驟5 更新溫度,Temp1←μTemp0,若滿足Temp1>Tempf,轉(zhuǎn)步驟3;反之終止搜索過程;
圖2 某軟件項目網(wǎng)絡(luò)圖
步驟6 輸出搜索到的結(jié)果T0和NPV0,搜索結(jié)束。
圖2是一個AOA軟件項目活動網(wǎng)絡(luò)圖。每條弧上的數(shù)字代表了活動的序號。里程碑事件為{3,5,10,12}。項目合同總價為U=68萬元,某軟件系統(tǒng)經(jīng)過規(guī)劃與概要設(shè)計,預計42周后投入運行,活動費用在其開始和結(jié)束事件之間的分配比例η為0.5,承包商的邊際利潤率為π=20%,β=115%,貼現(xiàn)率α=0.0026,客戶對承包商的支付共分為5次,預留罰款:UB=ξU,UA=U-U0-UB。后4次支付分別發(fā)生在里程碑事件處。軟件交付時要對軟件質(zhì)量進行評估,借此對若承包商的表現(xiàn)水平進行考核,假設(shè)評價結(jié)果分為三個等級,q={1,2,3}。分別代表由高到低的水平,質(zhì)量級別為1級時,表明承包商沒有逃避行為,客戶將剩余款UB全部付給承包商,否則根據(jù)承包商表現(xiàn)水平扣除一定罰款。承包商3種表現(xiàn)水平下客戶收益為Bq={110,105.8,102.5},各項活動的工期和費用如表1所示。
表1 不同質(zhì)量等級下軟件項目各項活動的工期和費用
4.1 計算結(jié)果
首先由表1計算出各事件發(fā)生的時間窗,SQ-PPSP是一個NP-hard問題,ε=0.001,利用上述算法求得該項目的支付進度∏*={T*,P*,Q*},預留款比例ξ和懲罰系數(shù)γ在不同取值時最優(yōu)支付進度如表2所示。
表2 預留款比例ξ和懲罰系數(shù)γ在不同取值時最優(yōu)支付進度
4.2 結(jié)果分析
從表2中可見預留款比例系數(shù)ξ的差異會影響承包商的收益。在相同的懲罰系數(shù)條件下,ξ的值越大,即預留獎懲款項UB越多,承包商的收益就越低。因此承包商在合同談判時,應盡量降低預留款比例系數(shù)。此外,懲罰系數(shù)γ會影響到承包商的表現(xiàn)水平,表中結(jié)果顯示無論ξ值如何,當γ≥0.04時,承包商的努力水平必須保持在使軟件質(zhì)量等級為1級的程度,才能獲取較高的收益。反之承包商的努力水平不能保持在1級的水平時,雖然較低的努力水平能夠使承包商較低成本,縮短完工時間,但因為懲罰結(jié)構(gòu)的存在,卻并不能提高承包商的收益水平。當γ<0.04時,承包商有較大的選擇余地,努力水平越低,越能節(jié)省費用和時間,帶來額外的收益。因此,較低的懲罰系數(shù)γ對承包商是有益的。
本文構(gòu)建了基于質(zhì)量等級的軟件項目支付進度優(yōu)化模型。該模型考慮到了軟件項目一般在里程碑事件的支付特點,及針對客戶經(jīng)常使用扣留部分項目款用于軟件交付后對承包商表現(xiàn)水平不足進行相應懲罰,以達到約束承包商的做法,構(gòu)建了具有懲罰結(jié)構(gòu)的承包商收益最大化模型。將工程項目領(lǐng)域使用的網(wǎng)絡(luò)計劃圖用于項目進度支付中,用凈現(xiàn)金流量描述承包商的收益,能夠更準確地反映承包商的真實收益。同時,給出了模型的求解算法,最后利用一個數(shù)值算例對模型和求解結(jié)果進行了說明。本文的研究表明,承包商的凈現(xiàn)值收益與業(yè)主的支付行為、預留款比例及懲罰系數(shù)密切相關(guān),這對承包商在合同簽訂時的談判策略具有重要的借鑒意義。
[1] Kweku-Muata O, Ojelanki K N. Managing risks in information systems outsourcing: an approach to analyzing outsourcing risks and structuring incentive contracts[J]. European Journal of Operational Research, 2006, 174(1): 245-264.
[2] Christenson C. Construction of present value tables for use in evaluation of capital investment opportunities[J]. The Accounting Review, 1995, 10(4): 666- 673.
[3] Tavares L V. A review of the contribution of operational research to project management[J]. European Journal of Operational Research, 2002,136(1): 1-18.
[4] Dayanand N, Padman R. On modeling progress payments in project networks[J]. Journal of the Operational Research Society, 1997,48(9): 906-918.
[5] Dayanand N, Padman R. A two stage search heuristic for scheduling payments in projects[J]. Annals of Operations Research, 2001, 102: 197-220.
[6] Ulusoy U, Cebelli S. An equitable approach to the payment scheduling problem in project management[J]. European Journal of Operational Research, 2000, 127(2): 262-278.
[7] 何正文,徐渝.多模式項目支付進度安排的優(yōu)化模型及求解[J].系統(tǒng)工程學報,2007,22(5):474- 479.
[8] Bubshait A, Bubshait A. Incentive/disincentive contracts and its effects on industrial projects[J]. International Journal of Project Management, 2003, 21(1): 63-70.
Research on Payment Scheduling Problems of Software Project
CAO Ping1, ZHANG Jian2, CHEN Fu-ji1
(1.SchoolofEconomicandManagement,FuzhouUniversity,Fuzhou350116,China; 2.SchoolofAirTransportation,ShanghaiUniversityofEngineeringScience,Shanghai201620,China)
The complexity and characteristic of software project makes the Payment Schedule Problem(PSP)has its own unique characteristics. The PSP of software project is studied in this paper according to difference level of software quality. A payment schedule optimization model with penalty structure is constructed to maximize the Net Present Value(NPV)of the contractor, which reflects the impact of different software quality on contractor's gains. And then a heuristic algorithm is developed to solve the PSP. Finally, the validity of the model and algorithm is verified by an instance. It can provide a decision-making basis for contractor in process of signing outsourcing contract and implementing project.
software project; payment scheduling; optimal model; Heuristic algorithm; contractor
2011-10-17
國家杰出青年基金資助項目(70925004);國家社科基金資助項目(10CGL005)
曹萍(1971-),女,重慶江津人,管理學博士,副教授,研究方向:決策技術(shù),軟件項目管理。
C935;F224.33
A
1007-3221(2015)04- 0282- 06