啊。您的老板想要估算您的客户要求的几个新功能。问题是,您最后的估计 过于 乐观,与实际所需时间相去甚远。谈论最后期限的压力,嗯?
这里有 5 个简单的方法可以避免再次犯同样的估计错误。
1.穷人的土地:凭直觉填充
改进估计的最简单和最常见的方法是对估计应用“直觉”偏差因子。除非你有过分保守估计的记录,否则大多数错误实际上是由于过于乐观而导致估计任务持续时间太短而造成的。
很长一段时间以来,我个人将我的估计乘以我最初估计的 1.5 倍:假设我认为添加新的网络服务 XYZ 将需要 6 小时。我通常发现 9 小时(1.5 倍)会更安全,因为我一直低估了任务的复杂性——高估了我的能力。
你是怎么得出这个数字的?穷人的版本:您只需在 1.0 和 3.0 之间选择一个感觉合适的。 是的,你没看错。
2.简单的时间跟踪
但是从你的直觉中随机选择那个数字也是次优的。下一个改进是实际跟踪/写下您的估计和在一两个月内花费的实际时间。如果您的公司已经使用某种错误/时间跟踪工具(如 Jira 或 Youtrack) 并且您必须跟踪您的时间,那几乎没有问题。
然后,您只需生成一个包含 3 列的报告:过去两个月的所有估算总和(567 小时),所有实际花费的小时数(1024 小时),然后您的实际小时数除以估计小时数 = 1.8 倍。瞧!
3.高级时间跟踪
只需将 Jira 中的小时数加在一起,就可以忽略正在估算的工作的上下文。也许您实际上非常准确地估计了一组特定的任务,例如编写财务规则,也许您在处理其他任务时遇到了更多困难,例如部署您的软件。为新的估计查看过去的类似任务的估计不是很好吗?
如果您在 Jira 中标记您的任务/用户故事,您可以简单地按标记名称导出报告中的所有实际/估计值。然后计算不同的偏差因子。并使用那些相关的、过去的任务作为你新估计的参考。
4.最重要的是:满足这些要求
如果您没有花适当的时间来解构您的需求并且对业务和程序员之间究竟需要做什么产生高度准确和相互理解,那么所有这一切都无济于事。是的,这一点的重要性常常被完全忽视。召开无聊的计划会议!=理解。
记住那句老话:你怎么吃掉一头大象?一块一块的。与软件估计相同。不要犯盲目估计房间里整头大象的错误。您可以 在我关于客户需求的书中了解如何(不)这样做以及更多内容。
5. 建造尖刺
不幸的是,“敏捷世界”的大部分人宁愿玩无数个小时的计划和估算游戏,也不愿花 30 分钟的时间为您的实际任务构建一个小而简单的尖峰版本。通常,尖峰是处理更大或技术上更模糊的任务并给出正确估计的唯一有意义的方法。
不要让你的同事说服你尖峰只用于垃圾桶,因此是浪费时间,你应该用故事点快速估计一个未知的任务。恰恰相反。
概括
估算通常被视为某种模糊事件,您和同事坐在一起,看起来非常紧张几秒钟,然后突然弹出一个神奇的数字。难怪这些估计不可靠并且投诉很高。
使用上面的技术,你会发现你的估计随着时间的推移变得更加准确。