原文:https://web.archive.org/web/20170603123809/http://www.tuicool.com:80/articles/7niyym
讨论:https://news.ycombinator.com/item?id=28667174
项目估算一直是一门神秘的艺术,尤其是在游戏开发领域。我曾听说过一个神秘的数秘学小团体,他们会将时间预估乘以 π(圆周率)。据说,这种做法能给他们留出足够的缓冲时间,以应对新需求、测试、迭代以及各种不可预测的范围变更。
起初,我觉得这种方法既奇特又武断,但它激起了我的好奇心。如今,我很高兴地宣布,我已经成功为他们的 “圆形估算猜想” 建立了坚实的数学基础。
某个人 —— 也许是设计师、你的主管、执行制作人、朋友,甚至是你妈妈 —— 让你做一件事。你思考片刻,记下几条要点,分析所需的工作内容,最终制定出一个计划,并给出时间预估。
但情况总是会发生变化。事实证明,设计师、制作人、主管、朋友,甚至你妈妈,都漏掉了一些重要细节。而在实际工作过程中,你又产生了一些改进的想法,结果工作量变大了。
当然,事情也不会一帆风顺。你的第一次尝试以失败告终,但却带来了宝贵的经验。接着,你匆忙进行第二次尝试,结果又引入了一堆新问题,花了不少时间才修复好。后来,你又额外花了两天时间研究其他可行方案。总的来说,你走了一条曲折而漫长的道路才最终抵达目标。
那么,相比最初的计划,你最终花了多长时间呢?结果证明,那些神秘的数秘学家是对的……
所以,最终你的项目花费的时间是多少?经过研究、设计、讨论、原型开发、失败、测试、需求变更,以及创意过程中的种种曲折之后,毫无疑问,你的工作量最终达到了最初计划的 π 倍。
当然,一些人可能会质疑我的数学严谨性,甚至不同意这个看似无可辩驳的结论。有人可能会认为正确的倍数不是 π,而是 2、√2、e,或者黄金比例 φ。不过,我还从未听说过有人认为这个倍数 小于 1。
无论你倾向于哪种 “数字信仰”,关键在于,你必须允许自己承认这样一个事实:当你启动一个项目时,你并没有完整的全局视角,也无法预知整个过程的走向,而且前方还有许多你完全没想到的工作。不管你在规划和任务分析上下多少功夫,都无法彻底改变这一点,所以 别太纠结于精确估算,给自己留出合理的缓冲,然后动手干活吧!
哦,对了,上周末你列出的待办清单?你只完成了大约三分之一,这可不是巧合。😉
圆形估计假说
圆形估计假说(Circular Estimation Hypothesis)是一种估算方法,强调通过多次迭代和反馈逐步逼近准确结果。其核心思想是:初始估算可能不精确,但通过不断调整和修正,估算结果会逐渐接近实际值。
关键点
对项目估算的应用
在项目管理中,圆形估计假说常用于应对项目初期信息不足或不确定性高的情况。以下是具体应用步骤:
1. 初始估算
方法:基于有限信息,使用类比、专家判断或参数模型进行初步估算。
特点:初始估算通常较为粗略,可能存在较大误差。
2. 迭代调整
方法:随着项目推进,获取更多信息后,定期更新和调整估算。
特点:每次迭代都基于最新数据,逐步减少不确定性。
3. 反馈与修正
方法:通过实际进展与估算的对比,识别偏差并修正估算模型。
特点:反馈机制确保估算结果不断优化。
4. 最终估算
方法:在项目后期,估算趋于稳定,接近实际值。
特点:最终估算较为准确,可用于决策和资源分配。
应用示例
假设你负责一个软件开发项目,初期需求不明确,可采用圆形估计假说进行估算: