南京都昌信息科技有限公司创始人 袁永福
几乎所有的医疗信息化(HIT)公司都遇到严重的软件版本“分叉”问题。这是一个老大难又普遍存在问题,是吞噬公司利润的黑洞,急需解决。
HIT公司大多数针对项目而开发软件。首先,拿一个标杆客户用的软件产品作为一个母版本A1;然后,复制到另外的一个客户B处进行开发,在母版本的基础上修改代码来适应新的客户,生成版本B1;再往后,经过长期维护而得到B2、B3、B4等一系列版本。同时又做客户C而得到C1、C2、C3、C4版本;做客户D而得到D1、D2、D3、D4版本。而最初的母版本经过后续维护也形成了A2、A3、A4、A5版本。如此反复,经年累月,公司就拥有了A多个系列的“分叉”版本。医疗软件公司的噩梦,从此也就开始了。
所有的公司都有着做产品化软件的梦想,但大多难逃项目定制开发的宿命,且屡战屡败。
软件版本数量和时间成正比,和客户数正比。于是对于上升期的公司,版本数量是按平方数快速增长。当公司变大,拥有数百家客户,其源代码版本库就浩如烟海了。
人和猩猩的基因之间的差异只有2%,结果导致巨大的差别;而各个软件版本之间代码差异或许有10%,就意味着无法通用,需要多条线的单独维护。因此软件版本分叉问题是上到软件企业董事长、下到程序员都很厌烦的问题,它吞噬了公司大把的利润,浪费了很多人的青春和激情。软件公司虽竭尽全力但还是有客户因为感受不到公司的重视而心生抱怨。
基于如此深刻的教训警示,南京都昌公司的软件产品在研发中特别注重版本的管控,成为业界比较少有的完全通用化软件产品。我们的编辑器软件产品,从一开始就只有一个版本在维护,没有发生任何分叉。编辑器的用户需求其实也不简单,我们满足几百个客户提出的上千个功能需求的同时完全避免了版本分叉,这是其他公司所梦寐以求的。
“授人以鱼”的同时也“授人以渔”。我们向业界提供通用的编辑器软件,同时也进行技术输出。将我们几年摸索出来的实用技术方案进行整理和产品化,然后输出。输出介质就是“都昌HIT软件快速开发框架”(即“都昌赋能框架”)。这一产品旨在帮助HIT行业中最广大的开发组织,提高开发能力,从而提高盈利水平,改进客户体验。
项目型软件版本分叉问题,是我们重点关注的问题。我们提供了一系列技术方案套餐帮助HIT公司改善这个问题。这个技术方案套餐兼顾效果和成本。让HIT公司在不显著增加开发人员技术水平的情况下,显著提高软件的技术水平。从软件版本分叉的虎口中夺回公司的利润和用户满意度。
一个葫芦娃只能被妖精欺负,七个葫芦娃合体就能欺负妖精。软件版本分叉是一个大妖精,单个技术方案无法降住这个妖精,此时需要采用技术方案套餐。目前这套技术方案套餐主要有:
1.“神器”电子病历编辑器控件。经过这么多年的发展,我们的电子病历编辑器已经不仅仅用于电子病历的开发,还延伸到护理系统、门急诊系统、医技系统、影像系统、疾控系统等HIT行业中大多数软件的研发过程中,成为开发HIT软件必不可少的“神器”。
2.C/S软件的“断骨增高”技术方案。可以以较低的成本将传统C/S软件快速改造成C/S+WEB服务的模式。使用时简单实用。无需做大量的配置工作,部署、实施简单。减少版本分叉导致的不良后果。
3.SQL语句的“七十二变”技术方案。SQL语句是HIT软件的核心信息,也是造成版本分叉的重要根源之一。这个技术方案用于提供运行时快速准确的修改SQL语句的功能,将程序代码的修改转换为实施维护工作,也是制作数据接口的利器。并且让医院信息科也能参与进去,提高客户的存在感。
4.“四两拨千斤”的脚本引擎技术方案。业务流程的差异化也是导致软件版本分叉的重要根源之一。这个技术方案提供一种通用的脚本引擎功能,使用JavaScript技术来影响业务流程的路由和步进。将固化的流程快速改造成活动的流程,将流程差异化消灭在现场,减少软件版本分叉的情况。同时基于动态编译技术,提供高性能。实现快速设置、快速运行。
5.“有容乃大”的虚拟文件系统。HIT系统中存贮着大量的文件数据。包括病历文件、配置文件、图片库、检查检验报告等等。同时存在着OS文件系统、FTP、数据库字段、mongoDB等各类存储介质。而虚拟文件系统将这些差异统统抚平,以一种通用的开发接口模型提供给上层软件模块。而项目现场以自由配置的方式灵活适应具体的存储模式。使得软件快速设置、快速适应。减少软件版本分叉的情况。
未来会发布更多配套技术方案,形成医疗项目软件生命周期闭环,,而且还会发表一系列的文章来详细说明其技术细节。
天下武功,无坚不破,唯快不破。这些技术方案的核心就是“快速”,快速开发、快速配置、快速运行。
只有多方位全面立体地快速发力才能印封住软件版本分叉这个妖精,使得项目实施起来干脆利落;让软件企业的董事长和程序员们能定下心来,满怀希望地奔赴更多的客户现场。这就是南京都昌信息科技有限公司正在努力实现的“小目标”。