风险管理在软件项目开发中的应用
2014-05-26徐瑞君
徐瑞君
摘 要:项目开发和管理中一直存在着种种不确定性,严重影响着项目的顺利完成和交付,在数字化校园建设中充分识别项目风险,通过列表和排序,并采取各种应对措施,将项目风险降到最低,最终将项目完整的交付。
关键词:项目;风险管理;应用
1 前言
软件项目开发过程中面临的风险多种多样,风险的大小以及重点各不相同,项目管理人员应当充分考虑,认真分析,在考虑风险损失和合理的风险应对成本之后,选择采用合适的风险应对计划,避免因风险造成各方面的重大损失。规范化地控制影响项目成功的风险,目的就是将项目风险识别、描述和消除,以免它们威胁软件的成功交付。
2 风险识别
根据项目的性质,从潜在的事件及其产生的后果来检查风险。对识别出的风险进行进一步的确认后,分析它风险级别,然后确定主要风险出现所造成的最坏情况,同时确定主要风险出现的机率。进行风险分析时,最重要的是量化不确定性的程度和每个风险可能造成损失的程度。为了实现这点,建立风险清单,清单上列举出可能碰到的风险最重要的是要对清单的内容随时进行维护,更新风险清单。
项目风险评估列表如表1。
3 风险应对
针对上述识别出来的项目风险我们采取了如下措施。
3.1 高风险应对
成立由校方和我项目部成立的项目开发组,对项目目标、项目定义、项目沟通、项目配合、项目基本功能、开发平台、过程控制、审批签字制度工作流程等确定下来,且对各阶段的成果进行评审和确认。
对数字化校园平台涉及的问题和主要业务流程,制定出需求调查计划,确定调查的目的和调查内容,形成需求调查报告。根据需求调查的结果,进行整理归纳,确定目标系统的业务流程,形成软件系统需求规格说明书,系统需求规格说明书按照质量管理体系中需求说明书相应模板编写。说明目标系统的业务需求、功能需求、性能需求。形成需求规格说明书后,和客户沟通,让客户理解需求,确认需求。对需求分析、需求调查中和实际应用不符的问题及时予以纠正,使开发过程要以确定的客户需求为基础,避免在开发过程中频繁的需求变更,使目标系统更加符合实际需求,满足客户的需要。
在项目开发过程中,需求的变更控制非常重要,项目的开发过程应以需求分析为依据,在开发过程的各个阶段,根据需求说明书,列出系统的软件需求项,根据软件的开发情况跟踪软件需求的实现情况,保证开发系统实现了系统的全部需求。开发过程中的需求追溯同时在开发过程的各个阶段,及时的根据软件系统所实现的功能回溯到系统需求,保证软件系统所实现的功能和需求说明书的功能要求一致。如果对需求或系统流程有疑义,及时与校方进行沟通。保证开发过程的有序性和有纪律性。
由于项目采用第三方的软件较多,这些第三方软件内容都属于项目依赖的内容,而且这些第三方软件不是通过项目自身努力就可以达到和完成。关键依赖能否满足存在诸多的不确定性,这些都是项目实实在在存在的风险。提前进行数据接口的规范,尤其是单点登录统一身份认证的标准制定,尽量减少第三方软件的修改量,并保持第三方软件的完整性和可靠性,方便第三方软件的升级,共同协商联调计划,并一一落实。内部模拟相关的接口数据,提前进行验证和分析。
3.2 中度风险应对
系统设计又是系统开发的第一步,系统设计决定系统的开发流程、系统的数据库设计、软件系统的模块划分,系统设计决定了系统的运行流程、系统的运行效率以及系统的适用性。
3.2.1 系统设计
系统总体业务逻辑、系统总体结构、系统总体功能,系统总体硬件网络结构,软件结构。
系统结构设计是根据系统的业务逻辑结构,系统的实际应用情况决定系统的软件系统的架构,和硬件拓扑结构。
说明系统的总体功能,这个说明是从整体的角度进行的说明,同时对软件系统的功能模块进行划分。在硬件设备选型时应考虑系统的数据量、响应时间、系统的容错能力、系统的安全性等要求。
每一个环节都有严格的质量控制体系,实现了项目的质量控制、工期控制,预算控制,并根据校方要求,按照总工期,进行项目的计划分解,确定项目的关键路径,合理调配各专业人员,确保项目按计划圆满完成。
3.2.2 需求变更多自项目管理者
尽快给用户一个快速原型,启发用户的需求。加强各阶段与用户的沟通,对各个功能逐步完善,架构和设计都要考虑为变更而设计,而不仅仅是满足当前需求。需求人员不仅仅是描述清楚用户需求,而更多的应该是去开发用户需求,去挖掘用户的潜在需求。
3.3 低度风险应对
对参与项目的软件人员和业务人员甚至管理人员、决策者进行项目认知的培训,加强用户方参与项目的技术人员及业务人员的培训,尤其是将业务流程及相关内容能和软件开发人员无缝对接的培训, 始终贯彻项目管理的标准流程。引入专家进行咨询和监理。对规避项目需求阶段的实施风险有良好的效果。制定文档标准,建立文档归口管理机制,保证文档及时产生,对所有工作进行细致的记录,并经过项目主管的详细审核,使更多人能够按计划进度完成自己的工作,对每个关键性技术人员配备后备人员,通过岗位互换,项目内培训等多种方式进行风险规避,以确保人员离开后项目仍能继续进行。
4 风险监控
项目管理者对风险的排序进行研究,并划分重要和次重要的风险,对次重要的风险再进行一次评估并排序。对重要的风险要进行管理。从管理的角度来考虑,风险的影响及概率起着不同作用,一个具有高影响且发生概率很低的风险因素不应该花太多的管理时间,而高影响且发生率从中到高的风险以及低影响且高概率的风险,应该首先列入管理考虑之中。可以利用风险清单进行分析,并在项目进展过程中迭代使用。项目组定期复查风险清单,评估每一个风险,以确定新的情况是否引起风险的概率及影响发生改变。这个活动可能会添加新的风险,删除一些不再有影响的风险,并改变风险的相对位置。
5 风险管理总结
对于影响项目的质量、进度、时间等一系列不确定因素的管理,包括对外部环境因素与内部因素的管理,也包括对主观因素与客观因素、理性因素与感性因素的管理。项目风险管理的内涵体现在:
5.1 全过程管理。项目风险的全过程管理,要求项目风险管理者能够审时度势、通过有效的风险识别,实现对项目风险的预警预控;通过有效的风险管理、处理方法,对于项目运行过程中产生的风险进行预控、化解,采取有效的应对措施并能够总结经验教训,对项目风险管理工作进行改进。
5.2 全员管理。项目风险的全员管理并不仅仅是对于项目运行全部参与方或参与人员的管理,而是要求所有的人员均能够参与项目风险的管理。包括项目自身在计划、组织、协调等过程中所产生的不确定因素的管理。人为的主观影响成分较大。项目风险管理既是对项目全部参与方(人员)的管理,同时也是全员共同参与对项目风险的管理。
5.3 全要素集成管理。从项目风险管理所追求的现实目标或项目风险管理所需解决的根本问题,其主要涉及项目进度、成本以及质量三方面的问题。可见,项目风险管理的过程是一个在可能的条件下追求项目工期最短、造价最低、质量最优的多目标决策过程,且项目风险管理不能仅满足于对单一目标的追求。这是由于项目的工期、造价与质量是三个直接关联和相互作用的相关要素。
6 结束语
可以说,风险存在于任何项目中,并往往会给项目的推进和项目的成功带来负面影响。不过,人们也无须恐惧风险,只要掌握风险发生的因果关系,风险完全可以管理。因此,关注项目风险,掌握风险管理的知识与技能,从项目组织、职责、流程与制度上建立一套风险管理机制是确保项目成功的前提与保障。
参考文献
[1](美)Harold Kerzne.项目管理计划、进度和控制的系统方法(第7版)[M].杨爱华,杨磊,王增东,肖艳颖,译.