軟件開發工作量及費用量化評估方法在金融行業的應用

面臨的問題

  隨着國內金融行業市場化進程持續加快以及互聯網金融的興起,信息技術尤其是軟件技術的應用對於金融科技創新至關重要。各大金融機構在持續加大科技創新力度的同時,如何科學、高效地管控應用開發的投入並充分利用現有資源,進一步提升交付質量和IT治理水平變得尤爲關鍵。

  當前金融行業在軟件開發及管理方面面臨的主要問題包括:

  ●行政預算管理主要基於專家經驗,缺乏系統、科學的方法,如何在保證信息系統建設有效投入的同時避免浪費,成爲日益突出的問題;

  ●費用測算過程缺乏依據,導致相關各方在產生分歧時難以達成共識,也爲日後信息系統審計工作帶來隱患;

  ●在項目計劃編制及實施過程中,由於缺乏有效方法評估軟件規模及合理的資源代價,使得項目管理沒有有效抓手,最終只能關注是否按時交付以及投產後是否發生了生產問題。而諸如“項目的合理工作量及工期是多少?”、“變更對項目的影響是多大?”、“目前項目的進度或者質量是否存在風險?”等問題難以回答,項目管控的有效性更多依賴項目經理的個人能力而非制度;

  ●傳統的基於人天覈定項目費用的方式,難以有效評價用戶價值與成本的關係,供應商也缺乏足夠的動力提升自身能力;

  ●缺乏客觀評價系統“價值”的方法,制約了項目後評估、系統有效性評價等精細化管理工作的開展,難以形成科技工作持續改進的閉環

相關標準與方法

  上述問題並非金融行業所獨有,而是在軟件開發領域普遍存在。爲了應對上述問題,軟件工程領域的專家一直尋求找到科學的方法對軟件開發工作進行有效地度量和評估,進而全面提升軟件項目的開發效能和管控水平。

  在上世紀70年代,IBM的工程師針對金融行業大型系統開發,提出了功能點方法的原型,用於評估軟件的規模和價值,並進而推算所需的資源代價。隨着功能點方法在各大行業,特別是金融行業的成功應用併成爲國際標準,各種基於功能點方法的軟件工作量及費用量化評估方法也逐漸興起。上世紀80年代,軟件工程大師CaperJones在《Programming Productivity》一書中首次提出了用基準比對(benchmarking)方法進行軟件評估的思想,爲軟件開發工作量量化評估體系提供了另一重要基石。近幾十年來,隨着基準比對方法及各種統計過程控制方法逐步應用於軟件行業,採用量化方法評估軟件開發的工作量及費用,進而對開發過程進行量化管理、持續改進,逐漸成爲大型組織提升自身管理水平的必由之路。

  爲了將行業中的最佳實踐進行有效地總結與抽象,同時進一步規範軟件工作量及費用的評估方法及過程,國內外相繼發佈了一系列標準。這其中既包括早納入ISO國際標準並被轉化爲國標的軟件規模度量基礎標準(如GB/T 18491)以及五種功能點方法標準(分別對應IFPUG、NESMA、COSMIC、FiSMA、MK II方法);也包括基於功能點方法,並對工作量、成本甚至費用進行測算的國家、行業及地方標準,如工業和信息化部行業標準《軟件研發成本度量規範》(SJ/T 11463-2013)(後升級爲國家標準《軟件工程 軟件開發成本度量規範》(GB/T 36964-2018)),北京市地方標準《信息化項目軟件開發費用測算規範》(DB11/T 1010—2013)。目前,國標委正組織相關專家進行IT服務運維成本度量規範的研製工作,以進一步拓展量化評估方法在軟件全生命週期的應用。

  在上述標準中,工信部標準《軟件研發成本度量規範》自2013年發佈以來,在各大行業,特別是金融行業取得了廣泛的應用和良好的效果。此標準所採用的方法(功能點方法、基準比對方法)以及所使用的基準數據(CSBMK)也成爲金融行業,特別是銀行業進行軟件項目工作量及費用評估最主流的方法和參考依據。 

  相關方法及標準的主要應用場景包括(但不限於):

  ●人力資源規劃:評估IT團隊產能缺口,測算自有人員及外包團隊合理規模;

  ●預算管理:保證IT投資有效投入,提高合規性,降低管理風險;

  ●工期合理性評估:測算項目合理交付週期,將以人月爲基礎的成本導向結算轉爲以功能規模爲基礎的交付價值導向,實現甲乙方的合作共贏,加快交付速度;

  ●部門虛擬結算:體現IT價值,有效管理項目範圍,拉動業務需求質量提升;

  ●外包管理:招投標管理及商務談判;單一來源項目合理議價;對供應商能力水平進行定量評價;

  ●產品管理:助力產品規劃、重用管理,定量評價研發基礎工作的價值;

  ●IT部門內部管理與過程改進:建立研發過程定量管理的閉環,全面提升研發管理水平;

  ●項目後評價:項目結束後定量評估交付價值,並與預算/計劃比對,形成管理閉環;與同業對標,瞭解自身水平及短板,持續改進。

工作量及費用量化評估過程

  在國標《軟件工程 軟件開發成本度量規範》及行標《軟件研發成本度量規範》中,明確了基於基準比對方法及功能規模估算的基本技術思路。其成本及費用測算過程如下圖所示:

軟件開發工作量及費用量化評估方法在金融行業的應用

  由上圖1可以看出,規模估算是基礎。在標準中,明確了可採用國際標準的功能點方法對軟件規模進行測算,“功能點”是軟件的規模單位,就類似於“平方米”之於房子,“公里”之於距離。

  在金融行業,信息化項目規模估算多采用快速功能點方法。該方法的優點就是提出了針對不同的應用場景,採用不同級別的規模估算方式,即:預估功能點方法、估算功能點方法和詳細功能點方法。

  例如,在項目早期立項、預算階段,由於項目需求較爲模糊,更適合採用“預估功能點方法”;而在在項目中期,用戶和開發方對項目需求有了更加清晰地界定,可以利用“估算功能點方法”進行度量;當項目需求完全確定時,可以進行採用“詳細功能點方法”進行詳細估算。值得一提的是,由於詳細功能點方法較估算功能點方法計數複雜,且工作量增加顯著,但兩種方法估算值偏差不大,所以行業內一般不建議使用詳細功能點方法。

  當軟件規模確定後,可以參照如下公式進行工作量估算:

工作量=規模×生產率×調整因子

  其中,基準生產率和調整因子的取值可以參照中國軟件行業基準數據(當前最新版本爲CSBMK®-201809)或本組織歷史數據。

  依據工作量估算結果和平均人力成本費率,直接計算出直接人力成本和間接成本的總和,再加上直接非人力成本(如差旅費、培訓費等),即可計算軟件開發成本。

  以某銀行反洗錢系統部分功能爲例,其需求片段如表1所示:

軟件開發工作量及費用量化評估方法在金融行業的應用

  據此,我們可以採用“估算功能點方法”,填寫《功能點計數清單》,如表2所示:

軟件開發工作量及費用量化評估方法在金融行業的應用

  根據該行歷史數據分析,假設該系統基準生產率爲12人時/功能點,人月基準單價爲3萬元/人月,則工作量及費用測算結果(未包含直接非人力成本)如表3所示:

軟件開發工作量及費用量化評估方法在金融行業的應用

  注:限於本文篇幅,對於量化評估方法的技術細節及測算過程不再展開講解,相關內容可以參閱《軟件成本度量標準實施指南》(清華大學出版社,2017)、《軟件研發成本度量規範釋義》第2版(機械工業出版社,2017)等專業書籍。

方法應用及展望

  北京軟件造價評估技術創新聯盟組織專家在完成相關標準的研製工作後,積極參與到相關標準推廣及行業數據庫建設工作中,並取得良好應用效果。

  自2013年以來,×××、國家開發銀行、中國銀行、交通銀行、郵儲銀行、招商銀行、平安銀行、光大銀行、中信銀行、南京銀行、徽商銀行、河北農信、陽光保險、太平洋保險等諸多金融機構逐步引入行業標準,採用量化方法對軟件項目進行量化評估或管理,在有效控制科技投入的前提下,提升了IT治理水平和項目管控能力。與此同時,在金融行業已經有近3000人蔘加了軟件工程造價師專業培訓並通過考試,形成了可保證方法進一步深化應用的專業人才隊伍。

  從項目全生命週期看,應用相關方法可以形成事前預測、事中控制,事後評價的管理閉環。

  在項目早期,可以採用“快速功能點方法”對項目所需資源進行合理的估算,進而科學確定項目預算及計劃。同時,運用功能點方法建立了定量的項目範圍基線,爲後續項目範圍變化時做出科學決策奠定了良好的基礎。這一點對於需求不確定的創新項目、臨時性任務、或者敏捷項目尤爲重要。

  在項目中期,功能點方法主要用於項目性能監控以及項目範圍管理。同時,由於功能點方法從業務視角出發,並且需要對所有相關係統進行計數,因此,在拉動需求質量提升,加強業務需求分析能力,明確業務需求影響範圍等方面也都有積極的作用。

  在測試環節,可以結合功能點方法開展測試分析工作,並利用測試用例密度等指標設定更爲合理的測試策略。

  在項目後評價時,則可以根據生產率、缺陷密度、交付質量、交付速度等指標對項目、團隊、供應商進行系統科學地評價,並可與行業數據對標,發現差異點,從而更有效地開展改進活動。

  相關方法的導入及應用是一個長期持續優化的過程,應在建立整體規劃的基礎之上分步實施。通常宜以一兩個管理痛點切入,在取得良好應用效果之後,再逐步擴展應用場景,並形成量化管理的閉環。方法在各金融機構的應用場景如下圖所示:

軟件開發工作量及費用量化評估方法在金融行業的應用

  隨着相關方法在金融行業的深入應用,方法及其應用模式也在逐步演變,其主要趨勢體現在以下幾個方面:

  ●應用場景:從內部管理爲主延展到費用覈算、供應商管理、預算管理與審計等諸多領域;

  ●應用機構:從以千人以上規模的大型金融機構(如國有銀行、股份制商業銀行)爲主向數百人(含外包)甚至更小規模的金融機構(如城商行、農商行、證券公司、金融租賃公司等)擴展;

  ●方法演進:從主要針對功能性需求的規模度量演進到支持特殊系統、非功能需求度量(如數據倉庫、人工智能、UI優化等);

  ●流程設計:從牽頭部門(早期多爲項目管理部門)、應用階段(早期多用於項目估算)、到計數人員(早期多爲項目經理)等諸多方面都發生了變化,並趨向多部門(如項目管理、質量、需求、架構等)、多流程(如預算管理、項目管理、外包管理、產品管理等)的協同與相關能力(如需求、架構)拉動與提升;

  ●工具支撐:從基於EXCEL的簡單工具發展到與過程管理工具深度結合,並開始探索利用AI技術進行規模輔助審覈/計數以及工作量費用自動測算。

  我們相信,隨着各金融機構在IT建設方面的持續投入以及精細化管理意識的逐步提升,軟件開發工作量及費用量化評估方法一定可以得到更廣泛的應用,並在持續的實踐中不斷完善,從而發揮日益重要的作用。(作者:北京軟件造價評估技術創新聯盟CTO 王海青 來源:《金融電子化》第285期)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章