徐 劍
電子政務(wù)系統(tǒng)軟件招標建設(shè)與服務(wù)
徐 劍
徐 劍 陸 敏 周建功 郭 錕
安徽省經(jīng)濟信息中心
伴隨著軟件產(chǎn)業(yè)的快速發(fā)展,我國政府電子政務(wù)程度不斷加深。各地信息化系統(tǒng)建設(shè)速度不斷加快,越來越多的電子政務(wù)系統(tǒng)運行于互聯(lián)網(wǎng)之上。根據(jù)2003年1月1日開始實施的《中華人民共和國政府采購法》等有關(guān)規(guī)定,已建設(shè)完成的電子政務(wù)系統(tǒng)大部分采用招標采購的建設(shè)方式。但筆者在參與多個省級電子政務(wù)系統(tǒng)的運維工作多年后發(fā)現(xiàn),由于電子政務(wù)系統(tǒng)的行業(yè)特殊性,招標采購?fù)瓿山ㄔO(shè)的系統(tǒng)在其生命周期的運行和維護階段會存在一些問題,現(xiàn)總結(jié)如下。
與硬件相比,軟件產(chǎn)品無法設(shè)立統(tǒng)一的標準,各建設(shè)單位的需求千差萬別,同一款軟件在甲單位適用,在乙單位未必適用。為實現(xiàn)低價中標,軟件公司經(jīng)常將開發(fā)的某款軟件在甲單位應(yīng)用后,稍作修改,即投放到乙單位實施部署,在項目投標書上也會說明滿足招標書所列功能需求。但實際結(jié)果是電子政務(wù)系統(tǒng)的事項辦理流程、審批事項的配置習慣等都不能很好的滿足乙單位的使用。
比如正在運行的某行政審批軟件,基本上是從已經(jīng)實施完成的省份移植過來,雖有審批功能,但各地的審批流程、業(yè)務(wù)習慣都不盡相同。并且在軟件的部署試運行階段,當發(fā)現(xiàn)某項功能與本項目無關(guān)或不符合項目功能需求時,軟件公司通常采取將與該功能相關(guān)的操作頁面標簽刪除,其功能模塊的內(nèi)部程序并未刪除,依然保留在系統(tǒng)代碼中。經(jīng)過長時間的累積,程序龐大而復(fù)雜,堆積的大量無用代碼在系統(tǒng)運行時會消耗資源,逐漸導致系統(tǒng)速度緩慢。在試運行階段,系統(tǒng)模塊中的殘留代碼均不能暴露,只有當程序運行出現(xiàn)問題后,進行問題定位時,才能從源程序中發(fā)現(xiàn)大量的無用代碼,這給后期的系統(tǒng)運行帶來隱患。
在軟件工程中有一句話叫作:找到的軟件缺陷越多,說明未發(fā)現(xiàn)的軟件缺陷也越多。測試用例寫得再好,也不能保證測試修改完成的軟件產(chǎn)品沒有缺陷。
很多軟件產(chǎn)品的內(nèi)部缺陷短期內(nèi)無法體現(xiàn),只有通過一段時間的運行使用后,比如數(shù)據(jù)量有了一定的積累,或者用戶數(shù)有了一定增長帶來的高并發(fā)量,才會出現(xiàn)問題,這時對問題的分析才能逐步發(fā)現(xiàn)諸如程序架構(gòu)和代碼編寫等方面存在的問題。待到問題發(fā)現(xiàn)時,經(jīng)常質(zhì)保期已過大半。并且質(zhì)保期內(nèi)程序修改的時間不好控制,更有甚者干脆敷衍了事,無限期拖延,以致承諾的服務(wù)不能兌現(xiàn)。
另外,軟件公司在投標書中對質(zhì)保期的定義一般為驗收或正式上線之日起3~5年。隨著項目的完成,軟件公司為了盡快回款,業(yè)主方也為了能更好的進行后續(xù)合作,通常會比較及時的組織項目驗收;或者在進行了較為充分的測試后選定日期系統(tǒng)正式上線運行,但驗收或者正式上線后應(yīng)留出充分時間進行設(shè)置調(diào)整和相關(guān)的系統(tǒng)測試。以解決上面所述的問題,按照軟件公司定義的質(zhì)保開始時間,此時間算在質(zhì)保時間中筆者覺得有待商榷。
由于電子政務(wù)行業(yè)特殊性,行政審批系統(tǒng)中的業(yè)務(wù)需求經(jīng)常會發(fā)生變動,相應(yīng)的,對需求相關(guān)的程序功能也需要作出一些小幅改動和調(diào)整。根據(jù)程序設(shè)計的分層思想,審批業(yè)務(wù)系統(tǒng)通??蓜澐譃橐晥D層、模型層與控制層,除了視圖層一般為頁面文件(如HTML文件)可直接對其進行某些修改外,模型層和控制層在項目發(fā)布上線時一般會將源代碼封裝、打包、編譯成包文件,然后部署到服務(wù)器上運行,其內(nèi)部數(shù)據(jù)結(jié)構(gòu)和控制邏輯均已無法窺見,某些需求的變動要求對業(yè)務(wù)邏輯進行修改必須要有編譯前的源文件。
對于較小的程序改動或代碼審查,業(yè)主單位希望能夠通過自身技術(shù)力量來完成,這就需要獲取項目源代碼。但大多數(shù)軟件公司通常以核心代碼乃公司商業(yè)機密為由拒絕提供,用戶自己修改代碼變?yōu)椴豢赡軐崿F(xiàn)的任務(wù),若提交公司修改則常會出現(xiàn)響應(yīng)慢或不作為等情況,使系統(tǒng)改動非常困難,無法滿足業(yè)務(wù)需求的變化。
比如當前國家一直致力于行政審批改革,審批項目不斷簡減、下放,不可避免的會對一些業(yè)務(wù)需求產(chǎn)生影響,必須合理設(shè)計流程配置模塊才能滿足需求,作為審批系統(tǒng)的核心模塊,為了能夠滿足這種不斷變化的流程配置和數(shù)據(jù)項,模塊得設(shè)計會變得比較復(fù)雜,在運行過程中會出現(xiàn)一些異常缺陷,因而經(jīng)常修改程序是不可避免的。但目前的狀況,又使得程序修改工作的進展變得異常緩慢甚至停滯不前。
我們知道,隨著計算機技術(shù)的不斷發(fā)展,現(xiàn)在軟件系統(tǒng)的規(guī)模越來越大,動輒需要上百人月的工作量才能完成。其功能多種多樣,業(yè)務(wù)邏輯復(fù)雜,用戶權(quán)限分類細,不一而足,這些功能和業(yè)務(wù)邏輯都需要工程師編寫代碼實現(xiàn)。對于規(guī)模較大的軟件企業(yè),其內(nèi)部一般有針對各行業(yè)的開發(fā)平臺。在此平臺上開發(fā),許多功能可以通過拖拽組件,并在此基礎(chǔ)上堆砌業(yè)務(wù)邏輯來完成,此舉可以大大節(jié)省人工,提高開發(fā)效率。但是同時也會引起一些附作用,比如,一個或者幾個組件由于需求的變更在項目中不再保留,可以通過開發(fā)平臺將其刪除。相應(yīng)的,業(yè)務(wù)邏輯中與這一個或者幾個組件相關(guān)的代碼,也需要進行修改和刪除。對于少量的這種修改,開發(fā)人員可以全面考慮由于需求變更而導致的程序變更,但是一旦需求變更牽涉的功能和組件較多,組件與組件之間通過多種業(yè)務(wù)邏輯進行聯(lián)系,修改一個功能,需要對多個組件,以及多個組件對應(yīng)的控制邏輯進行修改。在此過程中往往會出現(xiàn)功能對應(yīng)的組件修改或者刪除了,而相關(guān)的控制邏輯卻由于失誤未能作出對應(yīng)的修改。隨著程序的健壯性越來越好,很多時候?qū)τ谏厦娴膯栴},在進行源程序編譯時并不報錯,程序在正常運行時表面上也能完整的執(zhí)行規(guī)定的控制邏輯。但如果對應(yīng)功能使用了與被刪除組件相關(guān)的數(shù)據(jù),即使組件刪除,程序依然試圖調(diào)用刪除后的組件對數(shù)據(jù)進行處理,這種情況下不可避免的會導致程序的運行出錯。而一旦出現(xiàn)這種錯誤,系統(tǒng)很有可能不會針對這一錯誤拋出異常,排查這類問題只能靠開發(fā)人員根據(jù)邏輯結(jié)構(gòu)逐步檢查數(shù)據(jù)輸出是否正確,人力成本大大增加。如果此類問題在測試時沒有發(fā)現(xiàn),一旦上線運行時出現(xiàn)這種情況,軟件公司出于對公司技術(shù)力量的自信以及多一事不如少一事的心態(tài),常會聲明系統(tǒng)絕對沒有問題,多半是網(wǎng)絡(luò)問題。筆者曾經(jīng)就遇到過這種問題,最后查出系統(tǒng)在某個業(yè)務(wù)邏輯中使用了短信平臺發(fā)短信這個模塊,在短信平臺這個組件修改后,業(yè)務(wù)邏輯沒有相應(yīng)調(diào)整,導致錯誤,如果能夠避免這個問題,就能節(jié)省在檢查網(wǎng)絡(luò)上耗費的大量時間。
為完善和解決軟件招標中存在的問題,經(jīng)過綜合考慮,建議從以下幾個方面來著手解決。
1.在項目招標和建設(shè)初期,對系統(tǒng)的功能性描述盡量詳細。在項目上線前要對系統(tǒng)做充分測試,特別是關(guān)乎用戶體驗的功能性測試,一定要覆蓋全面。在發(fā)現(xiàn)問題或?qū)τ脩趔w驗有更好方案時快速響應(yīng),立即修改,并要求軟件公司對系統(tǒng)中的冗余代碼進行清理。
2.在項目招標書和合同的文本中,以書面形式明確質(zhì)保時間和質(zhì)保起始時間,做到起止時間界定明確,后期質(zhì)保工作應(yīng)嚴格按照合同說明遵照執(zhí)行。
3.可將目前的招標建設(shè)系統(tǒng)方式改為購買軟件服務(wù)的方式,在前期軟件試用過程中,選擇一到二家其軟件產(chǎn)品與建設(shè)單位應(yīng)用需求契合度較高的投標單位,前期開發(fā)完善程序,等完全符合用戶需求后,再通過購買服務(wù)的方式支付費用,在此過程中若能引入競爭機制則對建設(shè)單位更加有利,這樣既滿足了用戶的使用需求,又給后期的運維工作帶來方便,避免政府投資風險。
4.對于核心的業(yè)務(wù)邏輯和重要的數(shù)據(jù)處理流程,要求投標人給出相關(guān)的代碼或偽代碼,并通過必要的流程圖和數(shù)據(jù)流圖對其進行詳細說明。若業(yè)務(wù)邏輯和數(shù)據(jù)處理流程出現(xiàn)變化,應(yīng)指派專人對這些文檔材料進行對應(yīng)調(diào)整,保持代碼和文檔的一致性,為后期的問題檢測提供準確的第一手資料。
最后,電子政務(wù)系統(tǒng)軟件招標建設(shè)與服務(wù)過程中的問題還有很多,筆者謹從中選取幾個較突出問題進行分析,并希望通過相應(yīng)對策能夠減少和避免這些問題,節(jié)約系統(tǒng)建設(shè)成本,降低維護費用,為我國電子政務(wù)事業(yè)快速、健康發(fā)展貢獻自己的一份力量。
10.3969/j.issn.1001-8972.2015.01.011