在回答Dealing with awful estimates发布的“Ash”时,我分享了一些我学到并亲自用来发现弱估计的提示。但我确信必须有更多!
当需要快速评估由第三方(同事,业务合作伙伴或外部公司)编制的软件项目估算时,在场景中使用什么启发式?
如果没有对手头任务的详细了解,可以发现软件估算较弱的明显且不那么明显的迹象是什么?
答案 0 :(得分:22)
答案 1 :(得分:19)
没有人说过,所以我愿意。显而易见的答案是,如果你有软件进度估计,那么这是不切实际的数字的明确信号。是的,有很多估算软件的方法,但它们都不是以任何方式,形状或形式准确的。通常发生的是设定截止日期。如果任务被高估,那么花费额外的时间来使结果更好。如果任务被低估,那么就会牺牲某些东西来满足交付(如测试和功能)。
我知道这个答案不是人们想要相信的,但估算总是一个猜测。通常情况下,开发人员甚至无法预测他们将在一天结束时完成多少工作。你期待他们在未来几年/几年内猜测他们甚至不确定真正涉及到什么的事情。
对于您的问题,不容易产生不切实际的结果的唯一实际答案是使用根据您公司以前的历史记录提出猜测的工作表。不幸的是,这不会解释估算人员遗漏的任务。至少这可能会给出球门号码。
除非你一遍又一遍地开发同一系统的敲门声,否则任何认为他们已经弄明白这一点的人都在欺骗自己。涉及的变量太多了。
答案 2 :(得分:11)
估算有两种类型:任务估算值和项目估算值。您可以将这些视为大小图片。
项目估算必须是高级别的(粒度通常不小于几天),并且必须包含以下内容:
缺少的东西越多,估计就越不现实(或冒险)。
第二种任务估算,通常低得多。对于这种估计,它应该只是一个任务分解(没有任务大于5天)。
这些不倾向于解决上述问题,但其中一些可能是相关的,例如关于尚未做出的决定的假设(例如生产硬件)。由于相关经验,背景知识或技能(因为该人或那些人可能最终过度使用),也可能值得确定谁能够和不能完成任务。
其他帖子提到测试时间应等于或超过开发时间。我强烈反对这一点。我已经看到8小时开发任务导致100多个小时的测试时间和80小时开发任务导致不到2小时的测试。在这两种情况下,测试时间都是完全合理的。这两者之间没有绝对的相关性。充其量,连接松散。
答案 3 :(得分:6)
计算你得到“是”或“可能”答案的问题数量......
如果您对上述问题的回答大多为“否”,则可能值得详细查看估算值,以确定其是否包含此主题中列出的其他人的任务。
答案 4 :(得分:5)
并且我同意任何估计都是有缺陷的,因为它假设估算器比估算项目估计时任何估算器实际上做的更多地提供了解决问题的线索。但是,我认为你还需要在开始之前至少估计山的大小。一些人认为是否值得尝试这样做应该先于任何努力,这就是估计的本质所在。
我确实想出了一些危险估计的指标:
答案 5 :(得分:3)
一个好的启发式方法是查看测试时间与开发时间大致相同。这是估计的一个好兆头。
如果他们不能给你一个估计的细分那么这是一件坏事。通常是许多可能被遗忘的小事的标志。他们不需要提供完整的原始细分,只需要像以下一样细分:
他们应该使用标准模板来计算他们的估计。它们不需要每列中的数字,但是它们会使用模板列出所有可能的任务。这样,在进行估算时,模板可以用来慢慢考虑人们的想法。
如果估算过于精确,例如0.25小时的增量,那对我来说是难闻的气味。
如果缺少需求捕获,测试,部署和切换到任何Ops组?如果其中任何一个缺失,那就会回来咬你。
编辑:要注意的另一件事是旧的“永久完成90%”的任务。在将任务列为“90%完成”的进度更新后,您将获得进度更新。那不好!
HTH
欢呼声
答案 6 :(得分:2)
是编译器的 估计可用和愿意 与其他高级项目讨论 成员?如果没有,那往往是一个 关注。
估算是否发送给了 客户之前的体验和 开发人员的技能是 众所周知。两点估计可能有所帮助 但只是在某种程度上。
(顺便说一下,谢谢你回答我的问题。)
答案 7 :(得分:2)
我完全赞同Dunk,估计错误的第一个迹象只是存在大量详细的前期计划。估计恰好是近似值,否则我们称之为精确 imates。所以他们永远不应该单独用于项目的管理。
要考虑的最重要的一点不是估算的准确度,而是一致性。如果第三方正在为您做估计,那么请询问他们成功或失败的历史,与过去的客户交谈并确定他们的可靠性。
从敏捷的角度来看,我们试图在项目中获得更一致的估算的一些方法是:
如果您正在与使用这些估算方法的公司打交道,那么您很可能会获得一致且因此更好的结果。
答案 8 :(得分:2)
如果你看到其中一个或多个,你可能估计不好:
我同意sateesh,我真的很喜欢软件评估:揭开Steve McConnell的黑色艺术神秘面纱。他有几个清单,在审查和/或准备估算时很有用。
答案 9 :(得分:1)
估计表格3个月,6个月或12个月(基本上任何轮数字)的猜测。通常当你猜测你选择一些比你想象的更大的圆数 - 四分之一,半年等 - 是通常的嫌疑人。我非常喜欢在实际开发迭代方面的估计(无论其大小如何)。
答案 10 :(得分:1)
有什么显而易见的,不是这样 软件薄弱的明显迹象 可以在没有发现的情况下发现估计 非常详细的任务知识 手?
在没有详细了解手头任务的情况下给出的估计通常不好。
您可以采取的一般方法是检查要求中的项目是否与估算中的项目相对应。如果你想非常快速地检查相对大小,如果对一个100,000字的简报有一个100字的估计,它就没有机会正确。
另外(正如其他人所说)检查分析,编码,调试,测试,集成,应急等。它表明了一些想法。
在各个阶段取得成功并签署标准是一个好兆头。如果他们有一个定义的点,至少在估计错误的情况下完成了10%,你就知道了,并且有机会适应。如果在“完成”之前没有检查点,您可能不知道自己落后,直到该日期被击中。
答案 11 :(得分:1)
与做这项工作的人一起估计的人有多熟悉?
我经常看到有一个普通人做这项工作的估计,即使团队由背景不同的人组成。最有可能的任务和专业没有完美排列,你得到一个c ++服务器端程序员,最终做你的gui或你的数据库...有时团队的经理并不真正欣赏团队成员的优势,所以如果他被要求自己拿出估计,因为他的团队忙于上一个项目,你会发现有问题的工作真的只适合团队的一部分(不是激励,缺乏技能等)< / p>
答案 12 :(得分:0)
“四到六周”,如果没有细分任务......
答案 13 :(得分:0)
以下任何一项:
答案 14 :(得分:0)
一个好的估计将有一个很好的细分,涉及项目的所有阶段。
几乎肯定不会在方便的日期完成业务。
它将包括各种风险。
它将以置信区间表示,无论是隐式(10-12个月)还是使用大单位(约四分之三)。
这将由负责完成项目的人制作,最好是不止一个人。
如果一开始有延迟,最后会有延迟(表示从开始10-12个月,如果我们现在开始,大概是2010年第一季度,而不是像项目尚未开始的2010年1月那样)
将清楚明确地列出假设和依赖性。
编辑:部分内容取决于项目所处的阶段。早期但精确的估计是一个警告标志,特别是如果没有分配置信区间。这对Procrustean的估计很不满意。
另外,请注意其他开发方法。时间盒项目可以有严格的任意计划,但功能集将是灵活的。
答案 15 :(得分:0)
我检查了对人力的估计。虽然不是一个非常准确的启发式,但很明显,如果一些大型工作只分配了一个或两个开发人员,那么任务就没有被正确估计
答案 16 :(得分:0)
评估估算值的另一种有用方法是将其与之前类似项目的实际工作量进行比较。比较的最佳数据是组织已完成的先前项目的工作量数据。如果没有组织历史数据,您可以尝试将估算值与行业广泛的基准进行比较。
我还会说,如果估算值是单个绝对数字(比如说180天),那么这不是一个好兆头。单个绝对数字表示估计是任务将以给定数据的100%概率完成。在一个范围内(例如130到180天)提出的估计值表明可以完成任务的范围。
我上面写的大部分内容都归功于这本书:
软件评估:揭开黑人艺术的神秘面纱 作者:Steve McConnell