这些天我一直在考虑估算。 在Healthcare.gov 网站惨败之后 ,以及所有的日程安排游戏 (其中许多都是估计问题),我考虑了为什么进行估计。
付出的努力越大,我们就需要进行更多的估算。 并且,您的估计将是错误的。 我们估计的越多,我们的日程安排游戏就越多。 您的工作量越小,估计就越容易。
这就是为什么我建议您在此估算系列中使用敏捷方法。 您可以分解并迭代。 您可以获得更多信息,并估计较小的块。 您更有可能获得准确的估算值。
软件正在学习
这是我估计的一个问题。 软件不是建筑。 我们不能像构建或制造任何东西一样来构建软件。 软件就是团队学习的全部内容。 我们可以设定学习时间。 我们可以选择停止做某事。 我们可以围绕它接受或发布标准,然后说:“我们到目前为止已经做够了。”
但是,我们不能说:“我们可以以每平方英尺xx美元的价格构建此软件。” 我们不知道该怎么做。 因为我们之前尚未完全构建此软件。 如果我们以前曾构建过这样的软件,则可以估算相当接近的数字,因为我们要么拥有具有良好估算质量的历史数据,要么拥有已知的少量工作,或者两者兼而有之。
当我们估算时,其他人会以他们在其他领域(尤其是建筑业)中对估算的想法来思考。 特别是如果您提供单点估计。 即使您提供了假设,但没人听到。
我们出于以下原因进行估算:
- 为了提供有关项目的数量级大小/成本/日期,因此出于计划目的,我们对大小/成本/日期有一个大概的了解。 数量级的大小意味着我们只想在估计中投入足够的时间,而我们相信该估计的准确性可用于计划目的。
- 我们想知道何时完成,因为我们很亲密。
- 我们需要分配一定时间的金钱或团队。
- 有人想知道应该归咎于谁。
除了估算之外,还有另一种方法
还记得我说过软件是关于学习的吗? 而且,还记得我说过我们永远(好的,几乎永远不会)两次执行相同的软件项目吗?
您可以执行以下操作。 使您的功能真的很小。 在每天的每个故事中蜂拥而至 (或者如伍迪·祖伊尔所说, 暴民 )。 每天都要完成一个或多个故事。
如果您始终拥有可交付的软件(包括所有测试,文档以及所需的一切),则无需进行任何估算。 您还将获得学习的好处,因此,如果有人问:“要做事有多难?” 整个团队可以挤在一起几分钟,然后说:“也是这个故事,那个故事以及这个故事。”
然后他们说:“我们至少知道这是三个故事,这已经超出了我们的头脑。 这些故事比我们排在首位的故事重要吗?”
(或者,证明它,JR!)
我不估计我的工作。 我从事的工作很多,从5分钟到一个小时不等。 我很少工作一个小时。 我的大部分工作都花了更少的时间。 今年,我转移到了较小的工作上,产量翻了一番。
我今年完成了一本书,而另一本是Beta版。 我还有更多的书在写。 所有这些都保持相同数量的口语和培训参与。 我写了差不多相同数量的博客文章。 我编辑了更多agileconnection.com文章。 为什么我还能做更多?
因为我的任务很小。 因为它们很小,所以我不必估算。 我的工作没有估计时间。 我在工作。 那改变了一切。 我会随时对最有价值的东西进行排名,并继续努力。
你为什么估计?
你为什么估计? 如果您因为自己一直都估计而已,请考虑一下。 如果您估算是因为您的理财人员想每年进行一次货币分配,那么您知道这是虚构的。 您无需进行详细的项目估算就可以做到。
对于资金分配,请确定该项目对您有多有价值。 项目什么时候必须交付价值? 现在,告诉项目团队何时必须交付价值。 就这样。
请记住,您雇用这些人是因为他们是聪明,负责任的人。 从阶段开始,不要再说那些废话了。 告诉他们你想要什么。 请记住,存在这些阶段是因为管理层希望能够在项目进行得太早之前取消该项目。 您应该在每个阶段展示可交付成果和重新评估。 如果在每个阶段都没有取消,交付和重新估计,则您的阶段对您不起作用。
给他们买一份“ 管理它”的副本! 您的《现代务实项目管理指南》 ,其中介绍了如何在任何生命周期中管理项目。 给他们排名积压。 让他们交付。 如果他们无法按时付款,他们会告诉您。 他们是负责任的人。
如果需要数量级估计,可以。 不需要几天的时间就可以确定。 这需要几个小时。 这将是正确的错误和正确的数量级。 计时吧。 这是一个数量级。 不要让任何人相信这一估计。 (快速,估计的定义是什么?“猜猜。”这是定义。我不骗你。)
如果您因为认为自己已经接近项目的结束而想知道何时完成工作,请问自己一个问题:是否值得花时间估算完成时间? 有可能。 但要知道您要花些时间才能完成工作。
而且,如果您要玩责备游戏,请记住,管理是最需要承担责任的人。 为什么? 因为管理设置了约束。 不相信我吗? 立即阅读估算系列 。
我可以同情管理层对估计的需求。 我喜欢许多事物的数量级估计。 当我们接近时,我什至喜欢具体的估计。 但是,创建软件并不像在某个地方开车或建造建筑物。 当我开车到某个地方时,我确实需要分步说明。 建造建筑物时,我确实需要一个估计。 即使这样,我也可以肯定估计是乐观的。
在创建软件时,我希望在我们创建软件时能看到它在运行,因为我们可以通过软件来学习。 学习是最重要的。 因为一旦我们学到了足够的知识,我们就可以停止。 那才是最有价值的。 不是估计。
翻译自: https://www.javacodegeeks.com/2013/10/why-do-we-estimate-anyway.html