转载

使用“无估算”准时交付价值

Vasco Duarte建议大家应该尝试用# 无估算 的方法学习并发现可以帮助他们准时在预算内交付价值的方法。他撰写了一本书《无估算》,解释了为什么估算无效,以及如何使用 无估算 来管理项目。

InfoQ采访了Vasco Duarte,让他分享了# 无估算 的观点,以及人们如何使用# 无估算 在项目中制定决策。InfoQ还问到了大家为什么抵触 # 无估算 以及如何处理。Vasco还解释了他是如何发现并开始使用# 无估算 的。

InfoQ:您可否简单分享一下#无估算的观点?

Duarte 当然,在很多年前,大约1999年或2000年,在项目中我很苦恼,尽管他们几乎都准时完成,但管理却很痛苦。我们有难开的会议,大家都不热心,我们不断努力地满足最后期限,并且临近截止日期时,我们与缺陷做斗争,想要准时发布项目。简而言之,我知道一定有更好的方式可以开始尝试,并找到那种方式。

首先,我们从需求流程开始尝试。我们只用愿景文档和用例文档,而不是传统的需求。让我惊讶并高兴的是,团队变得更开心了,项目交付了更好的结果,交付了更多的价值,并且为了符合期限,对移除哪些范围做出的艰难决定也变得容易了。然而,符合期限仍然很困难。

我们下一步就变得非常清晰,我们不是估算用例,而是开始管理他们来满足特定的内部期限。我们有定期的范围会议,更早地进行测试,我们投入了自动化测试,并停止了把所有东西一起估算,我们只是以小增量来交付价值,并衡量我们的交付速率。除了没有使用估算,我们的做法就是今天所谓的敏捷,。因此,甚至在我们知道敏捷之前,我们就开始实践一些东西,与我们今天的Scrum很接近,但没有估算。对于我来说, # 无估算 就是:准时并在预算内交付价值。

Infoq:您可否解释一下如何管理用例,以小增量交付?

Duarte 这是一个很好的问题:我们如何增量地交付,即使这样做并不容易?实际上,这是一个很重要的问题,我在书籍#无估算中开始编写指南来帮助读者:不管是用户故事还是用例,发现一种方式来增量地交付功能。

那时候我们所做的就是,不断地、彻底地审查每一个用例,脑海中抛出一个问题:我们可以去除哪些内容并仍然能够交付价值?我们审核每一个前置条件(Precondition)、使用者(Actor)、保证,以及场景等。并问:我们可否不要这个并仍然能够交付价值?经过了多个迭代,比较容易的做法是对使用者(Actor)定义非常清晰的优先级,谁第一个服务,谁第二个等。然后介绍演示(Demo)的概念,这是我们实施Scrum时所使用的。重要的一点是,感谢敏捷软件开发采用了增量交付的流程,使得实现更加容易。

InfoQ:很多人争论,没有估算我们无法对比选项,以及在项目中制定决策。在项目中,您如何用#无估算来制定决策呢?

Duarte 在项目中,每一天都制定很多类型的决策。从#无估算中最受益的决策类型是,超过项目控制现有的约束,不得不做的决策。在我早期使用#无估算时,我们有非常明确的时间限制。关于期限,我们所销售的产品市场一点都不灵活。我们做消费软件产品,而且我们最大的销售窗是圣诞节。不管你如何争论,日期不可能改变。我们奢侈不起延期,哪怕只有几天。

对于我来说, # 无估算 尤其可以在这些情况下交付,就是日期没有商量。为了满足这种类型的期限,我们需要在项目中制定上百,甚至上千个决策。没有清晰的、可证实的数据源指导我们的决策,我们就会失败,无法满足圣诞节期限。而估算既不清晰,又无法证实,或至少为时已晚。估算受各种内部政治因素的影响,并且正常的偏差影响了我们的判断。在我们开始使用#无估算之前,我工作的公司记录的跟踪数据显示平均62%的项目延迟,每100天的项目延迟62天。这简直无法接受,有了#无估算,我们创下了准时交付的完美跟踪记录,。因为我们并没有使用估算,而是基于现有进度数据制定决策,并且现有数据是在任何项目中都有的。

InfoQ:您都使用了那些进度数据,以及如何使用的?

Duarte :对于我们来说,进度就是在类生产的环境上交付用例(后来称为功能或者用户故事)。实际上,这一点非常重要,如果我们完成了用例的开发,但没有部署。然后我们后期就会发现问题。也许他们是整合的问题,或者是质量问题,或许是其它类型的问题,所以至关重要的是用运行的测试故事(Running Tested Stories)衡量进度,我在书中使用这一术语。也就是,故事是经过部署的,测试的,并在类生产环境下运行了的。

进度数据通过提供不断更新的信息来“告诉”我们决策,信息是每周的,在一些项目中甚至是每天的,告诉我们哪些已经完成了,哪些还没有完成。

通过查看这些进度数据,并基于该数据预测未来,我们用低成本、或无成本,不断地更新项目的时间轴。当你收集这样的进度数据时并不需要漫长而无聊的估算。

InfoQ:我看到人们抵触#无估算,您知道这是为什么吗?对于如何解决有哪些建议吗?

Duarte 大家通常都会抵触任何威胁到他们信念,或者让他们感觉到远离舒适区的想法。我也是一样,我在实践中发现#无估算的仅有原因就是我别无选择。如果我想让项目准时,并按照预算发布,估算没有效果。这有大量的数据证实这一点,甚至围绕这一领悟创建的一些有趣的定律。我喜欢的定律是:Hofstaedter 定律,“就算你考虑了Hofstaedter定律,你还是会花费比你预计更长的时间!”

InfoQ:如果大家想学习更多有关#无估算的内容,您可否推荐一些资源?

Duarte 现在有很多人在演讲、以及写有关无估算的内容。最简单的就是到YouTube网站搜索“无估算(NoEstimates)”,会有很多视频有助于你学习#无估算都是关于什么的。我也对此话题正在开始编写一本书,我想帮助那些正在陷入项目失败困境的人们,并解释#无估算如何帮助他们扭转那些项目。这本书在 NoEstimatesBook.com 网站上的限定时间内是免费的。

InfoQ:在可以使用#无估算之前,您认为还有其他需要进一步发展的吗?

Duarte 是的,每个人都需要试验并发现#无估算可以帮助他们的方法。对#无估算并没有单一的、统一的定义,并且我期望这一想法可以和其他思想整合,例如Scrum,看板等。对我很重要的是人们用这个想法试验,学习并分享他们的见解。我们仍在#无估算旅程的开始阶段。

InfoQ:您认为#无估算将会如何发展,未来将会带给我们什么?

Duarte #无估算是个对话,始于Twitter的一个业内需要的主题标签,我每周都会收到来自于发现这些想法的人的邮件,并且非常兴奋最终有一个思维模式的可能性,可以帮助他们准时交付项目,没有延时,并且质量不错。在软件行业,有了这个方法,我们应该有一个良好的生活质量, 不能再把这个方法藏起来了。现在大家都可以使用它并从中受益。

查看英文原文: Delivering Value on Time by Using #NoEstimates

正文到此结束
Loading...