为什么你不擅长估算时间表?你该如何应对?为什么会出现计划谬误?如何制定一个克服计划谬误的时间表?总结一下:为失败做计划,却又想快速行动?

2025-05-28

为什么你不擅长估算时间表,以及你可以做些什么

为什么会发生计划谬误?

如何制定克服计划谬误的时间表

整合起来

计划失败,但想要快速行动?

悉尼歌剧院宣布落成时的目标年份为 1963 年,预算为 700 万美元。

整整十年后(1973 年),悉尼歌剧院开业,预算超出约 1 亿美元(为最初预算的 14 倍!)。

人类在估算时间方面总是很糟糕,这一点是可以预见的。我们过于乐观,忽视过去的经验,并且总是无法理解我们需要完成的任务的复杂性。

这种现象有一个名字——计划谬误。

计划谬误的影响远不止建筑项目。它会影响我们在工作中所做的项目、我们如何被评估,以及最终我们是否能成功实现目标。

计划谬误的最大弱点在于其可预测性。其根源显而易见,通过采用结构化的方法进行时间线规划,就能克服计划谬误。

为什么会发生计划谬误?

计划谬误最初由著名行为经济学者丹尼尔·卡恩梅南和阿莫斯·特沃斯基于1979年提出,此后一直受到广泛研究。研究人员得出了一系列一致的结论。

🌏人类思维广泛

像打扫厨房这样简单的任务,其实是由多个小任务组成的:洗锅碗瓢盆、从洗碗机中取出并装满餐具、清洁炉灶、倒垃圾——等等。如果你只考虑一项大任务,很容易认为它很容易完成。一旦你详细列举了这项任务的具体内容,你就会发现它需要的时间比你预期的要长。

🔀人类不擅长管理依赖关系

确定复杂项目的相互依赖关系对我们来说并非易事。我们倾向于选择对我们来说最容易的方法,而不是那些能够疏通或加速大型项目进展的方法。

🌟人类是乐观的

人类热衷于“快乐之路”。为了完成手头的任务,我们会思考理想的最终状态。这种乐观主义的自然后果是双重的:我们觉得任务会比实际更容易,而且我们不会为失败做计划。

鉴于项目包含大量复杂性和不确定性,涉及多人,并且一旦失败将带来巨大成本,我们很难估计项目需要多长时间,这是完全可以理解的。

幸运的是,有一种方法可以克服计划谬误。

如何制定克服计划谬误的时间表

一旦我们真正了解导致计划谬误的原因,我们就可以采取措施在规划过程中避免这些根本原因。

您可以采取以下步骤来确保您的时间表切合实际,并且不会成为我们有缺陷的直觉的牺牲品。

获得细节

正如我们所讨论的,一个看似简单的任务可能由几个比预期更难的子任务组成。

任务越小,越容易估算。

在制定项目时间表时,应将项目分解成最小的构成要素,并进行估算。估算完成后,再将它们加在一起,即可得到更长的时间表。

  • 从广泛角度入手。项目最大的可分离部分是什么?
  • 在每个步骤中,确定特定于用户的交互。换句话说,设身处地为用户着想,确定他们需要构建什么。
  • 在每个用户故事中,详细分解需要完成哪些工作才能提供理想的体验。最终,这些任务最好分配给具体的人员。

将项目分解为子任务

一旦列举了构成整个项目的子任务,就估计每个子任务需要多长时间。

然后将它们加起来,就得到了假设的个人完成该项目所需的总天数。

确定你的时间预算

一旦你确定了项目需要的时间,就该计算出在目前的人员配置水平下你实际上有多少时间。

要确定您的时间预算,第一步是确定谁在从事该项目,以及他/她具体分配了多少时间。

理想情况下,他/她每周5天,每天8小时投入到项目中。但是,考虑到新员工入职、休假、节假日以及其他非工作时间,实际的时间预算与实际时间预算存在很大差异。

时间预算电子表格

一旦有了时间预算,您就可以确定谁应该负责哪些具体任务。

但在执行此操作之前,您需要确定需要完成的任务的顺序。

揭开依赖关系的神秘面纱

了解组成项目的任务如何相互依赖是确定完成这些任务的顺序以及谁在执行这些任务的先决条件。

要确定需要完成的任务顺序,请浏览整个列表,并确定哪些任务需要先完成才能开始执行其他任务。逐个检查任务,并确定它是否依赖于其他任务,或者是否与其他任务相互依赖。

了解了这些关系后,可以绘制一个图表,看看是否存在任何瓶颈或高风险任务。了解了这些关系后,你就可以确定如何利用现有人员按顺序处理这些任务。

项目依赖项

提示:绘制任务依赖关系图的一个很好的工具是DiagremmeR,它可以在 R 中运行。

制定计划时要考虑失败

正如我们讨论过的,人类是乐观的,并且更倾向于想象幸福之路。不幸的是,幸福之路往往是一条鲜有人走的路,所以你有责任在规划时考虑到失败的可能性。

在你的时间预算中,考虑损失的时间

很少有人会把整个工作周都花在手头的项目上。在项目启动、休假、修复 bug 和节假日期间,大多数工程师在某个项目上的投入都不足 75%。请在时间表中明确计入这些时间损失,以便提供更切合实际的估算。

将测试添加到项目计划中

在完美的世界中,我们建造的一切都将按照预期运行。

不幸的是,我们并非生活在一个完美的世界。构建一个弹性的基础架构来识别和解决错误是一项昂贵但值得的投资,并且能够确保您的产品提供良好的用户体验。

作为项目的一部分,请为开发人员留出特定的时间来编写测试,以确保项目按照您的预期运行。

想要花更少的时间编写这些测试吗?

试试walrus.ai——一款 API,让您只需一行代码,就能用简单的英语编写集成测试。您的团队可以花更多时间编写客户可见的代码,减少测试时间。想了解更多?五分钟即可获得您的首个测试结果

整合起来

人类不擅长制定时间表,但至少我们可以预测时间安排。通过采用一种能够解决“计划谬误”根源的方法,我们可以更准确地估算项目进度。

最后,创建更好的时间表可以归结为几个简单的步骤:

  1. 确定项目的各个任务,并根据每个人在特定日期的工作量,估算每个任务的完成时间。做好应对不顺利情况的准备,并在计划中添加诸如编写集成测试之类的任务。
  2. 确定每个参与项目的人员的可用时间预算
  3. 概述构成项目的任务的依赖关系,以确定完成这些任务所需的顺序
  4. 根据你的时间预算,确定谁应该负责每项任务

那么你只要按照计划去做就可以了。

计划失败,但想要快速行动?

花费更少的时间编写测试来确保您的产品按预期运行。

Walrus.ai让您用一行代码以简单的英语编写集成测试。

免费试用,5 分钟内即可获得测试结果。

控制台中的集成测试

文章来源:https://dev.to/walrusai/why-you-suck-at-estimating-timelines-and-what-you-can-do-about-it-m1e
PREV
我觉得 Dev 中帖子的质量正在下降 2 个想法......
NEXT
How to Work Remotely Without Going Insane Remote work is not without challenges How to structure your days to live your best remote life Wrapping it up Are you a remote engineer?