計算機管理信息系統(簡稱MIS系統)的開發是一項復雜的系統工程。從70年代開始,人們逐漸認識到,為了保證MIS系統開發成功,必須采用工程化的系統開發方法,并研究出一些符合工程化標準的開發方法。這些方法旨在指導開發者進行工程化的系統開發,從而加快MIS系統開發的速度、保證質量、以及降低開發成本。工程化的系統開發方法確實在開發實踐中取得了一定的效果。
那么,是不是采用了工程化的系統開發方法便一定能保證MIS系統開發的成功呢?答案是否定的。有許多失敗的MIS系統的例子,其開發也是采用了工程化的方法,或聲稱采用了這種方法。但結果在投入了大量資金后,系統卻不能達到預期的目標、滿足用戶的需求,以致用戶方懷疑是否應進行該項目的開發,或者開發所選擇的硬件、軟件以及開發工具是否得當。究竟問題出在哪里呢?筆者通過對一些失敗的MIS系統的分析,發現問題并沒有出在開發方法本身,以及硬軟件的選擇上,而是出在了開發方法的實施過程中,也是說主要出在開發項目的管理上。
任何一種開發方法終是要由人來實施的,人們在開發工作實施過程中不可避免地要遇到許多項目管理方面的問題,如何正確對待、解決這些問題,直接關系到MIS系統開發的成敗。目前計算機界雖有許多關于MIS系統開發中項目管理方面的問題的討論,但大多局限于針對理想開發環境中的理想開發模型的討論。而實際的開發環境和開發模型卻各不相同,它受到各種客觀因素的影響,忽略這些因素,或者回避、不解決存在的問題,必將導致開發工作的不完善、甚至于失敗。本文是要通過討論如何處理實際MIS系統開發中一些重要因素之間的關系,分析項目管理中存在的矛盾,來揭示其中存在的問題并探討解決的方案。
什么是MIS系統開發的項目管理
MIS系統開發的項目管理是根據管理科學的理論,聯系MIS系統開發的實際,保證工程化系統開發方法順利實施的管理實踐。它包括MIS系統開發中的項目評估及可行性分析、人員管理、進度管理及成本控制等方面。
項目開發中的角色及其職責
一個MIS系統的開發需要用戶方與開發方的共同協作。在一個MIS系統開發中,開發方人員和用戶方人員各自扮演著不同的角色。主要角色有:
用戶方的項目管理人員:他是開發項目的組織者,負有開發項目的計劃、系統的階段驗收及對系統整體進度的監控、經費的使用、與開發方的項目管理人員工作的協調、用戶方的使用人員的組織與培訓等職責。
用戶方的業務人員:MIS系統的需求的提出者,也是MIS系統的終用戶。他們是對應用系統開發成功與否的終評判者。
用戶方的決策層:MIS系統開發的終決策機構,決策層要對MIS系統開發的項目的上馬、經費的預算以及系統所要達到的總目標等作出決策。其決策直接關系到MIS系統的開發成功與順利實施。
開發方的項目管理人員:負責項目的計劃、開發人員的組織與調度、開發進度的檢查、以及與用戶方項目管理人員工作的協調。
開發方的軟件編程人員:根據用戶方的需求、按照項目的計劃及進度進行系統開發。
項目管理中各種問題及各種關系的處理
1、用戶方與開發方的關系
用戶方與開發方是對立的統一體,雙方均希望將開發項目做好。但用戶方可能對計算機系統工程,如工程組織,缺乏全面的了解;而開發方對用戶方的需求、細節了解不充分等因素,使得用戶方與開發方對工程的理解從一開始存在著差異。而這種認識上的差異與理解的不同往往在開發初期并沒有表現出來,當系統開發結束時,雙方才發現這種差異使開發出的系統與實際需求偏差甚遠。因此,MIS系統開發項目管理的重要目標便是建立一個便于開發方與用戶方之間進行交流的環境。在系統需求分析階段,開發方與用戶方的深入的交流是項目獲得成功的關鍵。但這種交流卻經常由于各種雙方的誤解而難以溝通。
在需求分析階段,開發方的分析人員總是先把精力集中在整個系統的總的需求上,而不會對具體細節作過多的考查。當用戶方提出一些細節要求時,開發方往往說:“這些問題留待后面討論”,而糟糕的是以后卻可能永遠不會再談及這個問題。當用戶方認為已經向開發方提出這些需求時,開發方卻根本未予考慮。因此,開發初期,用戶方的項目管理人員應該把這些“留待后面討論”的需求單獨記錄整理,在開發方做完系統的整體需求分析后,項目管理人員應及時提出對系統進行進一步的、更深入的、細致的、具體的需求分析,以解決那些開發方要“留待后面討論”的問題。
在某些需求尚未確定時,用戶方項目管理人員往往會說:“這部分需求我們還要考慮,不過你們可以先按現在的模式做。”遺憾的是,開發方經常會把現在的工作模式作為將來的、確定的需求去設計開發系統,而把用戶方在此需求上的未確定因素拋在腦后。當后來用戶方要求其改變時,開發方便陷入了窘境。因此,用戶方管理人員應盡量將需求陳述清楚,對不能確定的因素,應提出幾種可能的實施方案供開發方參考,以保證開發方系統設計時,將不確定因素設計成靈活可變的功能。
開發方說:“用戶方已經認可了需求分析報告,這表明我們已經徹底了解了用戶方的要求。”
用戶方說:“盡管我不太明白需求分析報告中的一些技術術語,但他們能寫出這個報告,一定是對我們的需求了解得很深入了。”
其實,需求分析報告是對系統需求的書面表達形式。由于需求分析報告是采用軟件設計的術語編寫的,因此常常令計算機背景知識較少的用戶方難以理解,也很難發現需求報告中與實際需求不符之處,更難提出建設性的意見。特別是那些編寫得較差的需求分析報告,用戶方更是不知所云。