自從90年代中期為澳大利亞的一家百貨公司建立了第一個網站銷售系統后,很明確地理解到信息化系統的建設需要利用科技為企業帶來投資的效益和價值。與自動化系統建設的利用科技提升運營效益的20多年傳統系統開發模型和方法有很大的差異。自動化系統建設是基于一套已經相當成熟的業務流程來分析系統功能需求,但大部份信息化系統建設的起始階段缺乏這樣一套完整的業務操作流程,同時信息化系統的范圍必須在理解如何實現項目投資終目標的有關業務流程建立后才能夠把項目的范圍建立起來,然后才能夠分析項目范圍的業務流程中所需的系統功能需求(參考“降低軟件開發過程變動依賴項目范圍管理”一文)。但要建立一個未來系統的業務流程,必須對有關行業的運營模式相當熟悉,或者有一個對這行業相當熟悉的專家(如行業業務分析師)協助下才能夠建立一套可操作的業務流程,同時更需要對企業的管理思維有一定的理解,才能夠明確信息化系統的應用價值。但在正常系統開發環境中,往往沒有足夠的時間容許我們去探討,分析和建設有關的業務流程,然后才建立項目范圍,才能夠對有關項目進行合理規劃,估算項目成本和資源。那么我們該如何為信息化系統建設項目合理地把握項目的范圍呢?這個問題一直讓我思考了數年,到90年代末期才開始有一個模糊的構思。
任何項目的終交付都必須符合項目的投資目的,客戶對項目的投資是否能夠達到預期的目標是依據項目的終交付物能否滿足投資的期盼,無論是自動化時代的效率改善或信息化時代的信息價值,終交付物所包含的功能是否全面代表項目終交付本身的質量優劣。要降低開發過程的修改和變動,我們必須建立明確的項目范圍,清楚分析范圍中所需要執行及處理的事情,然后才能夠整理出系統的功能需求,設計科技的應有方法,終交付能夠演示出如何滿足投資者的投資目標,才能夠完成項目的交付。
智能身份證系統建設的經驗
在90年代中后期,我們需要回應亞洲某一國政府準備建設一套智能身份證系統的項目投標邀請。標書要求一套整體解決方案,內容相當詳細地說明整個項目所影響的有關部門和項目的終目的,很明確地說明這套系統的智能卡除了取代傳統的國民身份證外,更可以取代駕駛執照,也可以作為鄰近所接受的旅游證件,更可以代替金融卡用來支付小額費用,如停車費,公交車費等。當時我們的大挑戰是如何能夠提供一套合適的硬件配置和網絡架構合理地分置于該國各省、市的負責單位中應用,而硬件的整體配置和網絡架構的需求也直接影響軟件架構的設計,更直接影響未來擴容需求,系統建設和維護的投資成本。
有關國民身份證和駕駛執照的發行和應用已經有一套基本業務流程,但是利用智能卡取代后,某些操作流程將會帶來局部調整。那些操作需要進行調整,那些可以保留,是我們需要推論科技的應用能夠提升效率外,還能夠帶來那些價值進行假設性的評估。但作為旅游證件和代替金融卡這兩方面是全新的業務模式,這些概念性目標如何能夠融合到這套系統中,如何評估這套系統的工作量,需要那些硬件和網絡配置,讓我們對這份標書的回應缺乏應有的信心。
后我們同意組合一個十多人的業務分析團隊對各種應用方法建立了全面的應用流程,結合該國的人口分布和各應用目標的未來操作流程,總結出一套比較合理的硬件配置和軟件架構,讓我們在標書回應內容中能夠明確說明這套系統將來如何可以滿足項目的終應用要求,對操作流程的前提條件和任何假設透過SOW來說明整個項目的范圍和整個項目的終交付物,讓我們的報價遠遠低于其它競爭對手,輕松地贏取這份合同,并且在完成交付后能夠為單位帶來合理的利潤。
這個項目讓我更深入地體會到項目范圍、范圍中各種操作流程和終交付物定義在項目初期的重要性。如果我們按照傳統的回應方法,依據標書所提供的整體數據進行硬件配置和軟件架構推論,我們后建議的解決方案一定會浪費很多地方上的硬件資源,而且軟件和網絡的設計會對系統的應用產生操作瓶頸,降低系統的效率,提高初期的投資成本。
其它信息化項目建設經驗
在2000年負責加拿大一家金融機構的零售業務部門建立一套客戶關系管理系統,當時這個項目的基本要求很簡單,也很明確,高層管理人員希望這套系統能夠提供以下的應用價值:
1. 客戶綜合帳戶信息管理
2. 分析客戶開支模式
3. 提升客戶全面財務管理效益
4. 建立正式及非正式的客戶溝通渠道
5. 提供銀行發展新業務的機遇
6. 開展客戶所需的金融服務
7. 建立客戶對銀行的滿意度及忠誠度
除了第一及第二兩個目標及一部份第四個目標可以直接利用科技達到目的之外,其它目標如何才能夠實現?整個項目交付的內容是什么?范圍在那里?
要把這個項目完成后交付,單依靠技術人員的思維明顯不夠。所以我們組合了一個工作小組,其中包括金融零售業務的分行負責人,數名老客戶,及業務分析師。依據每一個項目的交付目標進行頭腦風暴,利用WBS的方法一步一步進行分析,從老客戶的那里我們開始知道他們希望銀行提供那些服務才能夠讓他們感覺滿意,才能夠讓他們不會考慮去其它銀行儲存或處理資產;從業務負責人那里理解他們如何能夠透過那些信息找尋商機,開展新業務或強化服務以滿足客戶的要求,從其它財務管理或投資管理的負責人那里知道如何才能夠讓客戶的儲存和資產能夠帶來更大的回報,從這個過程中我們終找出項目的交付物定義,并獲得管理層的確認。整個過程建立了項目組件分拆的初步模型,當時稱為項目結構分解(Project Breakdown Structure, PBS),把項目的每一個目標分解為交付的模塊,讓我們能夠按照模塊的組合提供整體解決方案。經過這些年的應用及改善,后成為所描述的項目組件分拆法(Project Component Decomposition Method, PCDM)。的高級軟件技術人員必須放棄過去單純的科技應用方法,必須改變思維,考慮如何能夠利用科技的應用帶來任何價值或效益,才能夠把握信息化時代的軟件要求。