曹 萍, 張 劍, 熊 焰
(1.上海應用技術大學 經(jīng)濟與管理學院,上海 201418; 2.上海工程技術大學 航空運輸學院,上海 201620)
項目支付進度問題(Project Payment Scheduling Problems, PPSP)是現(xiàn)金流管理的一個重要內(nèi)容,以資金的凈現(xiàn)值最大化為目標,研究如何合理的安排支付的時間和次數(shù)等,是項目管理的熱點研究領域[1]。由于項目的支付進度會對雙方的收益產(chǎn)生重要影響,因此是承包商和客戶共同關注的問題[2]。Russell首次將凈現(xiàn)金流量(Net Present Value,NPV)引入項目進度領域,將項目支付進度問題描述為基于活動弧(Activity on Arc,AOA)的非線性規(guī)劃問題;Naber等研究了不同資源分配模式下的項目進度支付問題[3];Dayanand和Padman分別從承包商和客戶角度,以NPV為目標構建了各自的優(yōu)化模型,設計了基于AOA兩階段搜索的啟發(fā)式算法和混合整數(shù)規(guī)劃算法分別對模型進行了求解[4,5];Ulusoy和Cebelli則從雙方聯(lián)合的角度研究了項目支付進度問題[6],提出用double-loop遺傳算法對模型進行求解;Antonio等研究了資源約束和多種執(zhí)行模式的項目支付進度問題,并設計了MM-HGA算法對模型進行了求解[7];Wolfram和Daniel研究了不確定環(huán)境下的項目支付進度問題[8]。這些研究均未考慮獎懲機制的影響。
在項目實踐中,為了使項目在規(guī)定的時間內(nèi)盡快完工,客戶通常以項目到期時間為基準設置獎懲機制以防止承包商拖延時間,從而提高項目的收益[9],而承包商則在客戶給定的獎懲強度下安排項目進度。具有獎懲結構的項目進度問題一度成為研究者們關注的熱點,并出現(xiàn)了許多研究成果。如Jin等針對工期設計了激勵合同,用于對工期的激勵[10];Abdulaziz等設計了對成本進行激勵的激勵合同[11];He和Xu研究了在項目截止日期設置獎懲機制的多模式項目進度支付問題[12];Moslem以時間作為激勵因子,構建了含有時間獎懲結構的項目支付進度模型[13],并設計了求解模型的遺傳算法。Hosseinian等將成本與工期同時作為激勵因子構建了承包商效益優(yōu)化模型[14];等。可見,現(xiàn)有關于獎懲因素的基本上與時間和成本有關,缺乏針對其它激勵因素的研究。但項目管理中并非只有這兩個目標,Berends就認為環(huán)境保護、質(zhì)量等也是重要的激勵因素[15]。陳勇強等認為工程項目中質(zhì)量目標隨著時間推移而逐漸增強[16]。因此,以質(zhì)量為激勵因子設置合理的獎懲結構,以及在此條件下如何合理的安排項目支付進度使各方收益最大化,是項目管理領域一個具有重要的理論意義和現(xiàn)實價值的研究問題。
近年來,隨著信息技術的快速發(fā)展和企業(yè)信息化需求的日益增加,軟件項目的數(shù)量和規(guī)模均快速增長。與傳統(tǒng)工程項目相比,軟件項目通常具有開發(fā)時間長、復雜程度和風險程度高等特點,并且客戶對質(zhì)量更為敏感,所以軟件項目中常以質(zhì)量作為衡量項目成敗的重要指標。此外,軟件項目開發(fā)中,客戶的需求經(jīng)常會發(fā)生變化,這種變化會干擾接包方的工作,導致延期或增加額外的成本,降低項目質(zhì)量。因此,軟件項目的質(zhì)量問題更為突出,合同的設計是緩解該問題的有效手段[17]。本文以軟件項目為例,研究一定資金約束下具有質(zhì)量激勵因子的項目支付進度問題,分別從客戶和承包商的不同視角構建具有獎懲結構的收益優(yōu)化模型,尋找平衡客戶—承包商收益的相對“公平”的支付進度,并考查了風險態(tài)度對收益的影響。收益滯后性的影響。針對模型的特點,本文采用混合的啟發(fā)式算法對模型進行求解。
軟件外包中常見的合同類型有固價合同和時間材料合同。固價合同是承包商按照要求完成項目后,客戶以確定的價格進行支付,通常適用于需求變化不大的情況。這種合同缺乏靈活性,需要有明確的質(zhì)量評價標準和績效指標依據(jù),對客戶較為有利[18]。時間材料合同按照承包商投入的成本進行支付,要求客戶全程觀測和監(jiān)控項目過程,掌握承包商的投入和努力程度,適用于客戶需求變化大的外包項目。這類合同具有較好的靈活性,對承包商更為有利。Dey等認為軟件外包項目的合同可以分為兩個階段:設計階段和開發(fā)階段[19],并在兩個階段分別采用固定價格合同和基于績效的合同,來達到系統(tǒng)的最優(yōu)收益水平。張宗明等將IT 服務外包合同分為三個階段:合同簽訂階段、實施階段和支付階段,認為第一個階段是最重要的階段,客戶企業(yè)根據(jù)需求和目標提供合同,承包商根據(jù)合同計算期望收益,選擇接受或拒絕合同[20]。因此,當客戶具有較大的議價權時,客戶為減少風險,會傾向于選擇固價合同;如果同時客戶需求較明確,不會存在大的范圍變更,即需求波動不大的情況,此時承包商會接受采用固價合同。
軟件外包項目的高風險性導致其結果通常具有不確定性,如不符合要求、超出預算、項目滯后以及接包方的服務不能達到要求等。任龍等根據(jù)風險的來源,認為外包項目中最主要的風險是道德風險與逆向選擇問題[21],而承包商努力程度是最常見的道德風險[22]。為減輕這些風險,合同的設計和優(yōu)化是廣泛應用的工具和手段[20]。外包中客戶在合同設計上掌握著更大的主動權,為規(guī)范承包商行為,通常會在合同中采取激勵或懲罰機制。其中合同中付款條款的設計是最為有利的工具,在不違背激勵相容的原則下設計合同中的付款條款,從而起到既能有效控制風險又能約束承包商行為的目的[23]。
本文考查固價合同情境下客戶為激勵承包商交付高質(zhì)量產(chǎn)品的支付進度問題,具體思路是:將合同總價分為兩部分,后一部分為“留置”部分,作為一種“激勵”基金,這部分錢款在項目交付時通過對項目質(zhì)量的評價等級決定其去向。即通過“留置”部分對承包商的行為進行約束。以上分析和已有的研究成果,提出研究的假設條件并對符號進行定義。
1)軟件質(zhì)量與承包商的表現(xiàn)水平正相關[24];即軟件質(zhì)量等級由承包商的表現(xiàn)水平?jīng)Q定;
2)軟件項目合同采用固定總價合同方式,即項目的應付款是固定的;
3)總價、支付的數(shù)量、費用結算的比例由雙方協(xié)商確定;總價由固定款項及“留置”款項兩部分構成,即U=UA+UB,UA是固定款項,與軟件質(zhì)量無關,UB的支付數(shù)量與交付質(zhì)量有關。
4)合同款中預留一定比例的資金在項目結束后依據(jù)軟件質(zhì)量的等級進行支付,留置款的比例由雙方協(xié)商確定;
5)軟件項目發(fā)生的費用按一定比例在其開始和結束節(jié)點之間進行分配;承包商的費用在每個活動執(zhí)行的期間發(fā)生,但在活動完成后支付;
6)在項目結束時, 軟件項目的質(zhì)量按照事先約定的標準進行評估。根據(jù)評估結果,確定留置款項的分配;
7)客戶的收益與軟件質(zhì)量水平有關,客戶的現(xiàn)金流在項目結束交付使用后發(fā)生;
8)承包商在不同的表現(xiàn)水平下花費的費用和時間不同;
9)客戶在里程碑事件發(fā)生時對承包商進行支付, 在每一個里程碑事件完成后支付一部分工程款。
假設該軟件項目由N個活動和E個事件組成,其中活動集N={1,2,…,n},事件集E={1,2,…,e}。本文采用基于事件的方法研究該項目, 即將項目用一個具有現(xiàn)金流入和流出的Activity-on-Arc(AoA)網(wǎng)絡來描述。該網(wǎng)絡圖是一個由節(jié)點和箭線組成的有向圖,圖中每一個節(jié)點代表一個事件,每一條箭線代表一個活動。K代表支付點集合,K= {1,2,…,k} 。pk表示第k次支付的數(shù)量。設該項目的合同總價款為U,項目預期收益為B,表1是文中用到的符號定義。
表1 符號及其定義
本問題是求解使承包商和客戶收益最大的最優(yōu)支付進度安排,由4個向量組成:最優(yōu)支付事件集合X*={e:xke=1,k=1,2,…,K}、事件發(fā)生時間集合T*={t:yet=1,e=1,2,…,E}、表現(xiàn)水平q和支付量集合P*={pk,k=1,2,…,K}。后兩個向量并非獨立向量,受到前兩個向量的影響。
根據(jù)以上對問題的描述,分兩步構建模型。首先構建沒有懲罰結構下承包商和客戶的凈現(xiàn)金流量最大化的模型,在此基礎上,構建具有質(zhì)量懲罰結構的雙方現(xiàn)金流最大化模型。
(1)
(10)
目標函數(shù)式(1)表示對承包商的收益最大化,本模型中承包商收益用NPV表示;約束表達式(2)是對事件發(fā)生時間的約束,即事件e一定在其時間窗[ESe,LSe]內(nèi)發(fā)生;約束式(3)將支付與事件聯(lián)系起來,即支付在事件處發(fā)生;約束式(4)表示在一個事件處安排的支付次數(shù)最多為一次;式(5)為活動(v,w)的開始和結束事件的優(yōu)先關系約束。 式(6)是支付量約束, 在時期T內(nèi)支付總量不超過承包商累積發(fā)生費用的一個比例β;式(7)表示所有支付的總和對于項目合同中的支付總額。約束(8)和(9)表示0-1變量;(10)表示支付量是一個連續(xù)變量。
客戶的收益為使用軟件項目帶來的收益減去支付給承包商的費用。軟件項目中客戶的收益并非一次性獲得,而是在軟件系統(tǒng)使用期內(nèi)逐步獲得??蛻舻讦悠诘氖找婧唾M用根據(jù)資金的時間價值折算到參考點(t=0),μ為年貼現(xiàn)率。從客戶的角度建立無懲罰結構的優(yōu)化模型:
(11)
(12)
(13)
(14)
(13)是具有懲罰結構的承包商收益的目標函數(shù),(14)是定義一個0-1變量Zq,當質(zhì)量q=1時,其約束條件與目標函數(shù)(1)的約束條件相同。
在此情況下,由于客戶是風險中性的,則其實際收益等于其期望收益,期望收益為:
(15)
(16)
(15)是具有懲罰結構時客戶的目標函數(shù)。由于承包商的努力程度是私人信息, 客戶無法對承包商的表現(xiàn)水平進行評價, 只有對軟件產(chǎn)品的質(zhì)量進行評價從而決定對承包商的獎懲。項目完成時若質(zhì)量等級q>1,則在項目結束后客戶向承包商支付時扣除部分款作為罰款。扣除部分為eγ(B1-Bq)。
支付進度問題已經(jīng)證明屬于NP-hard問題,而具有懲罰結構的進度支付問題的求解更為復雜,在本文構建的組合模型中,確定最優(yōu)支付進度需要確定三個變量序列:最優(yōu)支付事件發(fā)生時間集合T*、最優(yōu)支付量集合P*和質(zhì)量等級集合Q*。啟發(fā)式算法可成功的用于解決此類問題[12]。近年來,混合進化算法由于解決了大量的現(xiàn)實問題研發(fā)了極大的關注和興趣。其中遺傳算法(Genetic Algorithm, GA)因為具有優(yōu)良的全局搜索能力被認為是解決該類問題最有效的算法。遺傳算法是一種建立在一系列操作(選擇、交叉、變異和改進)上的隨機搜索方法和優(yōu)化技術,其初始種群是隨機產(chǎn)生的,并且其搜索方向采用按概率隨機選擇機制,因此遺傳算法具有良好的全局搜索能力。禁忌搜索(Tabu Search, TS)是一個采用局部搜索方法進行數(shù)學優(yōu)化的啟發(fā)式算法,隨機生成一個單一的解決方案,然后跳到這個解鄰近的解,希望找到一個更好的解決方案。為提高局部搜索性能的技術,禁忌搜索算法采用記憶結構對訪問過的解進行跟蹤記錄。如果一個解在一個特定的較短的時間內(nèi)被訪問過,那么該解將被標注成“禁忌”,不會被重復。因為記憶結構的原因,禁忌搜索避免了被困在局部最優(yōu)的境況。本文設計了遺傳算法和禁忌搜索算法的混合算法(GATS)對構建的模型求解,該混合算法采用遺傳算法的基本結構,在父代個體交叉和變異時使用禁忌搜索的規(guī)則以增加種群的多樣性,加快收斂速度。GATS算法的流程圖如圖1所示。
圖1 GATS算法流圖
算法中初始種群是隨機產(chǎn)生的,采用輪盤法在配對庫中選擇一對個體作為父代。為降低近親繁殖帶來的種群多樣性丟失和快速收斂的風險,采用禁忌表記錄交配歷史和家族號以區(qū)別染色體。當選擇一對個體作為父代進行繁殖時,先檢查交配的有效性。如果這對個體的家族號相同或者在禁忌表中存在,則生成一個鄰解作為父代個體去產(chǎn)生后代。并將父代的兩個個體插入禁忌表中,當禁忌列表超過預設限制時,將最前面的兩個要素從禁忌表中移除,更新禁忌表。
某企業(yè)因為信息化的需求要建設一個軟件項目A,為節(jié)約成本和提高開發(fā)效率,企業(yè)選擇將軟件項目外包給專業(yè)軟件公司去完成。假設該項目合同總價為U=78萬元, 該軟件項目的預計完成時間是30周。圖1是一個采用AOA表示的某軟件項目的活動網(wǎng)絡圖,每條弧上的數(shù)字代表了活動的序號。里程碑事件為{3,6,13,15}。活動費用在開始和結束時間之間按一定比例分配,分配比例η=0.6。項目雙方約定價款分5次支付。為激勵承包商保證項目質(zhì)量以及彌補客戶損失,客戶在總價款中扣除一部分作為懲罰金,預留比例系數(shù)為ξ,則預留金額為UB=ξU。軟件交付后根據(jù)對軟件質(zhì)量的評估結果來決定該部分金額的支付情況。軟件質(zhì)量從高到低分成三個等級q=1,2,3,對應承包商的3種表現(xiàn)水平,并且在三種質(zhì)量等級下客戶收益為Bq={120,100,90}。質(zhì)量等級越低,扣款越多。1級為最高級,滿足客戶預期,這種情況下客戶將預留款項UB全部付給承包商??蛻魧Τ邪痰闹Ц对陧椖块_始時及里程碑事件處進行支付。本例中,承包商的邊際利潤率為π=18%,β=105%,貼現(xiàn)率α=0.0026,各項活動的工期和費用如表2所示。
圖2 某軟件項目A網(wǎng)絡圖
表2 不同質(zhì)量等級下軟件項目各項活動的工期和費用
表3 軟件項目A收益及支出的現(xiàn)金流量表
假設該軟件系統(tǒng)預期使用5年,預計該系統(tǒng)運行后各年收益及支出(運行及維護費用)的現(xiàn)金流量如表3所示。
首先由表2計算出各事件發(fā)生的時間窗, 取ε=0.001, 預留款比例ξ=0.05, 利用上述算法求得在不同質(zhì)量等級,不同質(zhì)量等級下項目的進度和雙方收益如表4所示。
表4 不同質(zhì)量等級下最優(yōu)支付進度及雙方收益
表4顯示了不同質(zhì)量等級下的支付進度及雙方的收益。從表4可看出, 在基本模型中, 質(zhì)量等級較低時承包商花費的成本較低從而可獲得較高的收益。這種情況下,當承包商交付的質(zhì)量等級為1級時,客戶獲得最大收益為46.27,此時承包商獲得的收益卻最低,為12.86;而當承包商選擇最低級(3級)的質(zhì)量水平時,可獲得最大的收益15.62,因此,承包商傾向于選擇較差的能力程度以獲取最大的收益,而此時客戶的收益相對處于較低的狀態(tài),為30.51。當引入懲罰機制后, 因為懲罰系數(shù)γ的存在, 使得承包商不會貿(mào)然選擇較差的表現(xiàn)水平。 只有當γ較低時, 承包商才會選擇較差的表現(xiàn)水平, 且承包商的收益相對較高;反之,客戶收益較低。
由表中數(shù)據(jù)計算出, 當γ≥0.07時, 承包商努力水平必須保持在使軟件質(zhì)量等級為1級的程度,才能獲取較高的收益,此時,客戶也獲得最高收益40.91,即承包商與客戶的偏好水平一致。反之,如果承包商降低努力程度, 雖然較低的努力水平能夠使承包商較低成本, 縮短完工時間, 但因為懲罰結構的存在, 卻并不能提高承包商的收益水平。當0.053≤γ≤0.07, 選擇提供2級質(zhì)量水平不會受到懲罰,會為承包商帶來最大的收益。因此,承包商會傾向于選擇2級質(zhì)量水平。當γ≤0.053時, 懲罰機制不會起作用,承包商會選擇質(zhì)量水平3, 從而獲得較高的收益,而此時客戶的收益最低。因此, 較低的懲罰系數(shù)γ對承包商有益但對客戶不利,無法起到激勵承包商提高努力程度的作用。
此外,承包商最終實際收益還受到外部不確定性與風險規(guī)避態(tài)度有關,較高的外部不確定性和風險規(guī)避會增加承包商的風險成本,此時,承包商為提高收益也會偏向于選擇較低的懲罰系數(shù)。
本文在傳統(tǒng)工程項目的支付進度模型的基礎上, 建立了軟件外包項目支付進度優(yōu)化模型。 該模型反映了軟件項目周期長、收益滯后性和分期獲得性的特點, 以質(zhì)量為激勵因子, 構建了具有懲罰結構的承包商和客戶的收益模型。 該模型用凈現(xiàn)金流量作為雙方的目標函數(shù), 能夠更準確地反映雙方的真實收益。 并根據(jù)模型的特點設計了模型的求解算法, 最后利用一個數(shù)值算例對模型和求解結果進行了說明。本文的研究表明, 項目雙方的收益與客戶的支付行為、留置款比例及懲罰系數(shù)密切相關, 這對外包雙方在合同簽訂時的談判策略具有重要的借鑒意義。
本文以質(zhì)量為激勵因子研究了質(zhì)量等級對項目支付進度的影響,并且以軟件項目為例分別從承包商和客戶的角度構建了項目支付進度模型。不僅是對項目支付進度問題的擴充和深入,也為軟件項目支付進度問題的進一步研究提供了思路。但本文的研究還存在一些不足:首先,在構建的模型中未考慮通貨膨脹的作用,但在軟件項目實踐中,由于許多項目持續(xù)的時間都較長,所以通貨膨脹因素將對收益造成較大的影響;此外,為了可操作性在示例中將質(zhì)量等級的分為三級,這種劃分可能略顯粗略。此外,本文考慮的是固價合同的支付情況,對于范圍變更較大的情況,承包商往往不愿意接受固價合同方式,而傾向于選擇時間材料合同,或者需要協(xié)商需求變動的價格支付。這些問題也是未來需要進一步研究的方向。