軟體專案管理(CMMI成熟度)實踐——之決策分析(1)

肖永威發表於2015-01-18

        決策分析與解決方案(Decision Analysis and Resolution, DAR)的目的,在於利用正式的評估過程,依據已建立的準則,評估已識別的多種備選方案,以分析可能的決策,確定最佳解決方案。正式的決策流程減少了決策的主觀性,提高了決策的科學性。

        在專案實施過程中,技術方案選型往往是比較揪心的一個過程,需要在滿足需求、技術先進性、成熟度、成本、人力、工期等方面進行平衡,而且這些方案是專案干係人和專案組成員在頭腦風暴會議經上,通過快速互動、刺激提出有創意的備選技術解決方案。每個方案都有意義,或者說,多數的方案都是能解決問題,只是成本、時間、人力等緯度的目標一致性需要統一衡量。

        所以提出方案的人,都會認為自己的方案比較優,這樣矛盾就產生了,需要一套決策分析管理過程來決策選擇哪個方案。

        在本專案的架構設計階段,技術人員提出多套備選前端開發技術解決方案,對於這樣產生的決策分析,表面上看是選擇性決策,而通過深入分析,發現隱含多項技術組合結構決策,為了加快決策進度,抓住核心,把多項技術固化下來,下面介紹此決策分析實踐。

1、系統總體技術方案介紹

        為了應對企事業面對的系統技術和業務改革挑戰,我們要建設的PaaS辦公能力平臺應超越傳統PaaS範疇,在業務能力和技術能力元件上有所加強,形成更有針對性的“厚PaaS”平臺。通過這個平臺,我們可以統一技術框架、統一流程管理、提高資料一致性、提高資源利用率、提高服務和技術的標準化、簡化上層應用的開發和運維。

        

        目標架構按雲端計算設計分為四層:外包資源(IaaS)層、業務運營PaaS平臺層、軟體服務層、複合應用層。最終通過門戶統一接入。

        (1)外部資源層:目標架構搭建在企業內部虛擬化資源池上,由虛擬化資源池提供裝置資源(虛擬機器),以及以此所部署的Oracle、MySQL、MongoDB資料庫。

        (2)業務運營PaaS平臺層:基礎平臺層採用Opentext Cordys BOP4 平臺,此平臺是企業內部辦公系統雲端計算PaaS平臺,為企業資訊化提供統一的開發、運維、運營服務,並可以提供檔案服務、報表服務、審批單框架服務、任務服務(是與雲門戶統一待辦相關的服務)、主資料服務、流程服務、表單服務、使用者組織機構服務、監控服務、介面服務、文件服務等。

        注:這些服務是在原生服務基礎上進行的本地化,但是不會改造產品本身,特殊個性化仍用原生服務。系統架構是在傳統PaaS平臺基礎上,提供貼近業務的專業PaaS服務:業務能力元件和技術能力元件。

        (3)軟體服務層:在PaaS平臺上,開發軟體服務,在應用服務設計時,合理拆分為易組合的軟體元件服務,採用適配技術,以滿足快速開發、實施的需求。整體上規劃出公文管理、通用辦公、流程管理、運維管理四大部分。參考租戶模型,按省公司、地市、虛擬組織及應用模式進行部署。服務中介軟體使用Cordys、Apache HTTP、Java EE(Tomcat/JBoss)。

        (4)複合應用:就是展現使用者介面,按目標應用複合軟體元件服務,分別為不同使用者提供不同展現介面。介面技術可使用Cordys XForm、HTML/HTML5、JavaScript、JSP等。


2、專案關鍵資訊

2.1、背景

        使用者選型BPM產品為Cordys,並且,使用者使用Cordys產品已經5年了。原技術實現中未使用JavaEE技術,Web服務使用Cordys產品自身所整合的Apache Http,前端開發技術屬於富客戶端Web2.0。

        前幾年,我們曾經對原系統前端開發技術進行優化,以克服富客戶端技術對終端裝置要求高的問題,創新的採用輕量技術實現在低配置終端和伺服器上流暢的、穩定的執行系統,主要採用的技術有:

        (1)在富客戶端(XForm)技術框架內,嵌入HTML輕量介面,提高低配置終端應用效能,並美化介面;

        (2)合併操作介面的Soap請求(Web Service),減少網路上資料互動量和資料傳輸量,降低對網路頻寬壓力,也減輕了終端網路壓力;

        (3)資料庫分割槽優化,避開儲存的熱盤,也對資料庫SQL進行優化,以及資料解耦。

        現如今方案是升級BPM產品,不僅要提供流程服務,還要做為PaaS平臺使用。使用者的目標是通過新建流程管理平臺,支援企業流程再造,支撐業務快速實施,並提供較好流程監督與審計的能力。

2.2、專案實施計劃關鍵資訊

        由於專案的需求是部分明確,按專案量化管理(CMMI高成熟度)模型,建議本專案採用增量開發模型。專案實施計劃關鍵資訊如下:

        (1)開發工期5個月;

        (2)投資預算為120人月;

        (3)現有開發人力及掌握技術情況(專案經理及需求、測試人員除外),計劃組織成22人專案團隊。

        

        (4)技術成熟度方面,Cordys與JavaEE平臺都比較成熟;

        (5)技術風險:

    • Cordys平臺有廠家現場技術支援;
    • 在JavaEE平臺上無高併發叢集實施經驗。


2.3、前端開發技術方案選型思路

        做為專案經理,希望專案按計劃實施,並因此嚴格掌控專案目標。目標的達成要得到有效管控,這時遇到前端開發技術方案選型的問題。我的要求是用最簡潔的方案,花費最少的成本和時間,能達到使用者要求就是好方案。

        其實目標的達成,還是有些思路可以遵循的,也是以前專案經驗教訓和技術進步所恩賜的,例如:

        (1)解耦:業務、資料解耦,也就是說在將來系統建成後,如果有修改或新需求,大多數情況下是可操作的,而且花費少,不影響現有的業務和資料,因此,推薦系統使用SOA技術,以及元件化和適配技術;

        (2)採用Restful規範(資料傳輸採用JSON格式),是針對Soap XML協議的,以此來減少網路資料傳輸量,降低客戶端解析資料壓力,也可降低伺服器資料埠吞吐量;

        (3)儘量合理使用Cordys平臺提供的能力;

        (4)選擇技術成熟度較高的方案,開發人員都會用或易掌握的技術;

        (5)專案組主要成員需要達成一致。

        表單式業務處理,也就是前端技術架構層次為多層架構,也是滿足運維人員靈活配置、元件化結構,如下圖所示。

        

       第一層為介面展現層,是業務資料輸入、展現的終端介面,為傳統View;

       第二層為業務邏輯處理層,用於元件化裝配業務;

       第三層為資料適配層,用於表單資料輸入、輸出通過資料項定義來對應;

       第四層為資料操作處理Model層,為傳統Model,而Model與View的對應是通過多層配置適配轉換出來的,也就是說傳統模型依賴關係在此架構下不適用。


3、決策分析

3.1、候選方案列表

        (1)HTML

        前端採用HTML+JavaScript+CSS開發技術與Apache HTTP伺服器,後端服務為Cordys BOP 4平臺,提供服務元件;

        優點:不依賴JavaEE容器,直接使用Cordys整合Apache HTTP服務,系統整合架構相對簡潔,有實施經驗;

        劣勢:缺少可用開源框架,開發效率較低,缺乏JavaScript開發人員。

        (2)JSP

        前端採用HTML+JavaScript+CSS+JSP開發技術自主開發與Apache Tomcat + HTTP伺服器,後端服務為Cordys BOP 4平臺,提供服務元件;

        優點:現成開源框架較多,能大幅提高開發效率,而且JSP開發人力資源較豐富,降低對Cordys平臺的依賴;

        劣勢:系統依賴JavaEE容器,需要與Cordys平臺整合,缺乏基於JavaEE環境高併發應用實施經驗。

        (3)XForm+HTML

        完全基於Cordys BOP 4平臺,前端介面少量採用HTML+JavaScript+CSS開發技術與Apache HTTP伺服器;

        優點:與候選方案(1)類似,並可充分利用Cordys平臺整合功能;

        劣勢:缺少Cordys開發人員,用HTML部分開發效率低,缺乏JavaScript開發人員,並且,使用XForm開發的那部分功能可能存在終端效能問題。

        綜上所述,3個候選方案很難取捨,因此提出決策分析計劃,依據CMMI成熟度模型,決策分析技術架構選型方案。

3.2、決策分析計劃



       注:評估方法採用Delphi法。


3.3、評估準則列表


        評估準則選擇,首先依據專案管理的五個過程和九大知識領域,再依據軟體工程進行選擇,這裡評估準則所選擇是依據公司CMMI成熟度模型。

        (1)滿足需求

        需求有業務需求,也有軟體需求,之所以把滿足需求列在首位,是因為軟體需求要求的:一是終端效能需求、二是介面美觀需求、三是提供快速開發能力需求(含運維支撐能力)。

        (2)投資成本

        投資成本在這裡具體體現開發效率、人力投入來體現。評分標準是:開發效率及相關人員級別,也就是說低階別技術人員開發效率高,投資成本就能得高分。

        (3)技術成熟可靠

        技術成熟可靠是指所使用的技術廣泛使用,系統穩定(很少當機),業界有成功案例,公司有成功實施案例得高分。

        (4)技術風險

        技術風險主要是考慮是否有廠家技術支援,出現技術難題能快速解決得高分。

        (5)人力資源

        人力資源是指所採用的技術,公司能提供充足的資源,或通過其他合作渠道獲得足夠的資源。


        依據上述準備,下週進行決策分析評估,評估完成後,我再分享結果。有不足之處,歡迎分享、反饋。


參考:

(1)管理支撐辦公系統技術架構選型及相關技術應用範圍、方法分析2014年4月 肖永威

(2)管理支撐辦公系統技術架構選型對比討論(J2EE與SOA對比)2014年4月 肖永威

相關文章