35 风险分析¶
说明
本文档由 AI 生成
这一章(Chapter 35: Risk Analysis)是项目管理知识体系中的“安全气囊”。如果说之前的章节(Ch.33, Ch.34)是关于“如何规划”和“如何执行”,那么这一章就是关于“当规划失效或外部环境突变时,我们该如何生存”。
这一章的逻辑非常清晰,遵循了从**理念**到**原则**,再到**具体实施流程(识别、分析、应对),最后落实到**监控**的递进关系: 1. **首先**对比了“被动”与“主动”的风险管理策略,确立了本章的基调:**我们要做预言家,而不是消防员。 2. 其次**提出了风险管理的7大原则,这些原则是进行具体操作的指导思想。 3. **核心部分**详细介绍了风险管理的范式(识别、分析、计划、监控、控制),特别是如何计算**风险暴露度 (RE) 和构建**风险表 (Risk Table)**。 4. **最后**列举了导致风险的具体因素(如产品规模、商业影响、人员等)以及应对风险的具体策略。
以下是为你整理的详细笔记(Markdown格式),专有名词后均已附上英文对照,非常适合用来复习备考。
🛡️ 软件工程 Chapter 35: 风险分析 (Risk Analysis)¶
1. 风险管理的两种策略 (Risk Management Strategies)¶
- 被动式风险管理 (Reactive Risk Management):出现问题后再去解决(Fire fighting)。
- 缓解 (Mitigation):预见到要打仗,提前储备资源。
- 故障修复 (Fix on failure):风险发生时,现找资源去解决。
- 危机管理 (Crisis management):资源失效,项目陷入绝境。
- 主动式风险管理 (Proactive Risk Management):正式的风险分析,纠正根本原因。
- TQM 与 SQA:利用全面质量管理概念和统计软件质量保证。
- 超越软件边界:审视超出软件范围的风险源。
- 管理变更的能力:培养应对变更的技能。
2. 风险管理的七大原则 (Seven Principles)¶
- 全局视角 (Maintain a global perspective):在系统和业务问题的背景下审视软件风险。
- 前瞻性视角 (Take a forward-looking view):思考未来可能出现的风险;建立应急计划 (Contingency plans)。
- 鼓励公开沟通 (Encourage open communication):不要忽视任何人提出的风险。
- 集成 (Integrate):将风险考虑集成到软件过程 (Software process) 中。
- 强调连续过程 (Emphasize a continuous process):在整个软件过程中保持警惕,随着信息增多修改已识别的风险,增加新的风险。
- 开发共享的产品愿景 (Develop a shared product vision):如果所有干系人有相同的愿景,风险识别会更好。
- 鼓励团队合作 (Encourage teamwork):汇集所有干系人的才能、技能和知识。
3. 风险管理范式 (Risk Management Paradigm)¶
一个闭环的流程:
- 识别 (Identify):找出潜在风险。
- 分析 (Analyze):评估风险概率和影响。
- 计划 (Plan):制定缓解和应对策略。
- 跟踪 (Track):监控风险指标。
- 控制 (Control):执行计划,应对发生的风险。
4. 风险识别 (Risk Identification)¶
识别六大类风险源 (Risk Sources):
- 产品规模 (Product size):软件的总体规模(LOC, FP)。
- 商业影响 (Business impact):管理层或市场强加的约束(如截止日期)。
- 客户特征 (Customer characteristics):客户的成熟度及沟通能力。
- 过程定义 (Process definition):开发组织定义和遵循过程的程度。
- 开发环境 (Development environment):工具的可用性和质量。
- 待构建的技术 (Technology to be built):系统的复杂性和技术的新颖性。
- 人员规模与经验 (Staff size and experience):工程师的技术和项目经验。
5. 风险评估 (Risk Assessment)¶
通过回答一系列问题来判断项目风险等级:
- 管理层承诺 (Management commitment):高层是否正式支持?
- 用户承诺 (User commitment):最终用户是否热情支持?
- 需求理解 (Requirements understanding):团队和客户是否完全理解需求?
- 用户参与 (User involvement):客户是否充分参与了需求定义?
- 期望值 (Expectations):用户是否有切合实际的期望?
- 项目范围与需求稳定性 (Scope/Requirements stability):范围和需求是否稳定?
- 技能组合 (Skill mix):团队是否有合适的技能组合?
- 技术经验 (Experience):团队是否有实施该技术的经验?
- 人员充足性 (Adequacy of people):人员数量是否充足?
- 共识 (Agreement):所有客户/用户群体是否就项目重要性和需求达成一致?
6. 风险构成 (Risk Components)¶
- 性能风险 (Performance risk):产品满足需求和适合其预期用途的不确定性。
- 成本风险 (Cost risk):项目预算维持的不确定性。
- 支持风险 (Support risk):结果软件易于纠正、适应和增强的不确定性。
- 进度风险 (Schedule risk):项目进度维持和按时交付的不确定性。
7. 风险预测 (Risk Projection / Estimation)¶
对每个风险进行评级:
- 可能性 (Likelihood):风险是真实的概率。
- 后果 (Consequences):风险发生带来的问题严重程度。
- 四个步骤:
- 建立反映风险可能性的等级尺度。
- 描述风险的后果。
- 估计风险对项目和产品的**影响 (Impact)**。
- 注明风险预测的整体准确性。
8. 构建风险表 (Building a Risk Table)¶
- 列项:
- Risk (风险):风险描述。
- Probability (概率):发生概率(0-100%)。
- Impact (影响):对项目成功的冲击(1-5级,5为灾难性)。
- RMMM:风险缓解、监控和管理 (Risk Mitigation, Monitoring, and Management)。
- 操作:按概率和影响对表格进行排序。
9. 风险暴露度 (Risk Exposure, RE)¶
- 公式:\(RE = P \times C\)
- \(P\):风险发生的**概率 (Probability)**。
- \(C\):风险发生后的**成本 (Cost/Impact)**。
- 示例计算:
- 场景:计划复用60个组件,预计只有70%能用,剩下的30%(即18个)需从头开发。
- 每个组件:100 LOC,每 LOC 成本 $14。
- 影响 (C):\(18 \times 100 \times 14 = \$25,200\)。
- 概率 (P):80% (0.8)。
- 风险暴露度 (RE):\(0.80 \times 25,200 \approx \$20,200\)。
10. 风险缓解、监控和管理 (RMMM)¶
- 缓解 (Mitigation):我们如何**避免 (Avoid)** 风险?
- 监控 (Monitoring):我们可以跟踪哪些因素来确定风险是变得更可能发生还是更不可能发生?
- 管理 (Management):如果风险成为现实,我们有什么**应急计划 (Contingency plans)**?
11. 具体风险类别分析 (Specific Risk Categories)¶
- 产品规模风险 (Product Size):
- 影响因素:LOC/FP 估计值、与以往产品规模的偏差百分比、数据库大小、预计的变更次数。
- 商业影响风险 (Business Impact):
- 影响因素:对收入的影响、高层管理的关注度、交付截止日期的合理性、互操作性约束、政府约束、延迟交付的成本。
- 客户风险 (Customer Risks):
- 关键问题:过去合作过吗?客户有明确的需求吗?客户愿意参与评审吗?客户懂技术吗?客户会干涉细节工作吗?
- 过程成熟度风险 (Process Maturity):
- 关键问题:建立了通用过程框架吗?有管理支持吗?进行正式技术评审 (FTR) 吗?使用 CASE 工具吗?
- 技术风险 (Technology Risks):
- 关键问题:技术是新的吗?需要新算法或 I/O 技术吗?涉及未经验证的硬件吗?有重大的性能约束吗?功能是否“可实现”?
- 人员/人员风险 (Staff/People Risks):
- 关键问题:是最好的人选吗?技能匹配吗?人手足够吗?会有人员流动吗?接受过必要培训吗?
12. 记录风险信息 (Recording Risk Information) - 模板¶
- 项目 (Project):项目名称。
- 风险类型 (Risk type):如进度风险。
- 优先级 (Priority):1(低)到 5(关键)。
- 风险因素 (Risk factor):具体描述。
- 概率 (Probability):百分比。
- 影响 (Impact):后果描述。
- 监控方法 (Monitoring approach):如定期的里程碑评审。
- 应急计划 (Contingency plan):如修改测试策略,使用软件模拟。
- 估算资源 (Estimated resources):如额外的 6 个人月。
💡 复习重点总结 (Key Takeaways for Exam)¶
- 核心公式 (Core Formula):务必记住 风险暴露度 (RE) = 概率 (P) × 成本 (C)。考试很可能会给出一个场景让你计算 RE。
- 风险表 (Risk Table):理解如何构建风险表,特别是如何评估**概率**和**影响**,以及 RMMM 的含义。
- 风险分类 (Risk Categories):能够区分四种核心风险(性能、成本、支持、进度)以及六大风险源(规模、商业、客户、过程、技术、人员)。
- 主动 vs 被动 (Proactive vs Reactive):理解两者的区别,以及为什么主动式是更好的策略。
- RMMM 策略:对于给定的风险(例如硬件交付延迟),你需要能够写出对应的缓解、监控和管理措施。
评论区
欢迎在评论区指出文档错误,为文档提供宝贵意见,或写下你的疑问