在使用不熟悉的技术时提供估计?


19

最近给我带来了一个新问题,它为我必须使用我不熟悉的框架(可能还有另一个框架的某些部分)的项目提供了一个估计。当我自由使用自己熟悉的内容时,对我来说提供估算值要容易得多,但是当要求对陌生领域的工作进行估算时,似乎已经使分析工作陷入瘫痪。

回想起来,我的解决方案是错误的。我只是开始工作。

当我需要使用不熟悉的语言/技术/框架时,如何更好地估算项目和任务?


2
实际上,对从未完成的事情进行估算是不可能做到的。我最近被问到在未知数众多的情况下需要花费多长时间的情况时,我作了一个比喻:“想像一下,您晚上在乡下走出去。那是黑色的沥青。您需要在地面上走一英里。您知道往哪个方向走需要走,但是你只有一个能照亮十英尺的灯笼,你不知道前方是什么:田野,河川,山峦。鉴于此,你可以做出有根据的猜测,但最终你会受制于无法控制的事物“
Nemi

这也取决于估计的目的。您是否估计最可能的情况?最差的情况?是否有艰巨的期限?
David Thornley

@David我相信这将是“最有可能”的情况。
桑普森

Answers:


18

敏捷教科书的标准答案是执行峰值。峰值是探索未知事物的一项有时间限制的任务,因此最终(希望)您有足够的信息可以提供有用的估计,或者您可以更好地了解到达该点需要多少时间。

峰值可能持续1小时到几天甚至更长的时间。由于它们是有时间限制的,因此任何一方都不会涉及风险,并且支出受到严格限制。

理想情况下,在峰值期间,您将确定一些需要使用此新框架实现的简单事项,并使用该框架设置非常简单的解决方案。随着学习的进行,您将学到东西,这就是峰值的全部原因。


最好添加“ spike”是Scrum的术语。
Jesper

1
听起来不错。在我的特定情况下,我的“钉”由项目本身组成。实际使用该任务作为我熟悉的网关,而不是一些无关的任务,这似乎是我宝贵的时间。
桑普森

10

做到这一点的经典方法是精炼。在第一次计划会议上,您说;

“我不知道-我们基本上是在这里进行软件研究。但是,下个月的会议,我会在几个月后得出更好的估计”

然后,您离开去进行研究。下次会议:

“看起来将需要两个到四个季度的时间。我们将构建一个原型,这将使​​我们进一步完善数字”。

下次会议:

“原型比我们想象的要容易构建。看来我们可以在两个季度内(一个月或一个月左右)完成它。”

等等。在每个阶段,企业都可以选择取消项目,也可以继续进行,这样就可以对完成日期进行越来越好的估计。

史蒂夫·麦康奈尔(Steve McConnell)的著作《快速发展》(Rapid Development)中对此作了很好的描述,这本应广为人知。当然,它比我读过的任何有关“敏捷”的书都优越。


+1感谢您的见识,@ Neil。我也会研究这本书的建议。
桑普森

2

您可以进行研究,但仍然会得出错误的估计。请参见JP Lewis的软件估计的最大限制,以及随附的软件估计的数学限制。我并不是说您不应该为估算或研究而费心,只是因为您无法做出客观准确的估算,您需要将其与您得出的任何估算一起说出来。


3
根据定义,估计是不准确的,并且似乎许多经理和/或客户都在为这一现实而苦苦挣扎。
wolfgangsz
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.