导读:项目成败的因素涉及方方面面,并且风险伴随着项目的始终,是客观存在的,
风险引起的负面后果集中表达在进度延后、成本超支、质量不达标等方面。
一、常见风险
1、目标以及需求不明确
为了市场竞争或内部管理决策的需要,业务提出的需求往往要求时间比较紧迫,需求的提出大多停留在口头传达上,
没有正式的业务需求文档,在没有明确的需求范围的情况下,有时为了迎合业务部门的口味匆匆开工,过程中用户
不断地提出新的想法,技术人员开始疲于奔命和应付,很难保证项目的进度和质量,也难以取得业务部门的认可。
在项目前期一定要采取相应措施,与客户,业务共同明确项目目标、需求范围,充分考虑现有的时间和资源约束,
将需求排定优先级,对关键需求优先实现,其他辅助的根据过程中的具体情况进行滚动式计划,并取得业务书面确认。
在此过程中要注重挖掘用户的隐性需求,可以通过引导、系统原型等手段让用户在前期充分暴露自己的想法和需求。
2、项目目标扩大以及需求变更
在有了明确目标和需求范围的情况下,需求变更还是不可防止,业务部门在看到具体系统的真实雏形之后,源源不断
地要求、新想法随之产生,如果不对此加以控制,新需求的加入通常会影响已实现的需求,并对项目进度和成本产生
很大的影响。项目经理针对这种情况一定要采取严格的变更控制流程,不能碍于面子,否则最终结果往往出力不讨好。
针对用户提出的新需求,按照流程进行需求评审,组织相关团队成员进行分析及评估,作为是否实施的依据,变更控制
审核人根据分析结果判断是否批准,如果批准,那项目组可以安排实施,否则,正式拒绝用户的请求。
前期的需求讨论要详细、充分。需求文档中需求的范围要明确、功能描述要清楚。
找出项目需求的决策者(通常是技术专家、项目总监、产品经理、技术经理、客户),所有的需求要经过他们的认可。
客户在项目过程中的全程参与有助于降低此类风险。
需求讨论、需求确认、UserCase确认、测试阶段的客户验收等环节,都要要求客户参与。
在发生需求变更时,严格按照需求变更流程执行。在分析设计阶段的中确实认和评审也是降低此类风险的重要手段。
3、代码质量风险
质量风险主要指开发代码的质量。在制定项目计划时,对开发时间的评估要尽可能的合适。
合理的开发时间对开发质量影响很大。开发人员为了赶进度在紧张的时间需要完成指定的任务,可能就存在很大的开发
质量问题。在编码前,开发人员要熟练掌握框架;项目开发前,应做好技术方案,组织技术评审,在源头上控制质量。
往往有这样一种情况,每个团队成员按照项目计划报告进度都是100%完成,但一到最后系统交互测试或集成时就发现
一大堆问题。这需要在项目开发过程中采取有效的措施来躲避风险,通常的做法是代码走查,在编码过程中加入至少
一次的代码走查,排查不符合标准或性能要求的代码,走查通常能够发现50%-70%的错误;
4、人员技能和资源的不足
项目实施过程中由于人员技能欠缺造成进度延后和软件质量问题并不少见,一个熟练的技术人员完成同样一个任务要
3天,但一个新手可能就需要7-10天。技术经理应该在前期就分析清楚项目所要采用的技术以及相应的人员技能要求,
针对不同的角色,及时采取相应的技能培训,以保证项目的顺利实施。开发过程中遇到技术难题,导致开发时间延迟
或需求不得不发生变更。在项目开始前的技术评估阶段,明确技术难点,提前安排人员进行攻克。
如果在可预期的时间内无法解决,应及时与项目经理协商,向需求提出方要求变更需求或寻找可替代方案。
这样的风险应该在项目前期阶段解决在萌芽状态,防止风险在后期或中期出现。
5、缺乏良好的团队协作
软件项目属于知识型,要发挥团队的创造力,不同于制造业计件生产,各模块最终要集成在一起形成一个有机整体,
这需要成员之间密切配合,界定清楚工作界面及接口关系,并在实施过程中持续地沟通交流和共享,提高团队透明度。
首先团队要融为一体,产出的软件才能融为一体。这是一个团队的软实力,团队的协作好坏也将是个潜在的风险问题,
在项目启动和团队组建的时候就应该加以躲避这样的风险出现。