返回笔记

Evidence Based Scheduling

AI 摘要 · Qwen 中文摘要 收录
查看原文

Evidence-Based Scheduling 通过拆分小时级任务、记录实际工时并用蒙特卡洛模拟生成交付日期概率分布,帮助团队做出更现实的排期和范围决策。

EBS 的核心思路

  • Evidence-Based Scheduling 基于历史工时数据生成交付日期的置信分布曲线,而不是只给出一个交付日期。
  • 曲线越陡,表示对预测交付日期的信心越高。

任务拆分

  • 排期应拆成可按小时估算的小任务,单个任务不超过 16 小时。
  • 拆分任务会迫使开发者先明确具体步骤和详细设计。

记录实际工时

  • 通过工时表记录每个任务的估计时间和实际时间。
  • 用估计时间除以实际时间得到 velocity,用于反映开发者相对估计的速度。
  • 通常只保留较新的 velocity 历史,例如六个月以内。

蒙特卡洛模拟

  • 用开发者历史 velocity 随机调整每个任务时间,模拟多个可能的未来。
  • 每次模拟得到不同交付日期,汇总后形成交付日期概率分布。
  • 模拟需考虑开发者工作日程、假期和节假日,并以最后完成者作为团队完成时间。

处理中断与不可预测时间

  • 遇到老板打断、会议、帮助新人等情况时,可继续让原任务计时。
  • EBS 通过历史 velocity 自动吸收这类时间损耗,无需单独估算。

主动管理项目

  • 可按优先级查看裁剪低优先级功能对交付日期的影响。
  • 可查看每个开发者的交付日期分布,识别估算不稳定、负载过重或不在关键路径的人。

范围蔓延与缓冲

  • 应在原排期中预留缓冲,用于新功能、竞争响应、集成、调试、可用性测试和 Beta 测试。
  • 可每晚记录交付日期置信分布,跟踪 95%、50% 和 5% 概率曲线。
  • 如果交付日期每天向后移动超过一天,说明新增工作快于完成工作。

排期管理原则

  • 只有实际执行工作的开发者应创建估算。
  • 发现 bug 的修复时间应计入原任务。
  • 排期像木块盒:若装不下,只能延期或删减功能,不能假装压缩工作量。