軟體專案管理(CMMI成熟度)實踐——之決策分析(1)
決策分析與解決方案(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月 肖永威
相關文章
- 軟體專案管理(CMMI成熟度)實踐——之決策分析(2)專案管理
- 軟體專案管理(CMMI成熟度)實踐——之決策分析(3)專案管理
- 軟體專案管理實踐(#0)專案管理
- CMMI與Scrum實踐之思考-大專案規劃的實踐探討Scrum
- 關於實踐CMMI高成熟度等級的實踐步驟
- 軟體專案管理實踐:專案成功的關鍵是什麼?專案管理
- 專案管理軟體之範圍管理專案管理
- 軟體專案的“管理之癢”
- 專案管理基礎與實踐(1)專案管理
- 專案管理軟體的應用分析專案管理
- 簡單分析軟體專案成本管理
- 分析如何使用專案管理軟體管理軟體開發團隊專案管理
- 《軟體工程》第2次作業(1、個人專案實踐)軟體工程
- 個人專案管理軟體解決方案專案管理
- 軟體專案管理之文件化程式專案管理
- 軟體專案的“管理之癢”(轉)
- 軟體專案需求開發過程實踐之軟體需求說明書
- 對軟體專案管理的探討(1)專案管理
- 軟體專案管理流程分析與設計專案管理
- 軟體專案管理FollowMe_專案整體管理專案管理
- 專案管理軟體可以解決什麼專案管理
- 軟體專案管理之系統思考(轉)專案管理
- 機器學習之決策樹原理和sklearn實踐機器學習
- 專案外包軟體專案管理之我見(轉)專案管理
- 開源專案管理軟體有哪些?分享7個實用開源專案管理軟體專案管理
- 軟體專案管理(CMM)經驗談(1) (轉)專案管理
- 軟體專案管理(CMM)經驗談(1)(轉)專案管理
- 對軟體專案管理的探討(1)(轉)專案管理
- 軟體專案管理常見問題分析(轉)專案管理
- 做好軟體專案管理的要點分析(轉)專案管理
- 分析IT軟體研發公司用什麼專案管理軟體好?專案管理
- 軟體專案管理 9.2.軟體專案配置管理過程專案管理
- 軟體專案管理的實質(一)(轉)專案管理
- 軟體專案管理的實質(三)(轉)專案管理
- 軟體專案管理Follow Me--軟體專案管理基礎知識專案管理
- 亞馬遜使用架構決策記錄來簡化軟體開發專案的技術決策 - AWS亞馬遜架構
- 軟體需求最佳實踐(1)
- 國內軟體工程專案的外包管理分析軟體工程