险控制在项目启动阶段,把损失减小到最小程度。基于以上对数据分析项目风险的识别与分析,可以采用以下措施来规避或减小风险:
1、建立畅通的沟通渠道和沟通策略。需求的不确定性风险很大程度上是由沟通不畅引起的。因此,在需求调研阶段,要多和应用部门沟通,了解他们真正的需求,最好能将目标系统的模型向应用部门演示,并得到反馈意见,直到双方都达成共识;形成双方认可的验收方案和验收标准,并做好变更控制和配置管理,尽量降低需求不确定性风险。
2、配备高素质的项目管理人员。最好是具有丰富的项目管理经验,或是经过系统的项目管理知识的人员来担任项目经理,通过制定有效的项目管理计划,并认真执行落实,提高项目的可控性。同时,风险不是静止的、一成不变的,它会随着项目状况的变化而变化,因此,风险管理必须被作为一个日常的正式活动列入项目工作计划,成为项目管理人员的一个重要工作。
3、建立一支协作高效的项目团队。技术部门有技术,业务部门有需求,因此,项目组中不仅要有开发商、技术部门的参与,更要有应用部门的参与,形成一个合作的项目工作团队,共同理解企业的战略规划和业务发展,从整体全局的角度,提出有效的信息化需求,共同研讨项目进展中出现的问题,共同控制项目进度,共同为项目质量把关。
4、制定科学的风险管理计划。从风险管理的角度对项目规划或计划进行审核,建立“风险清单”,对每个可能存在风险的表现、范围、时间做出尽量准确的判断并对风险进行监控,提前做好应对准备。如针对需求风险,要制定相应的需求变更控制;针对技术锁定风险,要安排的核心技术人员全程参与开发等等。
5、选择合适的开发技术。虽然在系统设计时需要考虑新技术的发展和技术的先进性问题,但“最好的不一定是最合适的,最合适的才是最好的”,如果项目组的人员对所需开发技术不熟,在满足业务需求的前提下,尽可能采用熟悉的技术来减轻项目在成本或进度方面的影响,也可以事先进行培训来减轻对项目的影响,以避免因技术瓶颈导致的项目失败。
6、采用快速原型和迭代模型进行开发。尽管前期会对应用部门进行需求调研和需求分析,但应用部门的需求往往会随着时间的推移、业务发展的变化而有所变化,因此,技术部门要强调敏捷开发,缩短软件第一版本的上线周期,尽快给用户一个快速原型启发用户的需求,并持续为用户提供有价值的软件。同时,以迭代法取代传统的瀑布法开发过程,加强各阶段与用户的沟通,对各个功能逐步完善,可以降低各种不确定因素带来的实现风险,每个迭代过后,软件都向目标接近一步,即使目标发生改变,迭代模型也比其他筛选和建立目标的开发模型,更便于转向新目标。
软件项目风险管理是一种特殊的规划方式,对任何一个软件项目,我们可以有最佳的期望值,但更应该要有最坏的准备——只有正视风险,我们才能更好地管理风险,规避风险,直至消除风险,获得项目的成功。