跳转到主要内容

保存的文章

估计还是不估计,这都是上下文的问题

Mike Cottmeyer领导敏捷
Mike Cottmeyer
阅读: 估计还是不估计,这都是上下文的问题

我想我发现自己(有点意外地)在一系列帖子的开头“我觉得辩论毫无用处……让我们继续”。本周最新一轮的讨论(至少对我来说)似乎是关于“是否评估”的谈话。这个问题的答案显然属于“视情况而定”的范畴,所以如果我们有一个涉及任何一种绝对的争论,我们很可能是在浪费时间。

即使在商业、非政府、软件产品开发等领域,也很少有一种单一的方法来做任何事情。我确实相信,在这个领域中,大多数估计在功能上是无用的,但了解什么是可估计的,什么是不可估计的,更重要的是,什么让事情不可估计,以及为什么不可估计,我发现这是一种更有用的对话方式。

如果我们决定不进行估算,我们最好对这个问题有一个可信的回应。你什么时候能完成,我的钱能换来什么因为要求某人花一桶钱,承诺他们可能会在桶用完后得到一些东西,通常是不可能的。当然也有例外,但对于大多数公司来说,这个问题的答案非常重要,所以我们需要另一种方法来解决这个问题。

几乎总是当有人叫我公司……他们不是真的寻找建议如何创新、如何构建合适的产品,历史上还没有被我们的品牌……他们正在寻找帮助使用敏捷制造和兑现承诺,让产品进入市场前,提高质量、降低成本。当将敏捷引入大型复杂的组织并解决它需要的不仅仅是更好的评估时,这通常是我们的最佳选择。

评估有什么问题?

给我们打电话的公司想知道他们需要花多少钱才能得到一个特定的结果。他们希望能够做出承诺并履行承诺。他们希望能够管理好客户的期望。

为了进行这样的对话,你必须首先看看为什么组织是不可预测的。大多数时候,并不是他们无法估计,而是他们在同一时间有太多的事情要做,他们有太多的依赖关系,以及太多的非即时可用的资源。亚傅体育app他们相信优化个人的生产能力,这导致他们让人跨多个计划,这只是进一步加剧了上述所有问题。

即使您解决了对齐问题,并且减少了很多阻碍交付的浪费,但公司往往并不真正知道他们想要构建什么。他们不知道该如何建造它。他们甚至可能不知道谁将确切地做这项工作(当他们需要进行评估时),我们都知道我们可以看到在团队中任何给定的开发人员之间的吞吐量和生产力的剧烈波动。

即使公司可以消除浪费,消除瓶颈,这样……即使他们知道,他们是如何建造它,和有一个高度一致稳定的软件工程师,开发人员能够提供可靠地估计经常…他们工作的代码没有覆盖在测试中,有大量的技术债务和缺陷,并且通常没有以一种有助于稳定交付吞吐量的方式进行架构设计。

评估是要解决的正确问题吗?

这是我的看法,已经建立了我们的背景和领域,我认为问如何做更好的评估是一个错误的问题。我不认为我们的评估问题比我们的组织协调问题更严重,我们有投资战略问题,我们肯定有风险管理问题。作为公司,我们把关键资金放在了回报可能性非常低的投资上……我们依赖有缺陷的评估来降低风险。

这就是困扰我们的问题。

我们希望使用估算来减少不确定性,最终增加不确定性。

我们希望使用评估来减少风险,最终增加风险。

我们希望相信,有了足够的前期计划,我们可以确切地知道我们需要构建什么以及我们将如何构建它。有了足够的历史信息,或者足够的前期分析,我们就可以确定工作需要多长时间。我们希望相信所有的开发人员都是一样的,并且每个开发人员都可以像其他开发人员一样以相同的速度完成所有的估算工作。

在实践中,根据我的经验,这行不通。

它所做的只是将感知到的风险从业务转移到开发团队,然后每个人都损失了。亚博vip9通道

要解决的正确问题是什么?

这里我们要处理一个有趣的悖论。这是不合理的……但毫无疑问……这是当今大多数软件行业的现实。亚博vip9通道

我们生活在一个需求不确定、技术快速发展、人不可预测的世界里……在这个世界里,技术的架构很糟糕,变化会导致意想不到的后果,我们必须能够做出承诺,并在一定程度上保证我们能够在分配给项目的时间和成本内实际解决业务问题。亚博vip9通道

我们搞清楚这个问题,否则我们的公司就会倒闭。

在大多数组织中,任何解决方案如果不能回答我们什么时候完成工作,我们用我们的钱能得到什么,都是不可能成功的。

在大多数公司里,没有估价是不可能的。

要解决这种非理性,需要改变很多想法,但在最高层次上,你必须从两个基本维度来解决这个问题……

1)尽你所能优化吞吐量和稳定的交付能力,和…

2)关注预算和约束,而不是评估。

这是什么意思?让我解释一下。

优化吞吐量和稳定的交付能力

考虑到需求、技术和人员的不确定性,你必须优化交付系统,尽可能地消除这种可变性。

对我来说,这意味着创建完整的跨职能团队,即面向单一产品、特性或业务能力的团队。亚博vip9通道你必须让这些团队尽可能清楚地了解他们想要解决的问题。他们需要被给予必要的工具,并被要求对定期生产可测量的、可工作的、经过测试的产品增量负责。这让我们能够通过采样频率来评估进展。

对我来说,这正是敏捷真正发挥作用的地方。形成良好的敏捷团队,根据一个已知的待办事项列表工作,并且在每次迭代结束时能够产生一个可工作测试的软件增量,将开始稳定交付吞吐量,并成为定期交付的可预测交付。在一个真正稳定、结构良好的团队中,通常可以评估待办事项并根据待办事项建立速度。

但是即使有良好的敏捷团队和稳定的交付吞吐量……需求空间和解决方案空间仍然存在可变性。在我们的问题域里,这不是很容易解决的,那么你会怎么做?

建立预算和限制超过估计

这就是我认为估计的概念给我们带来麻烦的地方。我们常常不知道要构建什么,甚至不知道如何构建,信不信由你,在我们的领域里,这可能是件好事。如果我们的领域是不确定的,我们不想假装不确定不存在,或者更糟的是,强迫某种程度的确定性,这对我们的产品或公司不利,或者迫使我们在获得更多信息时做出早期决定。

考虑到商业不允许软件生产是完全开放的亚博vip9通道,我们该怎么办?

我们通常建议人们仔细观察他们的产品路线图,考虑他们的产品在接下来的6个月、9个月或12个月里需要处于什么位置,并对他们认为达到这个目标需要做一个非常高的估计。在这个抽象层次上,您不只是考虑您认为做这项工作将花费什么,而且还考虑您愿意投资什么来获得您期望得到的投资回报。

在这个抽象层次上,它不必完全正确,只需方向正确即可。

一旦你有了一个高水平的估计,停止称它为估计。这是一份预算。这是一种约束。

当你开始细化需求的过程,并成熟你对你正在构建的产品的新兴理解时,你不再问自己“需求是什么”或“我将如何如何构建它”。你在问自己,我们可以开发什么解决方案,可以在业务要求我开发的时间和成本限制下交付。亚博vip9通道这是约束产品开发和满足目标的一个非常强大的思考工具。

您正在实时地调整需求以解决业务问题,并将解决方案调整为可以在已建立的约束条件中构建的东西。亚博vip9通道您将大量的精力投入到需求分解、尽可能早地完成MVP、从交付团队获得反馈、积极地管理约束条件下的待办事项,并调整以满足业务目标。亚博vip9通道为了满足业务结果,我们在所有层次上进行权衡。亚博vip9通道

这就是IMO敏捷风险管理的本质。

降低风险和管理不确定性

在商业、非政府、软件产品开发领域,许多组织组织得不好,技术架构也不好,我们一直在进行关键性的高风险投资,竞争激烈,快速进入市场是必不可少的,我们正在处理需求、技术和人员方面的不确定性,考虑到这些限制条件,有时候东西是不可知的。

也就是说,不预估是不可取的。不限制开发不是一种选择。好消息是,存在一个稳定的交付组织完成跨职能的敏捷团队的形式……团队工作对一个已知的积压和能够产生一个测试工作增加产品定期…和上下文中的一个投资策略,是建立在高层次估计很快预算和限制…我们可以开始交付计划。

我们现在可以开始根据我们的假设评估进展,并积极管理风险,以确保我们优化成功的机会。

我们可以开始枚举积压,并在进行的过程中进行相对规模的估算。由于团队是稳定的,我们可以开始将估算与构建它们的实际成本相关联。我们可以使用过去的性能数据来预测未来估计的准确性。我们积压的工作越多,我们就能更好地进行规划。因为我们知道我们的进展,我们可以看到我们在与我们的商业目标相抵触的地方。亚博vip9通道

当事情发生变化时,我们有明确的视线到我们的顶级业务目标,我们可以评估如何影响我们试图完成的事情,以及我们积压的新兴大小会影响我们满亚博vip9通道足这些目标的能力在我们建立的时间和成本限制范围内。当我们了解到事情变得太大时,我们可以拿出一些东西,同意花费更多并更长,或者我们可以杀死这个项目。

有时候,我们咬下了超出我们能力范围的东西。有时候,我们想要进行的投资在我们进入并开始构建之前是不可知的。有时候我们刚开始时便意识到自己完蛋了,而我们唯一可行的选择便是终止项目,减少损失,并感谢自己花了尽可能少的钱去发现自己所做的一切都是徒劳的。(在任何方面)都不能保证成功。

我们只需要知道什么时候应该尽早离开。

分离可知的和不可知的东西

我认为很多我们认为不可知的东西往往比我们认为的更可知。仅仅因为我们不知道该建造什么,并不意味着我们对建造什么一无所知。仅仅因为技术是一团乱,并不意味着它是一团乱,我们不能在某种抽象级别上使用它。仅仅因为开发人员的吞吐量不同,并不意味着我们不能做出一些相当准确的规划级别假设。

也就是说,我曾与一些团队合作,他们正在发明新的数学算法来解决以前从未解决过的问题。我曾与开发人员进行过交谈,他们的估计可能在2个小时到2个月之间,甚至可能我们的团队无法解决这个问题。老实说,团队确实不知道,再多的分析也不能帮助他们知道。他们只需要尝试。

我想做的只是承认这些问题的存在,但它们并不是所有的问题。我对这些问题采取的方法是将它们与我们能够更好地理解和交付的内容隔离开来。现在,我们要做一个商业决策,即亚博vip9通道使问题永远得不到解决,产品也有价值吗?它还值得投资吗?考虑到解决方案的这一方面永远无法解决的风险,是否值得花钱?我能承担这个商业风险吗?亚博vip9通道

我们面临的一个很大的挑战是,我们在不可知的事物上押下了很大的赌注,我们在尚未被充分理解的事物上做出了艰难的承诺。我们必须更好地将研发与更容易理解的产品开发分离开来。如果我们要投资研发,回报最好足够大,这样失败的风险就值得了。我们不能假装不确定性不存在,也不能估计不确定性。

总之

要有一个理性的对话,关于评估什么或如何评估,看看我们试图解决的问题的本质,被特许解决它的组织的本质,我们试图建立的投资和风险概况。我们需要评估我们对不确定性的容忍度。不要假装我们可以估计我们不能估计的东西,但要认识到有些东西在某些条件下是可以估计的。

我的经验是,我们可以通过组织对齐,计划和投资组合管理,投资合理化,风险管理,预算限制在制品和关注流程,这可以极大地帮助公司更好地做出和实现承诺……是的,甚至可以更好地进行估算。

同样地,我认为存在一些根本不适合进行评估的问题,真正的问题不是评估或不评估,而是将必要的资金分配给高风险的工作,这些工作伪装成软件产品开发,但更像是实验性的研发。

你只需要知道你所在的行业,建立你的组织来适应这些现实,亚博vip9通道评估和控制你能做的,停止要求那些不符合你的现实感觉的事情。这就是说,除非您准备投资于比我所知道的大多数组织有能力执行的更高级的项目建模。

注意:我刚意识到这是LeadingAgile上的第600篇文章。这是一个很酷的里程碑。谢谢你的陪伴和支持;-)

下一个;小风险大有裨益

作为敏捷的首席执行官和创始人,Mike Cottmeyer热衷于在更大、更复杂的企业中解决与敏捷相关的挑战。为此,他和他的团队致力于提供大规模的敏捷转换服务,以帮助实际地、增量地和安全地引入敏捷方法。

评论(2)

  1. 丹尼尔•扎卡里亚斯
    回复

    伟大的分析,迈克。

    我可以证明你的观点是正确的。

    在我们的团队中,使用约束与评估,以及随着时间的推移保持一个稳定的团队(从长期的核心团队成员中成长)是非常重要的。

    作为旁注,我们正在使用看板,并使用一种间接的评估方法,这对我们来说非常有用:所有待定项最多应该在两天内完成。通过合理的方差,我们可以让平均值很接近这个值。比起着眼于更大的内容并通过任何其他技术进行估算,团队更容易将任务分解到2天内。

    回复
  2. 亚历克斯龙
    回复

    伟大的博客。这启发了我选择我正在从事的项目的方向。我们一直纠结于评估和发布计划的正确级别。

    这也加强了我对团队评估的方法。让我们继续做,但不要把它变成一个数学方程:)

    非常感谢

    回复

留下你的评论

您的电子邮件地址将不会被公布。必填字段被标记*