为什么您从来没有完成您计划的工作?[关闭]


26

我总是开始思考“我会在一天结束时轻松完成此工作”,并设定看起来像是一个现实的目标。

那么,为什么我从不打它呢?由于无法预料的错误,最后的更改等,任务最终总是需要花费3倍的时间才能结束。

只有我吗?我似乎无法更好地预测一天可以做什么。


8
不只是你 参见霍夫施塔特定律
彼得·布顿

18
因为您是在浪费时间在P.SE上提问,而不是干自己的工作:) :)
Jas 2010年

2
下次您估计任务时,将结果乘以3,

3
我不打算做任何事情,而且我总是赢。我将所有错误的大小都定为无穷大,因此速度始终是不确定的。
工作

1
我的老老板曾经说我的时间报价是猫年。我认为他只是将每个报价上调了一个数量级。小时->天;天->周;周->月;月->退款客户。
2010年

Answers:


17

因为从未教过您如何计划。

计划是一种技能,就像编码或写作一样。但是,几乎所有课程都将其排除在外。

它需要学习和实践,并且您对自己能力的估计需要不断更新。这就是为什么像Agile这样的工作实践会强调衡量您过去的实际工作并将其与您的估计进行比较,以便您可以提高计划能力的原因。

就像其他人所说的那样,您不仅需要考虑任务,还应该考虑任务的所有前任,伴随的任务(例如,学习如何做X),并且需要意识到自己内部的心理偏见,这将阻止您正确说明您的实际工作方式。

对此进行培训,谁知道您会变得更好。


8
除了不为一天中的所有短时间食宿者做计划而使计划变得困难之外,计划也是一项学习起来并不有趣的技能。当您遇到编码错误时,您会得到一个错误,并对其进行了修复,然后您从中学到了教训。当您遇到计划错误时,您将失败!!!截止日期的延长会使您感到难过,并让您感到失败,所以很多人只是没有计划。为了解决这个问题,我开始保留非常详细的详细待办事项清单,但我总是给自己愚蠢的额外时间。然后,我感到非常有成就感,因为我总是预算有限!
CodexArcanum 2010年

@Codex,很好。有多种方法可以使“计划失败”成为您可以针对其进行“编码修复”的内容。每个计划失败都是学习的机会。研究诸如“根本原因分析”之类的技术以帮助了解故障的背景,以便您可以更好地计划下一次,并介绍可以阻止将来发生故障的特定对策。
Alex Feinman

1
学习不仅不好玩,而且常常感觉很浪费时间。我称其为“元工作”-花时间分析或组织您的工作。当有大量工作要做时,元工作就好像您在雪崩下建立自己的绝热洞穴一样,而不是试图挖掘自己,但实际上,您正在做的是增强工具以为将来的工作做准备。
nlawalker

截至撰写本文时,已有11人赞成此答案。这就是说,有11个人被误解为实际上有一个计划可以正确估计所需时间。
罗伯特·哈维

@nlawalker:学习不好玩吗?如果我一天之内没有学习到新的东西,每天清醒的每一小时都下地狱,那我认为这一天是失败的。
2010年

26

很难相信,没有人提到霍夫施塔特定律

我认为真正的答案是,您的计划始终以最佳方案为前提,就好像一切立即生效,不会发生任何中断。在现实生活中,您开始编码,然后电话传声响了,您分散了5分钟的时间,花了15分钟在stackoverflow或程序员身上。进行一些谷歌搜索,花2个小时测试可能的解决方案,等等。

换句话说:“最佳情况”只发生在您的梦想中。


1
请参阅@Peter Broughton的评论(在回答前5小时!)。
克里斯·夫(ChrisF)

是的,克里斯夫,您说的对。一定错过了那个。
user281377

+1。从本质上讲,这就是为什么我遵循“做出合理的估算,然后再加倍”的规则。即使那样,它通常也需要更长的时间。我在uni的一位讲师曾经说过“三倍”。所以我想我还可以。:)
Bobby Tables 2010年

10

每位程序员在很长一段时间内都会拥有完美的一天。您会在闹钟响起前5分钟醒来,感觉很棒。早餐是在柜台上制作的,还有新鲜的咖啡,因此您可以抢些东西然后出去。在上下班途中,您碰到了所有绿灯,交通似乎特别畅通。考虑到您的前一天,您能够完全了解您的任务的设计和后果,而这些任务的计划和要求都是经过严格计划的。

您开始工作,发现自己没有重要的电子邮件,没有语音邮件在等待,您的同事不在或不在会议中,您不必参加。您启动了编辑器,并立即进入区域,您可以感觉到代码的结构,并看到数据结构和算法完美地结合在一起。想法通过您的双手流到键盘,输入完美而优雅,可维护且没有错误的代码。

白天,您可以无间断地工作,办公室安静,而且您专心致志,以至于您从未想过要花费任何时间赶上新闻,博客等。编译和运行测试时,您会发现一切毫无疑问,它可以正常工作,并且最终您可以毫无冲突地进行承诺。在您出门的时钟上瞥了一眼,您发现自己投入了12个小时,感觉就像是一个简短的20分钟编码会话。

那天,那一天是完美的一天,这是我们假设每次必须估算任何东西时都会得到的。


7

不要忘了开会,打扰您的人等等。难以预料的错误很难预测,但是随着时间的流逝,您应该能够了解在特定时间内发现了多少个错误。在估计需要花费多长时间时,您必须考虑上下文。即“假设我不会被打扰或发现错误,那么我应该能够在X时间内完成某些工作”

作为您自己的一些小练习,请考虑执行以下操作:

  • 在一天的开始,写下您的目标是什么,以及完成目标的时间。
  • 在每次中断(会议,同事交谈等)时,记下大概的时间长度
  • 每次发现新错误时,请将其记录为一项计划外任务,以及大约需要花费多长时间来开发它。

您会发现一些模式开始出现,并可以针对这些模式进行计划。每当您告诉经理预计的完成时间时,只需用第一段中的假设加以说明。当您消除花费在中断和错误上的时间时,您可能会惊讶于估计的准确性。

在处理错误列表或功能列表时,您可能已经在做第一个和第三个要点。这项小小的练习将告诉您所有时间的去向,您可能会对答案感到惊讶。


+1如果我记下了收到的每次打扰,除了需要更频繁地订购文具外,我一天中的大部分时间都无法记笔记。
2010年

3

您可能希望扩展可预测性的时间范围。您能确定一周内可以完成的工作吗?如果每个任务花费的时间比您想象的要长三倍,那么听起来您的一致性足以使其可预测。您只需要调整3倍;)


+1始终错误仍然是一致的!结果。
2010年

2

因为您只是忽略了可能发生无法预料的错误的事实。

对花费在错误上的平均时间进行一些统计,并在制定计划时将这些时间考虑在内。


1

因为您的计划不正确。哎哟

我敢打赌,如果您连续计算出漏失的总数(甚至在纸上),然后将估计值上调该百分比,就可以正确地计划。

FWIW,众所周知,软件很难估算。麦康奈尔(Code Complete名誉)甚至都有一本书。


1

我经常发现自己做的事情被与我所做的事情无关的随机事物分散了注意力。待办事项清单可以帮助您;当您想到某件事时,请写下来,并在完成眼前的事情后再做。



1

紧急/重要矩阵可能值得考虑,看看您的一天去了哪里。是在紧急但不重要的事情上,例如未准备的会议和打扰吗?是一天开始时您所不知道的紧要事项吗?仅需考虑一下您的时间会花在哪里。


我倾向于认为最有趣的事情很重要,否则为什么会有趣?只是一个想法。


1
我对这种技术的问题一直是看不见的“三维”:如何使事物有趣。不幸的是,对我而言,每一次有趣都胜过紧迫感和重要性。
2010年

0

这是一个很好的问题,我一直在思考。我倾向于认为

  • 错误判断X所需的工作量非常容易。
  • 我从来没有计划过虫子或水壶旅行。
  • 要么用很少的代码就可以完成很多工作,要么什么都不做就可以完成很多工作,而且两者之间似乎没有任何关系。
  • 有时您会失去自己的“专区”,有时事情需要深思。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.