试论中小软件企业项目开发中的风险管理

作者:万亚东

摘要:从风险管理的角度,对国内中小软件企业在软件项目开发中存在的问题进行了分析和总结,提出中小软件企业应明确认识自身的不足,结合自身的特点,建立风险管理机制;遵循风险管理要求的“风险识别”、“风险分析”、“风险应对”的步骤,时潜在和已经发生的项目风险进行有效管理和控制。

  1 风险管理在软件开发中的引入
  
  1.1项目风险管理
  项目风险可能出自技术、政治、经济、资源等各个方面,对项目开发本身或是项目目标的实现产生重大影响,有些风险甚至可能是致命的,使项目严重滞后或直接废弃。项目风险管理是为了最好地达到项目的目标,识别、评估、应对项目生命周期内风险的科学与艺术。项目风险管理的目标是使项目本身潜在的机会或回报最大化,使潜在的风险最小化。
  
  1.2风险管理活动
  项目风险管理应贯彻在项目的整个生命周期内,是一个连续不断的过程。风险管理涉及的主要活动包括:风险识别,风险量化,风险应对计划制定和风险监控。
  
  1.3软件项目的风险管理
  软件项目由于其本身的创造性,注定了其风险的复杂性。一个完整的软件项目周期包含项目计划、需求分析、概要设计、详细设计、编码实现、软件测试、软件发布和维护等多个相互交织、互相影响的过程。这就注定软件项目管理是一项复杂的活动,涉及到计划、度量、组织、实现、时间、成本、进度、质量等方方面面的问题。这些问题相互纠缠、累积在一起,会产生各种不确定的因素,影响项目的进行。
  软件项目中的风险表现在:需求风险、计划编制风险、设计实现风险、组织和管理风险、人员风险、客户风险、产品风险、过程风险。
  这就需要我们在进行软件开发项目时更加注重风险管理,注重风险分析,做好风险管理计划,积极寻求风险应对方法,寻找切实可行的解决方案。
  
  2 中小软件企业项目开发的特点和面临的风险
  
  2.1中小软件企业的特点
  目前,国内大多数中小软件企业虽然人力成本很低,但是在许多方面都处于劣势。如:软件企业普遍规模偏小,实力相对较弱;企业自身的技术实力低,技术单薄,积累少;项目缺乏统筹规划,生产方式是小作坊式,编程方式是个人英雄式;软件开发流程不规范,产品标准化程度差;项目管理知识和管理经验欠缺,缺乏严格的项目管理和质量保证体系;人员流动率高,缺少充足的人才储备。公司林立,项目竞争多,对很多软件企业来说,最重要的是维持生存,在合同的实施中,处于弱势地位。这些都是阻碍企业顺利完成软件项目的不利因素。
  
  2.2 中小软件企业项目管理的不足
  中小软件企业自身固有的不利因素,使得他们在项目管理中存在诸多不足:缺乏合理的进度安排、开发流程不完善、不重视测试、缺乏缺陷管理机制。
  
  2.3中小软件企业软件项目面临的主要风险
  客户需求不确定中小软件企业在项目中的弱势地位,造成客户可能随意变更需求,使开发无明确的方向。不完善的系统分析和设计又使得类似情况出现时,开发人员不知所终,造成混乱。
  进度安排过紧进度计划往往脱离实际,多数无法按时完成。
  技术风险中小软件企业的技术积累和技术储备往往不足,这在软件产品的设计、实现、接口、检验和维护等方面都有体现。此外,技术陈旧、不确定、不成熟,以及采用非主流的第三方设备或组件,都会给产品开发带来重大影响。
  人员风险中小软件企业人员流动性大,而最终产品对项目组中某一个或几个开发人员依赖大,这些关键人员的流动,会使开发工作受到影响,甚至陷于停顿。
  项目组成员不固定,增加交流成本中小软件企业常忽略项目组成员的交流成本。如,在项目进行中,加入新的开发人员,需进行培训并逐渐与现有成员沟通,从而使现有成员的工作效率降低。此外,还有任务重新分配所造成的工作中断带来的负担。要知道,软件项目的人员数量和开发时间并不是可以互换的,向进度落后的项目中增加人手,只会使进度更加落后。
  
  3 中小软件企业项目的风险管理如何进行
  
  在中小软件企业软件项目的风险管理中,也要按照“识别”、“分析”、“计划”、“应对”的步骤,对潜在和发生的风险进行有效管理和控制。
  
  3.1风险识别
  在风险识别中,我们应重点注意以下风险:
  需求风险主要指需求不确定的风险,如,具体功能不能详尽描述,在系统范围和性能方面也存在着很多不确定性因素;另外,用户不断进行的业务流程调整,也会给系统带来较大的需求不确定性风险,甚至陷入需求膨胀的状态,最终难以满足用户的需求。
  管理风险软件项目管理本身就是一项具有风险性的工作,对项目的协调管理工作要求更高。管理风险主要表现在:工作缺乏计划性或是有计划而不能严格执行;管理工作的随意性、盲目性比较大;没有充分意识到风险管理的重要性,因而没有充分分析可能存在的风险和应该采取的风险应对策略;项目团队内部沟通不够,导致开发人员对系统设计的理解存在偏差等等。
  技术风险软件技术飞速发展,新技术、新应用层出不穷。这就要求系统分析、设计人员要具有较好的技术能力,同时还要对用户的行业业务非常了解。因此,项目组个人以及团队的整体素质将会影响到项目实施的成败。
  人员风险对中小软件企业来说,人员风险始终是一个非常值得关注的因素。
  
  3.2风险分析
  需求风险需求风险的形成,首先,是由于客户的介入与参与程度不深,考虑需求往往从部门或局部的视角出发;其次,分析人员忽视了对业务知识的深入了解,不能很好地理解甚至是误解客户的需求,使得需求调研的目标不明晰,分析不透彻;第三,缺乏与客户决策层进行深层次的交流,难以掌握客户企业的发展趋势,对需求的延伸性不明确;最后,缺乏有效的需求变化管理。
  管理风险项目管理人员缺乏项目管理知识,工作目标不明确,对总体计划、阶段计划的作用认识不足,对项目的风险估计不足,从而造成计划与控制脱节,无法进行有效的项目管理;而且,由于管理人员的协调管理能力不足,执行力度不够,使得项目协调成本、时间成本大大增加,造成工作延误等。
  技术风险技术风险可以直接导致项目失败。技术能力不足、涉足不熟悉的行业业务,使项目的预期目标超过了项目组的实现能力;此外,采用不熟悉或是欠成熟的开发工具、第三方产品等,都会使项目处于灾难性的风险之中。
  人员风险产生人员风险的原因多种多样,要结合企业自身和具体员工的情况,综合加以分析。
  
  3.3风险应对
  风险规避的最好方法是把风险控制在项目启动阶段。可以采用以下措施来规避或减小风险。
  建立畅通的对外沟通渠道,制订沟通策略需求
风险很大程度上是由沟通不畅引起的。在需求调研阶段,要多和客户应用部门沟通,了解他们真正的需求,最好能将系统的目标模型向应用部门演示,并得到反馈意见'、直到双方都达成共识;形成双方认可的验收方案和验收标准;做好需求变更控制和管理,尽量降低需求的不确定性风险。
  配备高素质的项目管理人员要由具有丰富的项目管理经验,或是具有系统的项目管理知识的人来担任项目经理,制定有效的项目管理计划,并执行落实,提高项目的可控性。
  建立协作高效的项目团队项目组中既要有技术部门的参与,更要有应用部门的参与,形成一个合作的项目团队,共同理解需求和业务发展。共同研讨项目进展中出现的问题,共同控制项目进度,共同为项目质量把关。
  制定科学的风险管理计划风险管理必须被作为日常的正式活动列入项目工作计划,成为项目管理的一部分。从风险管理的角度对项目计划进行审核,建立风险清单,对每个可能存在的风险做出尽量准确的判断并对之进行监控,提前做好应对准备。如针对需求风险,要制定相应的需求变更控制;针对技术风险,要安排核心技术人员全程参与开发等等。
  鼓励内部交流项目经理应积极与开发组成员进行交流,掌握他们的思想动态,及时解决出现苗头的问题;在开发团队创造信任、公开、积极交流的环境,有效地消除团队成员之间的隔阂和冲突,使项目开发保持一定的效率。人力资源部门也应该密切注视项目组成员的士气,通过积极沟通,或采用适当的激励机制,使项目能正常进行。
  选择合适的开发技术最合适的才是最好的,虽然在系统设计时要考虑技术的先进性,但如果对所要采用的新技术不熟悉,在满足业务需求的前提下,应尽可能采用熟悉的技术,以避免因技术瓶颈导致的项目失败。
  采用适合的开发模型为适应业务需求随时间发展而变化,要强调敏捷开发,缩短软件发布周期,尽快给用户一个快速原型,并对各个功能逐步完善,可以降低不确定因素带来的实现风险。
  
  4 中小软件企业应建立风险管理机制
  
  4.1 中小软件企业自身的应对风险的积极因素
  “船小”规避快中小软件企业具有规模小、机制灵活的特点,便于决定取舍,有时有舍才有得。
  用人制度没有条框的规定中小软件企业用人制度灵活,有利于管理者采用奖励、情感投资等有形和无形的激励手段。
  企业结构有利于执行力的实现中小软件企业的企业结构相对简单,层次构成浅,内部沟通屏障少,有利于提高企业的执行能力。
  
  4.2结合自身的因素进行软件过程的改进
  量力而行作为项目实施的决策者,要知道有所为有所不为。不要好高骛远,目标定得太高,脱离自身实际,往往使企业陷于被动。
  强化系统分析设计先谋而后动,系统分析和设计作为软件项目最重要的开始阶段,是不可缺少的。运用统一建模语言进行分析设计,或开发实现时采用相对成熟的设计模式,可以有效地提高项目组成员在分析和设计阶段的交流能力和工作效率。
  发挥人的能动性,通过对员工的有效管理积极应对项目风险对中小软件企业来说,最宝贵的是员工。以人为本的社会文化,要求实现员工与企业的双赢,既可以满足员工建功立业的个人追求,又能实现企业的战略规划。要选择正确的人,为他们分配正确的工作;及时处理员工的负面情绪;建立有凝聚力的团队。确定人员流动的原因,重视后备人员的培养。
  有效管理代码代码是软件的生命,要采用适当的管理方法(如统一编码规范)和工具(如版本控制工具)管理代码(包括文档),使软件开发作为一个过程处于管理之下,既可以规范开发行为,又可以为类似的行为提供依据和可借鉴的资料。
  建立测试和缺陷管理机制这对于软件质量评估具有很高的价值。
  掌握合适的开发方法如现代敏捷方法论既非常注重人的能力,强调调动每一位项目参与者适应变化,又基于非常严谨的过程。这对于中小软件企业具有重要的借鉴意义。
  对项目进行总结,形成知识管理制度不断总结成功的经验和失败的教训,在工作中不断积累对抗风险的能力。
  
  5 结语
  
  软件项目管理从某种意义上讲,就是风险管理。软件企业在软件项目开发过程中,必须采用适合自己的风险管理方法进行软件项目的风险管理,以确保项目在规定的预算和期限内完成。同时,风险也是新的机遇,在项目开发中积极地对风险进行识别、分析,采用适合自身的策略积极应对风险,也许会赢得新的前景。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12231076/viewspace-364831/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12231076/viewspace-364831/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值