系分論文:應用CMM改進銀行軟件過程
我在某銀行軟件開發科室工作,長期從事商業銀行中間業務應用的開發。在以往的中間業務產品開發過程中,存在許需求不明確;開發人員有章不循,依靠個人智慧,開發處于低水平的重復狀態;項目的進度、質量難以保證等問題。我們從2001年底開始著手解決中間業務產品的整合和綜合發展問題,經過項目分析和論證,我們提出了要開發一套具有良好擴展性、通用的中間業務平臺系統。為了避免在新平臺的開發過程中繼續出現上述問題,作為該項目的主要負責人,我在中間業務開發團隊引入CMM,采取了一些有效的策略和方法,主要包括:進行CMM培訓和咨..
中間業務是指銀行利用自己的網點、設備、網絡、信息等優勢,以中間人的身份接受客戶委托,提供各類金融服務并收取相應手續費的業務。作為銀行業務新的利潤增長點及重要的吸收存款手段,中間業務正日益受到國內各商業銀行的重視。近年來,我所在銀行根據業務發展的需要,通過陸續推出代發工資、代收電話費、代收水電費、代收學費、行政事業代收費等一系列代收代付的中間業務,在提高自身服務水平的同時,增強了在同業中的競爭能力。
一、中間業務開發過程中存在的問題
隨著中間業務品種的增多和市場對中間業務要求的提高,中間業務系統越來越龐大與復雜,盡管我們中間業務開發團隊不乏技術過硬的開發人員,還是經常出現項目不能按時完成;新的中間業務項目上線時,軟件質量不理想,其中包括一些明顯的錯誤,如客戶不能交費、重復扣或少扣客戶的費用,客戶交費后打印不了發票等;而且文檔不齊全,造成維護比較困難。作為中間業務開發團隊的主要負責人,我召集了幾名技術骨干總結了以往的經驗教訓,找出了存在的一些主要問題:
1、隨意性決策較多。往往軟件產品從立項階段開始就成了“實驗田”——軟件產品做與不做,什么時候交付等多是憑個人的主觀意愿,沒有參考以往經驗,也沒有充分考慮資源的有效投入,導致開發的產品維護成本較高,“打補丁”現象較多,用戶使用不方便。
2、有章不循。盡管我們科技部門比較注重規章制度的建設,也針對軟件開發過程制定了大量的程序性文件,但由于沒有嚴格的后續跟蹤與監督機制,使軟件開發的質量控制大打折扣。
3、依賴個人智慧。我們開發團隊中不乏一些具有相當才干的項目經理和骨干人員,他們為研發銀行軟件產品做出了較大貢獻。然而,由于他們的經驗沒有被很好地總結、歸納,并上升為整個開發團隊的財富,致使有的項目負責人一走,開發質量就會下降,這說明軟件產品的研發依賴于個人而不是整個開發團隊。
4、“可視性”低。軟件開發過程不透明,上級不了解下面在做什么,無法實時監控項目進展;下面的開發人員“報喜不報憂”。由此導致產品缺陷被慢慢積累起來,等看到結果為時已晚。
二、應用CMM改進中間業務平臺開發過程
由于傳統的中間業務系統產品開發平臺多樣化、缺少統一規范、產品分散、功能不足,大大影響了開發效率和增加了維護難度。為解決傳統中間業務開發模式存在的諸多弊端,我們從2001年底開始著手解決中間業務產品的整合和綜合發展問題,經過項目分析和論證,我們提出了要開發一套具有良好擴展性、通用的中間業務平臺系統。為了避免在新平臺的開發過程中繼續出現上述問題,作為該項目的主要負責人,我考慮在中間業務開發團隊引入CMM,試圖把個人的腦力勞動規范為有紀律的智力產品。
1、培訓與開發過程規范的制定
在項目啟動前,我們請了一家知名的培訓機構,培訓了CMM的基礎理論,并結合一些軟件開發公司實施CMM的案例講解,促進了團隊成員對CMM的認識和對軟件過程實行規范管理的理解和支持。然后,我們分析開發部已有的規章制度存在的問題和缺陷,重新制定了中間業務開發規范。首先定義出軟件開發中的主要過程,參考CMM并針對中間業務開發的實際需要,確定了每個過程的具體工作內容。其次確定了軟件開發的具體方法,我們確立了面向對象的開發方法,并對每個開發過程定義了相應的具體文檔,如系統計劃階段必須提交《系統開發計劃》,需求分析階段必須提交《軟件需求規格說明書》。并定義了文檔的格式和必須提交的內容。最后,對每個過程劃分相應的人員職責,即按照工作要求,進行人員分工,并確定具體的工作內容。
2、努力做好需求管理
在銀行的軟件研發過程中,需求管理是一個“老大難”問題。技術部門抱怨業務部門提出的需求不清晰,甚至提不出需求;業務部門抱怨技術部門對需求理解有偏差,開發的產品與初衷相去甚遠。從CMM的角度來說,業務部門提出的需求只是顧客需求,而在顧客需求中既有技術層面,也有非技術層面的,即便是技術層面的需求,也并非面面俱到都要開發,比如一些技術上不可行或者資源要求不能滿足的需求就必須剔除。只有適合軟件產品研發的需求才會被最終制作成規格說明。
在中間業務平臺需求的制定過程中,我采取了以下措施:
(1)組成業務部門與技術部門共同參與的需求組,需求提出后經過上級領導的評審和業務部門確認才實施開發。
(2)制定技術部門必須和業務部門商定需求變更流程和跟蹤監督的機制,需求變更如何提出、由誰進行評審、由誰決定做與不做、對項目進度及對資源的影響如何等都應事先考慮。
3、加強過程的跟蹤和監控
軟件開發過程中,我們按照軟件開發過程規范嚴格實施。在項目啟動的初期,開發人員要花很大一部分時間寫文檔資料,工作壓力比以前大多了,工作流程的改變,也導致一段時間內效率降低。大家逐漸習慣后,感覺文檔是研發人員勞動成果最好的記錄,工作比以前清晰,規范的文檔減少了對某個人的依賴,使軟件研發過程的上下環節緊密銜接。在整個過程中,我們得到所有的文檔,并根據文檔的內容對每個過程進行了檢查。在進度控制方面,我首先制定了系統開發計劃,要求開發人員填寫工作量周報,并據此繪制項目進度圖,隨時了解項目進展,并適當調配人手,整個項目比計劃略早完成。
在質量保證方面,銀行軟件產品質量對業務的開展尤為重要,它涉及銀行的資金安全和自身信譽,因此必須確保軟件開發產品質量。現在我國各銀行并沒有成立單獨的質量保證機構,對質量的控制主要掌握在項目研發人員手中,為此CMM建議成立專門的SQA組,檢查軟件開發過程標準、規程的合理性。鑒于人手問題,我們沒有成立專門的SQA小組,采用測試小組兼做SQA工作,對項目組的監督“對事不對人”,并定期公布監督結果。
三、經驗和不足之處
經過近一年工作,我們完成了中間業務平臺的開發,新的中間業務平臺運行良好,受到了業務部門和技術部門高層的贊許。在該項目的開發中,由于引進了CMM,加強了軟件過程管理,很好地解決了以前存在的四個問題。中間業務產品的開發目標更明確,提高了產品開發過程的可視性和可控性,從而在提高產品開發能力的同時提高了產品的質量;我的開發管理水平也得到了很大的提升。高層領導尤其對我們的開發流程和開發規范表示認可,并決定在整個開發部門推廣。我將這次軟件過程改進的成功實踐歸功于兩個原因:一是基于我們長期中間業務開發的基礎上總結出來的經驗和教訓,二是CMM原則與我們團隊和項目本身的特點的有效結合。然而,由于我們初次應用CMM,還有許多需要改進的地方:
1、我們僅運用了CMM的基本原則,整個軟件過程的管理基本是定性的。過程改進的趨勢是定量管理,必須采用合適的工具,如采用項目管理工具MS PROJECT控制項目進度,使用RATIONAL ROSE對需求分析和系統設計進行輔助設計,可預測和監控整個過程性能和產品質量,及時糾正偏差。
2、鑒于人手的問題,我們團隊成員往往身兼設計、開發、測試、SQA數職,組織結構不合理、人員分工不清顯然制約過程改進的實施,我們最近打算成立一個獨立于開發部的質量控制部,分清設計、測試和質量保證的責任、界限和權限,使其在更高的層次上控制軟件質量。
軟件過程的改進是一個很大的課題和實踐方向,在今后的工作中,我們將爭取向CMM更高的級別努力。
【編輯推薦】