【不确定性】不确定度锥实验

视频号

微信公众号

知识星球

Chinese, Simplified

不确定性锥是一种强大的工具,根据项目开始时的知识量(或缺乏知识)来描述完成项目所需时间的不确定性。在这篇文章中,我们探讨了Codebots的一组人员进行的一项实验,以确定不确定性锥的应用如何提高项目估计。

作为软件评估系列的一部分,我们探讨了管理期望作为任何软件项目的一部分的重要性。本文将重点讨论不确定性锥,这是一个强大的工具,可以减轻范围界定和估计过程中涉及的风险。它的核心是基于项目开始时的知识量(或缺乏知识)来描述完成项目所需时间的不确定性。它最终解释了项目因未知而失败的风险,以及你试图估计的未来越远,你就越有可能出错的事实。这是一个有趣的悖论,我们想准确地预测未来,但我们不能真正准确,因为这只是一种估计。

Image

如果您还没有,我建议您熟悉我们之前在Codebots进行的一项实验,以了解如何最好地管理软件中的风险。这项工作的动机是我们的软件团队在进行评估时经常过于乐观。

在为自己配备了提出实验的最佳程序后,我们在固定范围估计中发现了一个问题。无论项目的长度如何,每个报价都至少包含80%的工作量变化。由于我们没有应用不确定性锥,我们为客户提供现实估计和管理他们期望的能力受到了严重阻碍。

第一步:了解问题

如上所述,当我们在报价阶段提供固定范围的价格时,我们在估计中遇到了一个问题。(固定范围意味着提供确切的要求,但时间长度灵活)。无论项目的长度如何,由于有大量的变化,我们总是会跳过。

根本原因——我们没有一个不确定的锥。我们没有考虑到这样一个事实,即你试图预测的未来越远,时间方差的增加就越大。这是由于存在许多特定风险,其中最严重的风险是估计不准确、范围变化和最终用户参与。因为这一切都是在一开始就估计的,所以没有机会改变估计来解释这些发现的风险。相反,这些风险的影响在项目的整个生命周期内都会加剧,这意味着项目越长,你就越想预测,因此你就越有可能出错。

第二步:提出一个假设

在消化了这个问题后,我们接下来致力于开发一个假设,以测试如何将不确定性锥准确地应用于我们的固定范围估计。

由此,假设在给定项目长度的情况下,可以使用一个公式来计算不确定性锥的大小。

第三步:计划实验

根据我们的假设,我们开始计划一个实验来测试我们的不确定性锥的命题。为此,我们生成了一个二次函数来模拟我们的圆锥体,其中一个参数表示预测的发育周数。然后,我们可以根据我们试图预测的未来,将这个乘数应用于我们的估计,以解释时间方差。

Image

如果我们将此应用于以前项目的估算数据,那么我们就可以确定带有变化的固定范围价格是否更准确。

步骤4:收集数据

我们从各种项目中收集了数据,包括分配和花费的时间、完成的故事、完成前的时间信息,包括关于项目和遇到的风险的附加说明。

根据这些估计,我们使用不确定性锥计算了每个项目的假设固定范围值。使用这些信息,我们能够检查我们完成初始工作和额外变化所实际花费的时间是否与使用不确定性锥生成的新估计值相当。事实证明,改进后的估计和实际花费的时间非常相似!

第五步:做出决定

最后,数据表明,如果我们将不确定性锥应用于一个固定的范围,使用一个考虑到项目长度的公式,我们最终会得出一个估计,该估计将考虑到项目开发过程中发生的变化。

最终,我们建议开发团队不要试图估计整个项目,而只关注和估计少量的工作。这将有助于减少未知因素的影响,从而减少不确定性锥的大小。这也意味着,随着团队在项目中的工作,他们会对项目有更多的了解,当涉及到估计下一块工作时,他们可以减少不确定性,做出更准确的估计。

本文地址
https://architect.pub/cone-uncertainty-experiment
SEO Title
The cone of uncertainty experiment