林萍
由于項目組都開發(fā)過國內(nèi)的銀行卡這些功能,所以對銀行卡一般的業(yè)務(wù)比較熟練,但是外卡第一次接觸,涉及外國如Master等組織和中國銀聯(lián)的對接。
隨著全球經(jīng)濟一體化,很多企業(yè)需要將自己的業(yè)務(wù)發(fā)展為國際業(yè)務(wù),銀行更是不能例外,需要滿足對內(nèi)對外的所有銀行業(yè)務(wù),某商業(yè)銀行因業(yè)務(wù)發(fā)展需要,提出建設(shè)外卡收單項目,要求在不影響現(xiàn)在銀行系統(tǒng)業(yè)務(wù)的情況下,結(jié)合原有框架設(shè)計和開發(fā)此項目。
外卡即國外儲蓄卡或者信用卡(以下簡稱外卡)到國內(nèi)消費的項目,要求在不影響現(xiàn)有銀行業(yè)務(wù)的前提下,凡外卡上有美國運通(America express)、萬事達(Master)、日本(JCB)標志的卡,均可在境內(nèi)ATM機上查詢、取現(xiàn),在境內(nèi)POS機上消費和在境內(nèi)柜臺的操作功能,項目需要另外配備專門的外卡服務(wù)器,接入到原來的大型機上,外卡服務(wù)器稱作外卡前置機,主要采用Unix操作系統(tǒng)和Oracle數(shù)據(jù)庫,負責將大型機發(fā)送過來的聯(lián)機交易信息、清算信息轉(zhuǎn)換為國際組織規(guī)定的格式,向國際組織的系統(tǒng)傳送,并接收國際組織返回的相關(guān)信息,轉(zhuǎn)換成綜合業(yè)務(wù)系統(tǒng)規(guī)定的格式,向綜合業(yè)務(wù)系統(tǒng)返回信息的前置處理系統(tǒng)。項目還需要配備管理監(jiān)控人員的Web監(jiān)管系統(tǒng),以備隨時檢查外卡業(yè)務(wù)的運行情況。
由于項目組都開發(fā)過國內(nèi)的銀行卡這些功能,所以對銀行卡一般的業(yè)務(wù)比較熟練,但是外卡第一次接觸,涉及外國如Master等組織和中國銀聯(lián)的對接,分潤等業(yè)務(wù),項目組首先采用了原型模式獲取相關(guān)功能:ATM查詢、取現(xiàn)、沖正,pose機消費、沖正,pose機消費、消費取消、消費取消、沖正,以及pose預授權(quán)、預授權(quán)取消、預授權(quán)未知、預授權(quán)撤銷、預授權(quán)未知、預授權(quán)確認和柜面取款、柜面取消提取現(xiàn)金等功能。了解了系統(tǒng)的大致要求后,需要選取相對較好的開發(fā)模型來完成此項目的開發(fā)。
多種模型的比較
軟件開發(fā)模型比較經(jīng)典的有瀑布模型、螺旋模型、V模型、快速應用開發(fā)、敏捷開發(fā)等,瀑布模型是最早的也是理論比較成熟的模型,要求分六個階段完成:軟件計劃、需求分析、軟件設(shè)計、程序編碼、軟件測試和運行維護。雖然我們的系統(tǒng)功能需求比較明確,但是后期還需要應對很多需求變化,顯然選取瀑布模型不太適合,同時項目組對外卡的了解還不太深入,很難做好詳細無變化的需求工作,因此項目組一直認為瀑布模型不太適合本次開發(fā)。
同理,螺旋模型是瀑布模型的一個演化,不同的是它增加了一個風險管理,由一次次的迭代來完成最終的項目,由于螺旋模型在啟動時要求每次制定計劃、風險分析、實施工程和客戶評估四個方面的工作,因此耗時比較長,迭代次數(shù)太多,會讓客戶產(chǎn)生煩躁。V模型在瀑布模型的每個階段的基礎(chǔ)上,都增加了測試,如需求階段增加了驗收測試,設(shè)計階段增加了概要測試,從而提高了軟件的質(zhì)量,V模型也是需要前期將需求工作做得很完美,后期不能太多改動,因此也不適合本項目。最后,項目組根據(jù)本項目特點選擇了快速開發(fā)模型和敏捷開發(fā)相結(jié)合的方法。
敏捷方法選取
根據(jù)本項目的特點,通過分析功能的緊迫性,可以規(guī)劃分兩期迭代開發(fā),一期實現(xiàn)ATM和POS機的收單處理,二期完成柜面機的收單處理,兩期功能都涉及外卡前置機的軟件開發(fā)、Web服務(wù)器的開發(fā)和監(jiān)控客戶端的開發(fā)工作,由于這些開發(fā)工作實現(xiàn)先后順序,并要求盡快實現(xiàn)POS的收單處理,所以我們選擇了敏捷開發(fā)模型,小版本的增量發(fā)布特別適合本項目,敏捷開發(fā)強調(diào)的是快速而敏銳的反應變化,小版本的增量發(fā)布,少而且精簡的文檔、短平快的會議等,一切都以快速為中心,其中的結(jié)對編程看似浪費人力,其實不然,結(jié)對編程可以很好地結(jié)合思想,避免出錯,而且一人編寫另一個人一直在審查和代碼查詢,會避免很多項目風險,還為開發(fā)組提供了很好的人力資源儲備。
另外,銀行業(yè)務(wù)必須具有很高的可靠性和可用性,程序代碼必須保證錯誤極少,至少在數(shù)字運算方面必須零錯誤,基于以上考慮,項目組一直認為敏捷開發(fā)模型很適合外卡收單項目,而且在中途確實也遇到了人員調(diào)整方面的問題,由于采用結(jié)對編程,新增的人員也被安排在熟練的成員中很快熟悉了項目,從而使項目開發(fā)縮短了時間并保證了質(zhì)量。
另外,根據(jù)功能的使用等級來決定迭代的劃分,某些功能需要盡快投入的使用,比如POS消費就是必須第一步要實現(xiàn)的功能,因為外籍人員到境內(nèi)主要是出差,需要住宿等,需要使用POS消費功能,因此這個功能必須第一個開發(fā)出來,所以使用敏捷的迭代開發(fā)也是優(yōu)勢之一,POS消費核心業(yè)務(wù)功能先開發(fā)先使用,后續(xù)功能逐漸迭代增加,達到快速應用的目的。
并且先開發(fā)的功能會得到后續(xù)開發(fā)的功能的多次測試,會進一步提高核心功能的準確性和可靠性。敏捷開發(fā)專注于功能的實現(xiàn),很少再去操心繁瑣的文檔建設(shè),也很少再去召開大規(guī)模的會議,這些都為快速開發(fā)出項目做了很好的鋪墊工作。
快速應用開發(fā)與敏捷開發(fā)相結(jié)合
由于之前項目組也做過很多國內(nèi)銀行卡項目,所以積累了一些構(gòu)建,有些構(gòu)建不需要做修改就可以使用,比如分潤功能做好后,產(chǎn)生賬單等業(yè)務(wù)都可以利用以前所構(gòu)建來完成,既保證了安全性又縮短了開發(fā)時間。某些業(yè)務(wù)只需要做很小的改動就可以達到新的功能,比如有的構(gòu)建是專門針對國內(nèi)銀行卡的功能,現(xiàn)在只需簡單的修改為適應外卡就可以立即使用。由于這些經(jīng)驗的積累已得到使用,因此為整個項目的可靠性和性能提供了有力的保證。
Web監(jiān)控的開發(fā),也是在原有的國內(nèi)監(jiān)控系統(tǒng)上增加外卡的監(jiān)控功能,因此利用原有的成熟監(jiān)控構(gòu)建進行快速接口修改、安裝和測試,功能也很快完成并投入使用。沒有現(xiàn)成的構(gòu)建可使用的時候,我們采用敏捷開發(fā)模型來快速開發(fā)構(gòu)建。
由于選取開發(fā)模型得當,并且采取了有效措施來完善其中某些模型的不足,第一版本在半年左右的時間投入使用,外卡收單系統(tǒng)最后按計劃順利投產(chǎn),不但保證了系統(tǒng)的可用性、可靠性,也取得了良好的社會效益和經(jīng)濟效益,而且我們的開發(fā)模型也得到了同行的高度認可和贊同,為后續(xù)的系統(tǒng)開發(fā)打下了良好的基礎(chǔ)。endprint