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