软件开发过程中的风险管理
2021-03-02谢鹏昱
谢鹏昱
【摘 要】每个软件在其研发过程中都隐含着许多不确定因素,这为软件的成功开发带来了风险。软件的交付时间也与项目的风险管理有着直接的关系。论文对软件开发项目风险管理的概念、主要的风险类别、风险管理的策略进行了论述。
【Abstract】There are many uncertain factors hidden in its research and development process of each software, which brings risk to the successful development of the software. The software delivery time is also directly related to the risk management of the project. The paper discusses the concept of risk management in software development project, the main risk categories, and strategies for risk management.
【关键词】软件开发项目;风险;管理
【Keywords】software development project; risk; management
【中图分类号】TP311.5 【文献标志码】A 【文章编号】1673-1069(2021)02-0015-02
1 软件开发项目风险管理的概念
在整个软件开发项目的进程中所使用的多种指导形式指的就是风险管理的基础形式。相关的责任人员通过采取风险剖析、风险认证和多层次管理等手段对来自各个方面的风险进行更为有效的防控,从而大大减少安全保障的成本。
2 风险的主要类别
软件在开发的过程中必然存在一定的特殊性和不稳定性,这也是风险性存在的因素之一。对此,管理人员需要执行的工作分为两部分:一是风险控制;二是风险评估。在此对风险控制进行了细分,分别为风险规划、风险消除、风险监控,风险评估也可以分为风险识别、风险剖析和风险优先级排序。其中,最重要的莫过于在开始阶段便进行的风险认识和重要步骤风险剖析,因为只有在了解风险的情况下才能最大限度地避免风险的发生,并且监控风险的影响。
风险主要包括以下类别:
第一,需求风险。需求风险包括:不断变动的用户需求对风险预防系统造成影响;工作人员并没有根据系统的需求进行适当的记录;因客户变动而存在的需求变化;软件可靠性与需求标准的定义不明显;对系统的预期值不切实际;并未明确生产的软件需要实现的功能。
第二,经营风险。经营风险包括:各个职务的人员由于分工不明确或交流不畅而导致的工作受阻;过重或过轻的工作负担以及工作重点不明确;工作人员未通过有效的工作审核;项目报告不真实或制度管理未落实。
第三,人员风险。人员风险包括:人员流动性太大、职员之间缺乏团队合作精神、人员配备不合理、人员缺乏必胜的信心、人员未按要求进行针对该项目的培训、生产车间不适合工作等。
第四,生产环境风险。生产环境风险包括:生产工作人员在新的生产工作环境下需要一定的时间去适应;生产工具不能按时送到工作人员手中;新的开发工具使用复杂或需要较长时间学习;设备拥挤,破损严重等。
第五,技术风险。技术风险包括:错误地进行不熟悉的业务、任务组不能完成当前锁定的目标和范围;使用不够熟悉的或完善度低的开发工具;开发工具不符合行业特点,无法有效集成,需要重新设计;设计水平不足,必须利用现有开发工具进行重新设计;当下存在的数据不能帮助技术人员完成任务,必须根据新的数据来解决疑惑;数据可靠性过低,导致新的测试出现了不可避免的失误,甚至需要整个系统重新制作,这些都会使整个软件生产的速度大大减慢。
第六,开发过程风险。开发过程风险包括:软件生产缺少富有经验的开发人员;随意使用没有经过检验的新系统、新数据去生产而使进程中止;软件开发项目不切实际,无法满足成本要求;开发工具未收集齐备;客户所需文档格式与生产环境不同。
3 风险管理的策略
在發现软件的开发存在风险时,怎样应对这些存在的风险,怎样使这些风险得到有效的控制,确保软件开发的安全性是风险管理的精髓所在。
3.1 风险预防的策略
风险剖析的过程其真实目的是针对风险建立防护应对措施。尽管有管控措施,但减少损失的最好方式还是把风险扼杀在开始阶段。
3.1.1 加强交流沟通
沟通不畅是软件开发过程中风险的诱因之一。因此,必须加强公司和客户之间的交流,基于此,不仅可以在需求变化时随机应变,而且也可以在开发中途进行技术的变革和更新。在术语交流方面可以进行统一,不仅方便客户与生产方交流,也方便生产方内部各个部门进行交流,适当时,甚至可以直接安排一个交接翻译人员,直接为各个部门进行翻译,这样可以大大减轻生产人员的工作负担,提高工作的效率。
3.1.2 引入经验丰富的管理人员
通过使用经验丰富的、符合审核条件的人才来管理软件项目工程,根据其提供的风险应对措施,确保软件开发的平稳性和可控性。虽然每个策略都有强大的实用性,但是风险不是仅出现一次的,也不是一成不变的,所以,必须由管理层人员不断对策略进行革新,从而确保生产项目的稳定实施,软件工程不会因此终止,相应的软件质量也会有所提高。
3.1.3 组建高效合作的团队
高效合作的团队中,各个部门各司其职,人人竭尽所能,都能找到属于自己的一份工作,各尽其能,员工之间可以相互交流经验,各个部门之间也可以通力合作,应用部门也可以加入其中,通过与各个部门的交流,使产品的适用性提升。在管理层的统一调度下,对于生产的进度进行严格掌控,对项目的质量也会大幅度提高。
3.1.4 科学开展风险防控
从风险管理的方面进行生产过程的审查,罗列出每个风险的种类,对风险进行范围确认,尽可能准确地防控风险,从而减轻风险带来的损失。对于需求风险来说,則需要稳定当前的供求关系,对于新的需求必须有效掌握之后,才能进行下一步生产。对于技术风险来说,则需要把专业的工作人员安排到第一线,令其时刻关注技术变动带来的风险等。
3.1.5 强化员工培训,合理进行业务选择
针对新的团队成员的加入,需要令其迅速进入新的工作状态,进行最高效的工作。在关键时刻可以引入能解决中心问题的专业技术人员,同时,也要防止团队中人员的流失,在一个项目中,即使是一个很普通的工作人员的流失,也可能导致产品在最后的交付中出现问题。此外,可以通过专业人员的技术支持来规避存在于技术上的各个层次的风险。公司在选择业务时,需要提前注意系统先进性和技术能否跟上系统更新等问题,特别要注意“最好的不一定是最合适的,但最合适的一定是最好的”。在选择技术与系统时,需在满足项目要求的同时,选择能够熟悉掌握的技术和系统来进行开发,这样能减少因需培训而延误的开发时间,也可减少技术风险带来的生产损失。
3.2 理论模型、工具和方法
软件开发中,各种风险检测模型不是应用在某一方面,而是贯穿软件开发全过程。因此,对于软件项目的开发,可应用以下理论模型、工具和方法。
3.2.1 巴利·玻姆模型
巴利·玻姆模型的重点内容是维护和更新十大风险列表,对每一项可能发生的风险,都制定不同的解决预案。在具体实施时,会利用现有的风险内容,在解决的过程中规划出更加详细的计划并且落实下去,以此为循环进行多次,直到定期召开会议时对列表进行评估与更新,这样就会不断产生新的十大风险因素。巴利·玻姆模型还把风险管理分成了制定计划、解决问题和监督三个步骤,而风险评估则分成优劣淘汰、分析、检测三部分。
3.2.2 SEI的CRM模型
由SEI提出的持续风险管理CRM模型中,风险管理原则包括:①大局观;②全新的交流环境;③全方位监控;④经久不衰的进程持续过程;⑤共同的目的;⑥合作精神;⑦完善的策略。
CRM模型认为风险管理的方式是连续性的,其核心是风险沟通。从根本上解释,客户关系管理的详细解释就是对恶劣后果造成的影响进行更加详细的控制,作出最合理的解决方案,解决最需要解决的问题。客户关系管理在该项目的开发过程中将关注所有风险的识别和监控。风险检测、解析、制定、监督、控制是风险管理的五个重要部分。
3.2.3 风险管理模型
风险管理模型从软件的技术和商业两个层面进行全新的剖析,对剖析的方面也会有所改变。其为指标的建立和模型的测试提供的大量数据都来源于事实数据,因此,风险管理模型具有很强的说服力。
3.2.4 Charette模型
于1989年提出的Charette模型将风险管理进行了细分,这是Charette模型的独特之处,它将风险管理分为两大部分,即风险分析和风险管理,Charette模型对开发进程的每一环节都进行了详细的检测与监督,并为其提供技术支持。
3.2.5 COSO模型
COSO模型的中心思想就是目标的制定,目标制定是风险识别、风险评估和风险反应的前提,企业必须先制定目标,在此之后,管理层才能了解和判断影响目标实施的风险并且采取必要的行动针对这些隐藏的风险进行管理。COSO模型也能够对于出现问题的数据进行自行的修正,甚至能够对COSO自身的计算极限进行更深一步的预估,提出更先进的风险控制建议。
【参考文献】
【1】褚洪江.IT软件项目风险管理策略探究[J].中国新通信,2020,22(19):150-151.
【2】喻珠晗.浅谈软件服务外包过程存在的风险及管控措施[J].商讯,2020(24):155+157.
【3】高清阔,张永淼.浅析信息系统开发的项目风险管理[J].中小企业管理与科技(下旬刊),2020(07):45-46.