写点什么

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

2015 年 5 月 26 日

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

2015 年 5 月 26 日 09:36982
用户头像

发布了 55 篇内容, 共 10.8 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

在数据分析、挖掘方面,有哪些ETL工具值得推荐?

会飞的鱼

大数据处理 kettle 海豚调度 批量任务 ETL

Soul 网关源码阅读(二)代码初步运行

Java 源码阅读 网关

GitHub标星150K的神仙笔记,3个月肝完成功面进美团定级3-2

Java架构之路

Java 程序员 架构 面试 编程语言

iOS性能优化 — 五、App启动优化

iOSer

ios 性能优化 性能分析

华云大咖说|企业混合云构建之道

华云数据

云计算 桌面云

PHP转JAVA开发30分钟实战攻略

dothetrick

Java php

百度面试被算法血虐,闭关29天肝完445页算法神仙笔记成功入职字节跳动!

Java架构之路

Java 程序员 架构 面试 编程语言

Spring的@Import 注解的作用与用法

程序员小毕

Java spring 源码 架构 注解

特斯拉自建ERP的背后

明道云

从CPU到XPU进化,英特尔对业界放了什么大招?

intel001

Soul 网关源码阅读(一) 概览

Java 源码阅读 网关

Soul 网关源码阅读(四)Dubbo请求概览

Java 源码阅读 网关

安卓开发实战!闭关在家37天“吃透”这份345页PDF,成功定级腾讯T3-2

欢喜学安卓

android 程序员 面试 移动开发

二本学渣考研失败,为什么Android要采用Binder作为IPC机制?已开源

欢喜学安卓

android 程序员 面试 移动开发

物流快递公司APP架构设计

jorden wang

智能量化对冲搬砖套利交易软件APP系统开发

开發I852946OIIO

系统开发

极客训练营知识点思维导图

jorden wang

2021年,字节/百度/阿里相继发布50W+优质Java岗(含内部面试真题及答案)

996小迁

Java 程序员 架构 面试d 面试大厂真题

工作10年,面试超过500人想进阿里的同学,总结出的108道Java面试题

Java成神之路

Java 程序员 架构 面试 编程语言

解读容器的 2020:寻找云原生的下一站

阿里巴巴云原生

Docker 云计算 Serverless 容器 云原生

Nginx 的负载均衡模式有哪些?它的实现原理是什么?

码农架构

nginx 架构 微服务

面试阿里Java岗,技术总监真正关心的核心能力是什么?

Java架构追梦

Java 编程 架构

Soul 网关源码阅读(三)请求处理概览

Java 源码阅读 网关

2020最新拼多多Java面试题(现场五面),全面涵盖Java高级到高并发

Java成神之路

Java 程序员 架构 面试 编程语言

阿里开发10年技术核心总结,Springboot+Redis文档,送给努力上进的程序员

Java成神之路

Java 程序员 架构 面试 编程语言

架构师训练营第十三周笔记

李日盛

笔记

训练营第十三周作业

大脸猫

初识ClickHouse——安装与入门

Simon

Clickhouse

刚参加完阿里P6面试归来(Offer已斩获),6点面试经验总结

Java成神之路

Java 程序员 架构 面试 编程语言

蚂蚁Java三面:二叉树+HTTPS加密+自旋锁+缓存穿透(送答案)

Java成神之路

Java 程序员 架构 面试 编程语言

Java 程序经验小结:剖析@SuppressWarinings注解

后台技术汇

28天写作

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

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