风险评估 risk-assessment

风险评估是一个系统化的过程,用于识别可能威胁项目成功的潜在风险,并制定减轻、避免或接受这些风险的策略。关键词包括项目启动、规划阶段、风险识别、风险分析、风险响应计划、风险监控与控制。

风险管理 0 次安装 0 次浏览 更新于 3/4/2026

风险评估 概述 风险评估是一个系统化的过程,用于识别可能威胁项目成功的潜在风险,并制定减轻、避免或接受这些风险的策略。 何时使用

  • 项目启动和规划阶段
  • 在主要里程碑或决策之前
  • 引入新技术时
  • 第三方依赖或集成
  • 组织或资源变化
  • 预算或时间线限制
  • 监管或合规问题

指令

  1. 风险识别技术 风险识别框架

class RiskIdentification: RISK_CATEGORIES = { ‘Technical’: [ ‘技术成熟度’, ‘集成复杂性’, ‘性能要求’, ‘安全漏洞’, ‘数据完整性’ ], ‘Resource’: [ ‘团队技能差距’, ‘员工可用性’, ‘预算限制’, ‘设备/基础设施’, ‘供应商可用性’ ], ‘Schedule’: [ ‘不切实际的截止日期’, ‘依赖延迟’, ‘范围蔓延’, ‘审批延迟’, ‘资源冲突’ ], ‘External’: [ ‘监管变化’, ‘市场条件’, ‘供应商稳定性’, ‘政治/经济因素’, ‘自然灾害’ ], ‘Organizational’: [ ‘利益相关者不一致’, ‘优先级变化’, ‘组织重组’, ‘政治/冲突’, ‘需求变化’ ] }

@staticmethod
def brainstorm_risks(project_context):
    """
    引导式头脑风暴会议以识别风险
    """
    risks = []
    for category, risk_types in RiskIdentification.RISK_CATEGORIES.items():
        for risk_type in risk_types:
            risks.append({
                'category': category,
                'description': risk_type,
                'identified_by': [],
                'probability': None,
                'impact': None
            })

    return risks

@staticmethod
def analyze_assumptions_as_risks(assumptions):
    """
    将项目假设转化为潜在风险
    """
    assumption_risks = []
    for assumption in assumptions:
        assumption_risks.append({
            'risk_type': '假设违反',
            'description': f"假设'{assumption}'无效",
            'trigger': f"证据表明{assumption}是错误的",
            'impact': 'High' if assumption.startswith('Critical') else 'Medium'
        })

    return assumption_risks

### 2. **风险分析矩阵**
```javascript
// 定性和定量风险分析

class RiskAnalysis {
  constructor() {
    this.riskMatrix = [];
    this.priorityMap = [];
  }

  // 概率等级 1-5
  static PROBABILITY = {
    1: { name: '非常低', percentage: 0.1, color: 'Green' },
    2: { name: '低', percentage: 0.3, color: 'Green' },
    3: { name: '中等', percentage: 0.5, color: 'Yellow' },
    4: { name: '高', percentage: 0.7, color: 'Orange' },
    5: { name: '非常高', percentage: 0.9, color: 'Red' }
  };

  // 影响等级 1-5
  static IMPACT = {
    1: { name: '微不足道', value: 1, scope: '轻微不便' },
    2: { name: '轻微', value: 10, scope: '一些延迟或成本' },
    3: { name: '中等', value: 100, scope: '显著延迟或成本' },
    4: { name: '重大', value: 1000, scope: '关键失败风险' },
    5: { name: '灾难性', value: 10000, scope: '项目取消' }
  };

  analyzeRisk(risk) {
    const probability = this.PROBABILITY[risk.probability];
    const impact = this.IMPACT[risk.impact];

    // 风险分数 = 概率 × 影响
    const riskScore = risk.probability * risk.impact;

    // 风险暴露 = 概率 × 财务影响
    const riskExposure = probability.percentage * impact.value;

    return {
      riskId: risk.id,
      riskScore,
      riskExposure,
      priority: this.calculatePriority(riskScore),
      severity: this.calculateSeverity(riskScore),
      mitigationUrgency: riskExposure > 100 ? 'Immediate' : 'Planned'
    };
  }

  calculatePriority(riskScore) {
    if (riskScore >= 16) return 'Critical';
    if (riskScore >= 12) return 'High';
    if (riskScore >= 6) return 'Medium';
    if (riskScore >= 2) return 'Low';
    return 'Very Low';
  }

  calculateSeverity(riskScore) {
    return {
      score: riskScore,
      rating: this.calculatePriority(riskScore),
      responseNeeded: riskScore >= 12
    };
  }

  // 风险矩阵
  createRiskMatrix(risks) {
    const matrix = {
      critical: [],
      high: [],
      medium: [],
      low: [],
      veryLow: []
    };

    risks.forEach(risk => {
      const analysis = this.analyzeRisk(risk);
      const priority = analysis.priority.toLowerCase();

      if (matrix[priority]) {
        matrix[priority].push({
          ...risk,
          ...analysis
        });
      }
    });

    return matrix;
  }
}

3. 风险响应计划

风险响应策略:

风险 1: 与第三方 API 集成延迟
  概率: 高 (4/5)
  影响: 重大 (4/5)
  风险分数: 16 (关键)

  响应策略: 缓解

  行动:
    - 早期与供应商共同规划 (第 1 周)
    - 并行开发备选方案 (第 2-4 周)
    - 分配 20% 更多的开发时间 (缓冲)
    - 每周与供应商团队同步
    - 第二个月开始性能测试

  负责人: 技术负责人
  预算影响: +$15,000
  时间线: 6 周 vs. 计划的 4 周

---

风险 2: 利益相关者范围蔓延
  概率: 高 (4/5)
  影响: 中等 (3/5)
  风险分数: 12 (高)

  响应策略: 避免 & 缓解

  行动:
    - 建立变更控制流程 (第 1 周)
    - 第一阶段锁定需求 (第 2 周)
    - 每月范围审查会议
    - 为第二阶段创建功能积压
    - 严格的变更请求评估标准

  负责人: 项目经理
  避免成本: 每周 5 小时 PM 时间
  替代方案: 接受 2 周时间线延长

---

风险 3: 关键人员离职
  概率: 中等 (3/5)
  影响: 重大 (4/5)
  风险分数: 12 (高)

  响应策略: 缓解 & 应急

  行动:
    - 知识转移文档 (持续进行)
    - 交叉培训第二开发人员 (第 1 周)
    - 保持最新的运行手册
    - 竞争性薪资审查 (HR)
    - 设置导师计划

  负责人: HR 经理
  应急计划: 1 周内雇佣承包商
  估计成本: $20,000

4. 风险监控 & 控制

// 风险跟踪和监控仪表板

class RiskMonitoring {
  constructor() {
    this.risks = [];
    this.triggers = [];
    this.escalations = [];
  }

  createRiskRegister(risks) {
    return risks.map((risk, index) => ({
      id: `RK-${String(index + 1).padStart(3, '0')}`,
      description: risk.description,
      category: risk.category,
      probability: risk.probability,
      impact: risk.impact,
      riskScore: risk.probability * risk.impact,
      responseStrategy: risk.strategy,
      owner: risk.owner,
      status: 'Active',
      triggers: risk.triggers,
      contingencyPlan: risk.contingency,
      createdDate: new Date(),
      lastReviewDate: new Date(),
      closeDate: null
    }));
  }

  identifyRiskTriggers(risk) {
    return {
      riskId: risk.id,
      triggers: [
        {
          trigger: '供应商沟通延迟 >1 周',
          indicator: '未收到供应商回应',
          escalationAction: '联系供应商 PM,评估替代方案'
        },
        {
          trigger: '团队成员缺席 >3 天',
          indicator: '计划外休假',
          escalationAction: '激活交叉培训计划'
        },
        {
          trigger: '性能测试未达到基线',
          indicator: '响应时间 > 500ms',
          escalationAction: '紧急优化冲刺'
        }
      ],
      reviewFrequency: '每周站立会议'
    };
  }

  monitorRisks(riskRegister) {
    const statusReport = {
      timestamp: new Date(),
      summary: {
        total: riskRegister.length,
        active: riskRegister.filter(r => r.status === 'Active').length,
        mitigated: riskRegister.filter(r => r.status === 'Mitigated').length,
        closed: riskRegister.filter(r => r.status === 'Closed').length
      },
      criticalRisks: riskRegister.filter(r => r.riskScore >= 16),
      highRisks: riskRegister.filter(r => r.riskScore >= 12 && r.riskScore < 16),
      triggeredRisks: riskRegister.filter(r => r.triggered === true)
    };

    return statusReport;
  }
}

最佳实践

✅ 做

  • 尽早在项目规划中识别风险
  • 让不同团队成员参与风险识别
  • 尽可能量化风险影响
  • 根据风险分数和暴露进行优先级排序
  • 制定具体的缓解计划
  • 明确风险所有权
  • 定期监控触发器
  • 每月审查和更新风险登记册
  • 从实现的风险中记录经验教训
  • 向利益相关者透明沟通风险

❌ 不做

  • 等到问题发生才识别风险
  • 假设风险不会实现
  • 将所有风险视为同等优先级
  • 没有明确的触发条件就计划缓解措施
  • 忽视早期警告信号
  • 将风险管理作为一次性活动
  • 为关键风险跳过应急计划
  • 向利益相关者隐藏负面风险
  • 消除所有风险(不可能且不经济)
  • 因实现的风险而责怪个人

风险管理提示

  • 风险所有权激发责任感
  • 定期风险审查防止意外
  • 风险响应应该是成本效益的
  • 一定程度的风险容忍是健康且必要的
  • 记录的风险更容易管理