项目风险:指可能导致项目损失的不确定性。
项目风险的主要来源:
- 范围风险:与范围变更有关的风险,(1)估算产品规模的方法 (包括:代码行,文件数,功能点等),(2)产品规模估算的信任度,(3)产品规模与以前产品规模平均值的偏差, (4)产品的用户数,(5)复用的软件有多少,(6)产品的需求变更多少等。
- 进度风险:导致项目工期拖延的风险。该风险主要取决于技术因素、计划合理性、资源充分性、项目人员经验等几个方面。
- 成本风险:导致项目费用(其中包括人工成本)超支的风险。
- 质量风险:影响质量达到技术性能和质量水平要求的风险。
- 技术风险:由于与项目研制相关的技术因素的变化而给项目带来的风险。
- 潜在的设计、实现、接口、验证和维护、技术的不确定性,
- 缺乏培训,
- 对方法、工具和技术的理解不够,
- 应用领域的经验不足,
- 新的技术和开发方法的应用等。
- 管理风险:由于项目的管理对象(如管理组织、领导素质、管理计划)等因素的状况,
- 计划和任务定义不够充分,
- 实际项目状态,
- 项目所有者和决策者分不清,
- 不切实际的承诺,
- 员工之间的沟通等。
- 商业风险:开发了一个没有人真正需要的产品或系统(市场风险);或开发的产品不符合公司的整体商业策略(策略风险);或构成了一个销售部不知道如何去出售的产品(销售风险)等。
- 法律风险:例如许可权、专利、合同失效、诉讼、不可抗力等。
- 社会环境风险:由于国际、国内的政治、经济技术的波动(如政策变化等),或者由于自然界产生的灾害(如地震、洪水等)而可能给项目带来的风险。
- 安全风险:软件产品本身是属于创造性的产品,产品本身的核心技术保密非常重要。软件行业的技术人员流动是很普遍的现象,随着技术人员的流失、变更,很能会导致产品和新技术的泄密,致使我们的软件产品被它公司窃取,导致项目失败。而且在软件方面关于知识产权的认定目前还没有明确的一个行业规范,这也是软件项目潜在的风险。
- 软件测试风险:
- 需求风险。对软件需求理解不准确,导致测试范围存在误差,遗漏部分需求或者执行了错误的测试方式;另外需求变更导致测试用例变更,同步时存在误差;
- 测试用例风险。测试用例设计不完整,忽视了边界条件、异常处理等情况,用例没有完全覆盖需求;测试用例没有得到全部执行,有些用例被有意或者无意的遗漏;
- 代码质量风险。软件代码质量差,导致缺陷较多,容易出现测试的遗漏;
- 测试环境风险。有些情况下测试环境与生产环境不能完全一致,导致测试结果存在误差;
- 测试技术风险。某些项目存在技术难度,测试能力和水平导致测试进展缓慢,项目延期;
- 回归测试风险。回归测试一般不运行全部测试用例,可能存在测试不完全;
- 沟通协调风险。测试过程中涉及的角色较多,存在不同人员、角色之间的沟通、协作,难免存在误解、沟通不畅的情况,导致项目延期;
二、项目风险的防范:
- 项目风险管理:对于影响项目的进程、效率、效益、目标等一系列不确定因素的管理。
- 全过程管理:要求项目风险管理者能够审时度势、高瞻远瞩,通过有效的风险识别,实现对项目风险的预警;对于项目运行过程中产生的风险进行分散、分摊或分割;要求项目风险管理者能够在项目风险发生后,采取有效的应对措施,并能够总结经验教训;对项目风险管理工作进行改进。
- 全员管理:项目风险的全员管理并不仅仅是对于项目运行全部参与方或参与人员的管理,而是要求所有的人员均能够参与项目风险的管理。
- 项目风险识别
- 识别项目中的潜在风险及其特征
- 识别风险的主要来源
- 预测风险可能会引起的后果