文/韓超
微簡開發方法簡稱微簡法,它遵循敏捷開發過程框架,為了快速響應客戶需求并提升產品質量,提出了可用型原型工具的概念,引導整個開發過程。它具有以下的特點:

圖1:微簡開發過程框架
(1)優化需求過程。以界面為主與用戶進行進行溝通,準確把控需求。
(2)迭代開發時期短。編碼測試過程中,通過眾人參與、公開評審的方式,將開發工作量化,從而使編碼過程管理變得透明、可控,極大的提高了開發效率。
(3)強化單元測試過程。該方法并提倡在一定范圍內采用測試驅動方式進行開發,要求搭建持續集成環境,每天自動構建可運行系統,邊編碼、邊測試、邊體驗。
(4)開發過程控制變得簡單、清晰。編碼測試過程中主要通過開發任務完成情況、超級需求人員體驗系統、用戶體驗系統進行進度控制。微簡開發過程框架如圖1所示。
為了配合微簡法的使用,在開發過程中使用可用型原型工具vjpage ,該工具可以極快的速度搭建界面原型,提前看到結果使需求的變更降到最低。

圖2:Vjpage 開發界面

圖3:微簡開發方法業務流程
為了使甲方和軟件公司進行高效溝通,微簡提出“微簡開發方法”的同時,也提出了“微簡甲方原則”,前者提供給軟件公司,后者提供給甲方。“微簡甲方原則”是第一套專門為甲方制定的開發管理準則,以下是“微簡甲方原則”的具體內容:
(1)溝通全程圍繞系統界面,通過界面模擬來體驗、試用,并提出修改意見。
(2)應提出切實的技術保障、人員配置,保證產品能實際使用。
(3)提出的系統功能要簡單、實用,減少增加工作量的功能,盡量努力做到需求不變。
(4)需軟件公司在設計過程中思索對產品的想法,并對甲方進行半詢問式引導。
2.2.1 角色設置
在微簡法中擁有一個特殊角色:超級需求人員。該角色在需求階段可替代項目經理,進行需求定義和計劃制定;在設計和編碼階段可替代前端工程師,運用多框架前端頁面設計工具vjpage進行頁面制作;在測試階段,負責檢查代碼的注釋,并配合測試人員確定每個細節;在發布階段,演示并發布可用系統供用戶體驗,并確定下個周期的開發任務。每個項目中至少必須有一個超級需求人員,若具備后臺開發能力的,可替代后臺程序員進行編碼實現,甚至可配合運維工程師進行數據庫的設計。
2.2.2 開發工具
微簡法用微簡頁面設計系統vjpage 作為開發工具,可配合Hbuilder進行深入開發,該系統支持Html5、Ext4.1、MUI等標準框架,可嵌入瀏覽器或后臺腳本。該開發工具采用敏捷開發中的草圖板(Sketch boards),其原理為:首先在圖紙上完成對整個產品的交互設汁,將交互設計稿交于相關人員進行審查,之后可完成在此基礎上的進一步工作。草圖版的優點是,快速高效的將設計方案可視化,用戶看到直觀界面之后,會主動、快速、準確的提出需求,提高了軟件質量和用戶滿意度。Vjpage 開發界面如圖2所示。
2.2.3 開發流程
在一個軟件的開發過程中,需要強調軟件的開發速度和用戶的需求滿足程度,微簡開發方法也需要與之相適應的開發過程模型。微簡開發方法業務流程如圖3所示。
(1)需求階段。項目經理制定項目計劃,并組織召開總體計劃會議。項目計劃是粗略的、迭代的整體計劃,包括大的功能劃分列表,以及各部分的需求完成時間、編碼測試完成時間。
總體計劃會議之后定義需求會議。內容包括對上個周期開發的系統進行演示和講解,并匯報工作成果;整理出需求清單,確定下個周期的需求工作計劃。
需求會議之后要召開計劃會議,確定本周期的開發任務。應根據界面功能的劃分列出開發清單。制定后進入第一個發布周期。每個月為一個發布周期,也可以是2-4周。
(2)設計/編碼階段。頁面制作的前端框架已由vjpage完成,超級需求人員應參與前端頁面邏輯設計和后端系統架構設計,功能模塊的劃分和數據庫設計等。
在編碼實現中,可配合后臺系統接口快速完成具體應用體驗,進行需求檢查和定義需求測試,生成代碼安裝檢查表和構建測試需求。
(3)測試階段。編碼測試過程中主要通過開發任務完成情況、超級需求人員體驗系統、用戶體驗系統進行進度控制。程序員必須在每次提交代碼時運行完整的單元測試代碼;而超級需求人員代表用戶進行體驗,邊編碼、邊測試、邊體驗。經過測試的產品在與客戶進行演示和交付后即可部署到生成環境中投入使用。
(4)發布階段。每個發布周期結束時應舉行評審會,向用戶演示本周期的開發結果,發布可用系統供用戶體驗。直到系統完成并部署到運營環境。
每個迭代周期結束后,根據測試結果、用戶體驗和新需求等更新開發版本,進行下一輪的開發。
軟件公司采用微簡法作為大型信息化項目的開發方法,可更好的適應用戶業務需求的變化。對于中小型項目,有了敏捷開發平臺vjpage的支持,信息化軟件的開發難度有限降低,讓甲方也可進行簡單的自主開發。
聯通作為第一家混改的運營商,借鑒互聯網思維采用敏捷方法,不僅能快速滿足日益增長的營業廳業務支撐需求,進而提升用戶體驗度和滿意度,同時也能使開發團隊快速學習、減少外包成本、充分發揮自身核心競爭力和增強企業對環境的應變能力。