用户自开发的特点是系统开发过程完全由用户控制,目标、需求和进度可不断修正,系统的适应性很好,开发过程也为用户培养了人才。缺点是用户要有能力保证开发所需的各种资源,特别是人力资源,能力上要能跟上信息技术发展的水平,薪酬上要与IT 行业匹配,成本较高。委托开发一般是用户需要定制开发的特殊系统,或是开发应用于全新业务领域的系统,委托开发的系统是量身定制,系统完全符合用户需求,但开发成本高,需求管理难。当用户有能力参与部分开发过程;或系统业务对开发公司是完全陌生的,需要用户的全力协助;或者部分系统涉及用户知识产权等情况,会选择合作开发。在卫生信息化的初期,用户多选择自开发、委托开发或合作开发模式。今天有些系统已经进入相对成熟期,如医院管理信息系统中的门急诊、住院、药品等主要模块,医院临床信息系统中的LIS、PACS 等,现在更多的用户选择购买软件包,购买的同时也会有客户化的修改,或者部分新功能的开发。这些系统现阶段的开发主要在新技术应用、多系统集成、电子病历应用、中高层管理、临床辅助诊疗等方面。
系统的开发过程是用户有目的地改变自我的过程,信息系统是用户业务和管理创新的体现。随着环境的变化、用户自身的发展等各种因素,信息系统也要随之变化,开发系统的专业公司必须有能力支持系统变化的需求,随着用户一起发展。所以说,选择专业软件公司就是选择战略合作伙伴。
信息系统的开发主要有瀑布式和螺旋式两种方法。瀑布式也称为系统生命周期法,它有按部就班的步骤,遵循从整体到局部的原则,在初始阶段全面进行分析和设计,然后才进入开发和实施。瀑布式符合人们希望在充分认识系统的基础上,再进行软件开发的要求,以避免因认识不足导致系统设计缺陷。这一方法的问题是需求分析和系统设计长期停留在纸面上,这种虚幻的讨论不易深入、细致,用户很难想象未来系统实现的场景,开发方和用户方之间专业背景的差异,常常导致就阶段性结果很难达成一致意见,而拖延进度;在开发的过程中,目标、条件、需求可能不断变化;各个阶段由不同的团队负责,阶段交替环节可能有知识的流失。
螺旋式是一种周期循环的方法,其原则是从重点到次要,将整个开发过程划分为多个子过程,每个子过程完成的目标和任务是在上一个子过程结果基础上的深入和拓展,螺旋上升,直至达到系统的最终目标。这种方法的特点在于保证开发速度,随着对系统认识的不断深入和条件的变化,分阶段确定目标和任务,搁置在目前无法认识清楚的问题,或规避有利益冲突的风险,使开发过程不断有阶段性成果,用户能看到信息化的成效,有利于启发最终用户完整地认识系统,建立信息化的信心。其难点是整个开发过程的控制和如何确定下一个子过程的目标和任务。
实际开发过程往往是两种方法的结合,如在螺旋式的每个子过程中采用瀑布法,每个阶段都包含需求分析、系统开发、系统实施和验收,各个子过程任务的侧重点参照瀑布式的各步骤任务变化。
5.3.3需求管理
无论采取哪种开发模式,需求分析是开发的第一步。在需求分析之前,要进行系统的需求调研,深入了解现行的业务流程、管理方法,发现存在的问题,确定系统目标。需求分析是在需求调研的基础上,提出用信息技术解决问题的方案,设计基于信息系统的业务流程和管理方法。
用户与开发人员的充分沟通是进行需求分析的前提。与各类、各部门的业务人员、管理人员交谈,广泛、深入地了解他们的想法,帮助他们对现行业务进行梳理、归类,转化到在信息系统支持下的业务模式,并给予清晰、完整的描述,是完成需求分析的关键。
1)需求管理的问题
(1)需求超前:因为用户对信息化的投资、回报与发展的认识不足,需求与实施目标不符,或阶段性目标不明,或希望一步到位,盲目推进。信息知识和信息技术使用经验的缺乏,多数用户是先被动接受公司的系统,使用后立即提出改进需求。
(2)需求模糊:基于信息系统开展的业务模式和流程需要多方面的配合,不能在短时间内明确需求,或者要先在小范围内实验,然后再逐步改进。对一个涉及多部门,甚至跨行业、跨地域的复杂大系统,用户可能只熟悉自己的业务和管理范围,用户的需求可能是片面的。出于本专业岗位工作需要或个人利益的得失,可能是基于旧的工作模式。用户通常只能给出手工或现行的业务描述,不知道如何描述将手工业务模式转化到用信息技术支持;用户只能从业务角度提出需求,从信息技术角度的表达是模糊的。
(3)需求主观:系统实施可能使用户的日常工作内容、方式、数量甚至利益发生较大的变化,他们会带着抵触情绪表达需求,甚至隐瞒需求。新的业务模式设计需要多方协调配合,责、权、利可能要重新分配,产生用户之间的利益博弈,导致不同用户的需求表述可能完全不同。有的用户一味强调自己的特殊性,不愿意吸收系统带来的先进模式,或因为调整流程和模式去适应软件系统的难度较大,要求软件修改来适应自己,忽视了软件更改的工作量,以及是否会对系统架构带来不良影响。
2)需求管理的任务
需求产生于用户,需求表述很难在限定的时间和范围内完整全面地获得。一个软件系统的引进只代表着当前信息化的水平,一次项目的实施只是信息化过程中一个阶段性的工作。环境的改变、技术的演进和机构的发展等因素都会引发新的需求。用户在系统开发过程中受到信息技术的教育和启发,需求会逐步扩展和深入。需求是一个逐步演进、螺旋上升的过程,用户需求在整个开发过程中是不断发现、不断响应、不断提升的,所以,需求管理贯穿于整个信息化建设之中。
需求管理要控制不符合目标的需求。信息化是一个系统工程,“总体规划,分步实施”
是科学的建设原则,为每个阶段确定合适的建设目标,所有不符合阶段目标的需求应该被控制。例如:本期目标是新旧系统切换,应控制与系统切换不相适应的软件更改需求,只要不影响业务运作,就暂不修改,保证系统切换如期完成,待新系统稳定后再考虑。用户根据自身信息化发展的进程,控制适度的需求,能体现阶段性成果,增强信息化建设的信心。
需求管理要控制分散的需求。信息系统是面向机构的,不同专业公司的信息系统各有特色,一个系统很难同时满足所有部门和员工的要求;信息系统的实施涉及多个部门和员工,每个部门和员工都会从自我的角度提出对信息系统的需求;如对住院患者的欠费管理,财务部门要求欠费即停医嘱计费,医疗部门则不希望因欠费干扰正常治疗;这些需求矛盾可能影响到整体功能和实施进度。机构要收集梳理分散的需求,确定重点需求,控制非重点需求。
需求管理要屏蔽不合理的需求。信息化不是计算机化,是有计划、有目的改变机构的过程,信息化导致业务流程重组,打破了原来的责、权、利平衡,有可能引发各种不合理的需求。如药品实库存管理是医院信息系统实施中的难点,尤其在发药窗口,提出虚拟库存或非正常修改库存的需求很常见,考虑到软件测试和药品库存管理的工作量,这个需求只能在项目实施的试点或过渡期响应,否则等于医院默许药品流失。机构要根据业务流程的变化,控制不合理的需求,以信息系统的实施为契机,推行新的管理制度和要求,提升管理水平。
3)需求管理的方法
用户应以部门为单位组织收集、筛选和整理最终用户需求,以业务流程为主线进行评审,设计基于信息系统的工作流程和管理方式。
(1)需求采集:需求的来源是多方面的,软件问题、操作者抱怨、患者投诉、部门建议、各种会议等等,需求的采集不仅仅是收集,更重要的是识别。所以,需求采集要从粗到细。
粗是指从系统考察、系统测试、座谈会、实施培训、实施协调、管理制度制订等活动中采集需求;细是要定期召开专门会议,将粗的需求细化,转化为信息系统实现的业务模式和流程,进行描述和讨论,征求相关部门意见。
(2)需求整理:需求整理是需求分析综合的过程,要在文档化的基础上进行合理化、程序化和优化。记录每一个小问题和建议,定期讨论,由粗到细,从局部到整体,筛选合理成型的需求。与软件技术人员共同分析,设计软件实现方法和流程,与相关业务部门和人员讨论流程变动的配合问题,逐步优化需求。
(3)需求评审:需求评审应从下列四方面展开,直至相关部门签字认可,才能提交开发。
①目的:改正软件错误、简便操作、业务变更、建设性。
②级别:从项目实施目标来确定需求的轻、重、缓、急。
③工作量:满足需求的工作量,下列不同类别的需求可能导致工作量从小到大的差别:界面调整、流程变化、新功能开发、数据库底层更改、软件框架结构调整。
④综合平衡:综合考虑阶段目标、实施时间、投入资金、管理配合、人员培训等因素,决定是否响应需求,以及何时响应、如何响应。
(4)需求跟踪:需求在软件开发过程中可能因各种原因发生变化,应跟踪软件开发过程,测试软件功能,发现需求与软件实现的差距,及时沟通最终用户和开发人员,提高软件开发效率和质量。软件进入实施,现实环境的特殊性可能使软件运作或业务出现各种问题,要跟踪观察,发现问题,及时反馈调整。
4)不同阶段的需求管理方法
在信息化建设的不同阶段,用户需求不同,用户需求管理的方法也不同。在系统选择阶段,用户需求往往笼统、模糊、超前、不现实。应鼓励需求,以发现好的需求。在系统实施阶段,用户需求具体、细节、片面、只顾眼前。要控制需求,以保证实施进度。在系统维护阶段,用户需求是完善、优化、拓展的,要征集甄别需求,以完善系统,开发新的功能。
需求管理的最终目的是启发和引导用户不断产生新的需求。以门诊系统为例,已经从简单的挂号收费发药管理,发展出预约挂号、个人账户、双向转诊、客户关系管理等诸多功能。信息系统的实施引发的变革,每一位用户都被卷入其中,对他们的工作产生深刻的影响,迫使他们改变自己去适应信息系统下的工作环境,进而思考设计如何利用信息系统更好、更快地工作,这是信息化对用户教育的结果,也正是信息化引发的深层次变革——人的改变。
5.3.4实施管理
1)实施方法
系统实施主要有定时实施、并行实施、试点实施等方法。实施方法选择是否得当,对信息系统的应用成效有重大影响。
定点实施适用于必须在指定时间全面实施的系统,如医院门急诊挂号收费系统,为与医疗保险信息系统联接,必须在特定时间点进行实施或新旧系统切换。这个系统运行有保证业务响应速度、7天24小时不中断的要求,在切换之前必须做好充分准备,基础数据准确无误,操作员培训合格,进行多岗位的业务流程联合测试和演练,确保切换的万无一失。