为什么软件开发人员会对估算产生误解的4个最大原因

男人看起来正在考虑 估计很困难。
即使在平凡的情况下,大多数人也不擅长此事。

例如,当我的妻子问我要花多长时间解决我正在处理的问题或回家时,我几乎总是总是回答“五分钟”。

我几乎总是老老实实地相信只需要五分钟,但是从来没有。 在大多数情况下,我的五分钟都花了半个小时或更长时间。

但是,与软件开发工作相比,我的五分钟估算通常是相当准确的-仅相差六分之一左右。

将软件开发的估计数减少多达一百倍并不是闻所未闻。 我实际上已经将一个小时的估计时间变成了两个星期。

但是,为什么软件开发估算通常会偏离这么大?

这是我发现的四个最大原因:

原因1:未知的未知数

这个短语最初是由美国前国防部长拉姆斯菲尔德(Donald Rumsfeld)提出的。 它基本上是指那些我们甚至不知道我们不知道的东西。

你不知道你不知道什么

你不知道你不知道什么

到目前为止,这是软件开发人员常常不愿做出正确估计的最大原因。 这也恰恰是我不愿告诉妻子回家要花多长时间的主要原因-我不知道自己不知道的干扰因素。

软件开发有很多未知数。 我们知道的一些未知数。

刚开始一个项目时,我们可能会有一个很好的主意,即需要将数据存储在数据库中,但是我们不知道该如何做。 那是一个未知数。 我们知道我们不知道最终需要知道的东西。

估计已知未知数非常困难,但是如果我们可以将其与我们之前已经完成的类似工作进行比较,则可以做得不错。

我不知道我写这篇特定的博客文章要花多长时间,但我知道我写同样长度的其他博客文章花了多长时间。

但是,真正令人恐惧的是我们甚至不知道的事情。


这些未知的未知事件潜伏在我们身上,因为我们甚至都不知道它们的存在-根据定义,它们是未知的。 知道我们在某处桥梁上必须要跨越的地方是一回事,另一件事是必须蒙着眼睛穿过一座桥梁,并且仅在跌落时才发现有关空隙。

不断地,在软件开发中,我们面临着不得不面对这些未知未知数的情况。 没有好的方法可以估算它们。 在这种情况下,我们能做的最好的事情就是给自己很多填充物和很多绳子,以便我们可以爬出我们掉入的桥的任何缝隙。

原因2:时间段长

似乎未知的事物还不够糟糕,所以甲板对我们的影响甚至更大。

大多数软件开发估算涉及相当长的时间。 敏捷开发实践已使这种情况有所改变,但仍然经常有人要求我们估计一次或一周的工作量。 (此外,我们不要忘记那些偷偷摸摸的项目经理,他们无论如何都试图将敏捷项目扔进Microsoft Project,然后说:“是的,我知道这就是敏捷以及所有,但是我只是想粗略了解一下何时完成所有功能。”)

估计很短的时间是相当容易的-嗯,除非我告诉我的妻子我要离开计算机需要多长时间,否则我想。 我们大多数人都可以准确地预测出我们刷牙,写电子邮件或吃晚餐所需的时间。

长时间很难准确估计。 估算清理车库,写书甚至去杂货店花多长时间更具挑战性。

产品对比


您尝试估算的时间越长,小的错误计算和已知未知因素的影响就可能导致初始估算严重偏离目标。

以我的经验,我发现估计所有需要花费两个多小时的事情才真正开始。

作为一项心理锻炼,请尝试估计各种长度的事物。

您需要多长时间:

  • 做10个俯卧撑?
  • 煮一杯咖啡?
  • 去便利店买东西?
  • 写一页信?
  • 看了三百页的小说?
  • 换车油?

请注意,如何在半小时内完成的事情很容易以高置信度进行估算,但是随着时间的推移,事情变得更加困难。

在大多数时候,我们进行软件开发估算时,我们不会尝试估算短时间,例如编写单个单元测试将花费多长时间,相反,我们倾向于估算较长的时间,例如完成完成将花费多长时间。一个特征。

原因3:过度自信

关于估计,我很冒昧。 我通常认为我在估算方面非常准确。 我的妻子会不同意-至少在估计时间方面,事情会花我很多时间。 历史可能会证明她的观点。

作为软件开发人员,我们通常会非常相信我们能够准确预测需要花费多长时间的能力。 通常,如果我们即将着手进行的编程任务是我们有信心的任务,那么我们的估计值可能会非常激进-有时甚至很荒谬。

faith,我当然可以在半小时内重写应用程序

faith,我当然可以在半小时内重写应用程序


完成该功能需要多长时间?

哦这个? 这很容易。 我可以在几个小时内完成。 明天早上我来做。

你确定吗? 那测试呢? 如果出现问题怎么办?

不用担心,这很容易。 根本不应该是一个问题。 我只需要在页面上放置几个按钮并连接后端代码即可。

但是,当您真正坐下来尝试实现该功能时会发生什么? 好吧,首先您发现它并不像您想象的那么容易。 您忘记考虑一些必须处理的极端情况。

很快您就会发现自己花了一整夜时间才准备好开始真正地解决问题。 时间变成几天,几天变成几周,一个月后,您终于有了一些可交付的代码。

现在,这可能有点夸张,但是过度自信可能是软件开发中的大问题,尤其是在估计方面。

原因4:信心不足

信心不足实际上不是一个字。 我想那是因为有人没有足够的信心将其放入字典中。

但是,正如过分自信会导致软件开发人员低估了编程任务将花费的时间一样,过分自信会导致同一软件开发人员过高估计完全不同的任务,这甚至可能会容易得多。

我不了解您,但是我经常发现自己不确定要花多长时间。 我可以将一个我不愿意做的简单任务变成一个似乎几乎无法逾越的大山。

我们倾向于将以前从未做过的事情比以往更艰巨,将以前做过的事情视为比以前更容易 -这只是人的本性。

尽管看起来可能并非如此,但自信不足对评估同样致命。 当我们缺乏信心时,我们更有可能在估计中增加大量填充。 这种填充似乎并不那么糟糕,但是工作可以填补分配的时间。 (这被称为帕金森定律。)

因此,即使我们信心不足,但似乎我们的估计非常准确,事实是我们可能浪费了时间,因为工作可能要花一半的时间来填补整个时间。为此分配。

(顺便说一句,如果您正在寻找一本关于敏捷估算的好书,请查阅Mike Cohn的书:《 敏捷估算和规划》 。)

还有什么?

我有遗漏什么吗? 您认为软件开发估算如此困难的最大原因是什么?

翻译自: https://www.javacodegeeks.com/2014/10/4-biggest-reasons-why-software-developers-suck-at-estimation.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值