敏捷开发在慧扬健康的实践

敏捷开发在慧扬健康的实践
2022年06月29日 10:47 倒小白

敏捷开发以历史标志性事件“敏捷宣言的宣告”作为敏捷开发思想的开端,至今已过去整整二十年。在这二十年间,各种敏捷开发思想的实践方法如雨后春笋般涌现,例如,除了常见的Scrum、Kanban、XP,还有Lean startup、Iterative等方法。敏捷开发的思想也从软件工程领域不断向其他领域渗透,在世界范围内逐步形成了主流开发方法。据最近做的一份统计报告指出,94%的受访者表示他们的企业正在实践敏捷,65%的企业拥有丰富的敏捷实践经验,实施敏捷超过3年。52%的受访者表示他们的企业有一半以上的团队在应用敏捷实践。

然而,敏捷开发思维却似乎在医疗信息界似乎水土不服,鲜有听闻行业内企业采用这种已经占据主流地位的开发方法。与之相对的是,仍有大量医疗信息企业采用“瀑布式+现场开发”这种慢慢被边缘化的“非主流”的开发方法。众所周知,项目开发周期过长、开发效率低下、采用的技术老旧在传统的医疗信息行业已经成为一种“通病”。医疗信息行业难以采用敏捷开发模式。

虽然现在互联网思维不断刷新着新一代年轻人的观念,但由于信息化结合传统医疗行业的时间较晚,再加上医疗自身对系统的风险要求,行业用户(主要是医院)仍是一个相对“保守”的群体,对于新事物的接受程度低于很多“ToC”行业。从这个角度看,医疗跟金融这两个不相关的行业有着极高的相似度。极少有用户愿意充当“白老鼠”去尝试未有成功案例的产品。一家刚进入到这个行业的公司在起步阶段将会面对重重困难。新产品的原型开发在本行业内非常重要,甚至可以讲,没有产品原型就没有市场。而在其他行业,原型开发可能只是一种令开发人员清晰理解产品设计的辅助工具,地位不可同日而语。

首先,为了加快系统原型开发和及时响应客户的系统需求,慧扬健康将敏捷开发思想引入到原型开发,将原型开发视作系统开发过程中必不可少的一个环节。在具体实践上,慧扬健康以一到二周(视产品设计复杂度而定)为一个迭代周期,前端开发人员必须在每个周期内完成产品管理部交付的设计稿。页面展示的数据不能随意设定而要符合实际使用情况,最终的目的是为了在给客户演示时,能让客户真实地体会到系统实际使用场景。在每个周期结束时,慧扬健康会邀请到相关设计人员和熟悉该业务领域的公司内/外部专家对原型进行审查,务求系统的功能性和非功能性的细节实现能够完全满足客户的需求。

在原型设计/开发迭代阶段,后端开发人员和测试人员也会受邀参加原型评审会。一方面可以帮助开发和测试人员熟悉系统使用操作,深刻理解系统运作逻辑,对后续开发和编写测试用例带来极大的便利;另一方面,后端开发人员也能从业务后台的逻辑对原型设计提出修改意见。在这个阶段,后端开发速度并不需要跟上原型开发的进度。

当给客户演示系统过后,慧扬健康还会根据客户提出的修改意见对原型修正直到客户需求得到满足为止。这样做的优势在于,修改原型的效率比修改真实系统要高得多,这也意味着我们能够避免在系统上线阶段耗费大量人力从系统各个方面进行调整,从而提高整体开发效率。

其次,提到敏捷开发就不得不提及DevOps工具栈。相对于瀑布开发模式,敏捷开发过程的一个基本原则就是以更快的频率交付最小化可用的软件。在敏捷的目标里,最明显的是在每个Sprint的迭代周期末尾,都具备可以交付的功能。在传统的瀑布开发模式中,部署的高频率经常会导致部署堆积在IT运维的面前。DevOps和敏捷软件开发是相辅相成的,因为它拓展和完善了持续集成和发布流程,因此可以确保代码是生产上可用,并且确实能给客户带来价值。调查显示,74%的受访者表示他们正在实施或计划实施DevOps。DevOps在组织中的认可度和接受度继续增长,在目前的调查中,75%的受访者表示DevOps对他们的组织很重要或非常重要,只有9%的人认为DevOps不重要。

DevOps有助于提升软件交付的频率和可靠性,同时减少生产环境的缺陷。加速软件交付和提升质量被认为是DevOps转型成功的首要衡量标准。调查显示,有67%的受访者表示加速软件交付是衡量DevOps成功的指标,61%的受访者选择了提升质量。

目前慧扬健康已经逐步引入JIRA、Gitlab、Jenkins、Sonarqube、Checkmarx、Nexus、Ansible、Docker、K8S等等DevOps工具。目标是在年底前,要求所有研发部门都要尽可能使用以上工具,尤其是使用Jenkins建立部门内部的持续集成pipeline(管道),打通系统从代码到测试环境甚至是生产环境的自动流水线。

同时,慧扬健康也在积极和客户磋商,力求在客户的局域网内建立UAT(UserAcceptanceTest,用户接受度测试)环境,使得UAT测试尽可能接近实际生产环境,从而令测试更趋真实,务求尽可能减少系统上线时遇到的问题。

以上两点是慧扬健康当前积极在传统医疗信息行业引入敏捷开发模式的主要手段。当然,我们还会进一步推广敏捷开发思想,深化敏捷开发的细节设计。例如,利用JIRA建立产品需求Backlog,细化UserStory(用户故事),整合JIRA、Gitlab和Jenkins,打造完善的系统持续集成/持续部署流程等等任务。

对标互联网行业,我们要做的事情还有很多,医疗信息行业的改革任重道远。随着越来越多企业加入到这片蓝海市场,行业的改革势在必行。人无远虑,必有近忧。凡事先行一步,才能在这个行业立于不败之地。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部