敏捷開發(fā)在慧揚健康的實踐
敏捷開發(fā)以歷史標志性事件“敏捷宣言的宣告”作為敏捷開發(fā)思想的開端,至今已過去整整二十年。在這二十年間,各種敏捷開發(fā)思想的實踐方法如雨后春筍般涌現(xiàn),例如,除了常見的Scrum、Kanban、XP,還有Lean startup、Iterative等方法。敏捷開發(fā)的思想也從軟件工程領域不斷向其他領域滲透,在世界范圍內(nèi)逐步形成了主流開發(fā)方法。據(jù)最近做的一份統(tǒng)計報告指出,94%的受訪者表示他們的企業(yè)正在實踐敏捷,65%的企業(yè)擁有豐富的敏捷實踐經(jīng)驗,實施敏捷超過3年。52%的受訪者表示他們的企業(yè)有一半以上的團隊在應用敏捷實踐。
然而,敏捷開發(fā)思維卻似乎在醫(yī)療信息界似乎水土不服,鮮有聽聞行業(yè)內(nèi)企業(yè)采用這種已經(jīng)占據(jù)主流地位的開發(fā)方法。與之相對的是,仍有大量醫(yī)療信息企業(yè)采用“瀑布式+ 現(xiàn)場開發(fā)”這種慢慢被邊緣化的“非主流”的開發(fā)方法。眾所周知,項目開發(fā)周期過長、開發(fā)效率低下、采用的技術(shù)老舊在傳統(tǒng)的醫(yī)療信息行業(yè)已經(jīng)成為一種“通病”。醫(yī)療信息行業(yè)難以采用敏捷開發(fā)模式。
雖然現(xiàn)在互聯(lián)網(wǎng)思維不斷刷新著新一代年輕人的觀念,但由于信息化結(jié)合傳統(tǒng)醫(yī)療行業(yè)的時間較晚,再加上醫(yī)療自身對系統(tǒng)的風險要求,行業(yè)用戶(主要是醫(yī)院)仍是一個相對“保守”的群體,對于新事物的接受程度低于很多“ToC”行業(yè)。從這個角度看,醫(yī)療跟金融這兩個不相關的行業(yè)有著極高的相似度。極少有用戶愿意充當“白老鼠”去嘗試未有成功案例的產(chǎn)品。一家剛進入到這個行業(yè)的公司在起步階段將會面對重重困難。新產(chǎn)品的原型開發(fā)在本行業(yè)內(nèi)非常重要,甚至可以講,沒有產(chǎn)品原型就沒有市場。而在其他行業(yè),原型開發(fā)可能只是一種令開發(fā)人員清晰理解產(chǎn)品設計的輔助工具,地位不可同日而語。
首先,為了加快系統(tǒng)原型開發(fā)和及時響應客戶的系統(tǒng)需求,慧揚健康將敏捷開發(fā)思想引入到原型開發(fā),將原型開發(fā)視作系統(tǒng)開發(fā)過程中必不可少的一個環(huán)節(jié)。在具體實踐上,慧揚健康以一到二周(視產(chǎn)品設計復雜度而定)為一個迭代周期,前端開發(fā)人員必須在每個周期內(nèi)完成產(chǎn)品管理部交付的設計稿。頁面展示的數(shù)據(jù)不能隨意設定而要符合實際使用情況,最終的目的是為了在給客戶演示時,能讓客戶真實地體會到系統(tǒng)實際使用場景。在每個周期結(jié)束時,慧揚健康會邀請到相關設計人員和熟悉該業(yè)務領域的公司內(nèi)/外部專家對原型進行審查,務求系統(tǒng)的功能性和非功能性的細節(jié)實現(xiàn)能夠完全滿足客戶的需求。
在原型設計/開發(fā)迭代階段,后端開發(fā)人員和測試人員也會受邀參加原型評審會。一方面可以幫助開發(fā)和測試人員熟悉系統(tǒng)使用操作,深刻理解系統(tǒng)運作邏輯,對后續(xù)開發(fā)和編寫測試用例帶來極大的便利;另一方面,后端開發(fā)人員也能從業(yè)務后臺的邏輯對原型設計提出修改意見。在這個階段,后端開發(fā)速度并不需要跟上原型開發(fā)的進度。
當給客戶演示系統(tǒng)過后,慧揚健康還會根據(jù)客戶提出的修改意見對原型修正直到客戶需求得到滿足為止。這樣做的優(yōu)勢在于,修改原型的效率比修改真實系統(tǒng)要高得多,這也意味著我們能夠避免在系統(tǒng)上線階段耗費大量人力從系統(tǒng)各個方面進行調(diào)整,從而提高整體開發(fā)效率。
其次,提到敏捷開發(fā)就不得不提及DevOps工具棧。相對于瀑布開發(fā)模式,敏捷開發(fā)過程的一個基本原則就是以更快的頻率交付最小化可用的軟件。在敏捷的目標里,最明顯的是在每個Sprint的迭代周期末尾,都具備可以交付的功能。在傳統(tǒng)的瀑布開發(fā)模式中,部署的高頻率經(jīng)常會導致部署堆積在IT運維的面前。DevOps和敏捷軟件開發(fā)是相輔相成的,因為它拓展和完善了持續(xù)集成和發(fā)布流程,因此可以確保代碼是生產(chǎn)上可用,并且確實能給客戶帶來價值。調(diào)查顯示,74%的受訪者表示他們正在實施或計劃實施DevOps。DevOps在組織中的認可度和接受度繼續(xù)增長,在目前的調(diào)查中,75%的受訪者表示DevOps對他們的組織很重要或非常重要,只有9%的人認為DevOps不重要。
DevOps有助于提升軟件交付的頻率和可靠性,同時減少生產(chǎn)環(huán)境的缺陷。加速軟件交付和提升質(zhì)量被認為是DevOps轉(zhuǎn)型成功的首要衡量標準。調(diào)查顯示,有67%的受訪者表示加速軟件交付是衡量DevOps成功的指標,61%的受訪者選擇了提升質(zhì)量。
目前慧揚健康已經(jīng)逐步引入JIRA、Gitlab、Jenkins、Sonarqube、Checkmarx、Nexus、Ansible、Docker、K8S等等DevOps工具。目標是在年底前,要求所有研發(fā)部門都要盡可能使用以上工具,尤其是使用Jenkins建立部門內(nèi)部的持續(xù)集成pipeline(管道),打通系統(tǒng)從代碼到測試環(huán)境甚至是生產(chǎn)環(huán)境的自動流水線。
同時,慧揚健康也在積極和客戶磋商,力求在客戶的局域網(wǎng)內(nèi)建立UAT(UserAcceptanceTest,用戶接受度測試)環(huán)境,使得UAT測試盡可能接近實際生產(chǎn)環(huán)境,從而令測試更趨真實,務求盡可能減少系統(tǒng)上線時遇到的問題。
以上兩點是慧揚健康當前積極在傳統(tǒng)醫(yī)療信息行業(yè)引入敏捷開發(fā)模式的主要手段。當然,我們還會進一步推廣敏捷開發(fā)思想,深化敏捷開發(fā)的細節(jié)設計。例如,利用JIRA建立產(chǎn)品需求Backlog,細化UserStory(用戶故事),整合JIRA、Gitlab和Jenkins,打造完善的系統(tǒng)持續(xù)集成/持續(xù)部署流程等等任務。
對標互聯(lián)網(wǎng)行業(yè),我們要做的事情還有很多,醫(yī)療信息行業(yè)的改革任重道遠。隨著越來越多企業(yè)加入到這片藍海市場,行業(yè)的改革勢在必行。人無遠慮,必有近憂。凡事先行一步,才能在這個行業(yè)立于不敗之地。