侯世达定律 (Hofstadter’s Law):即使考虑到侯世达定律,开发周期也总是比你预期的要长。——侯世达 (Douglas Hofstadter)
在估计需要多长时间开发时,你可能会听到此定律。软件开发似乎有这样一条定理,即我们往往不能准确地估计需要多长时间才能完成。
侯世达定律(英语:Hofstadter’s law)是一句自指的格言,由侯世达在《哥德尔、埃舍尔、巴赫》一书中提出:做事所花费的时间总是比你预期的要长,即使你的预期中考虑了侯世达定律。
侯世达定律指做复杂任务需要花费的时间总是很难预计的。程序员经常会引用这一定律,特别是在进行有关提高效率的讨论时(如《人月神话》和极限编程)。其自指的特征反映了即便意识到任务的复杂性,预计花费的时间仍是困难的。
这一定律最初是描述早年国际象棋人机对弈的现象。侯世达写道:“计算机下国际象棋的早期阶段,有人曾估计再要十年的时间计算机(或程序)就能得到世界冠军。可是,十年过去之后,计算机要成为世界冠军似乎还要再过十年……”他将这一现象看作是递归化的侯世达定律的一个例证。
参考
https://github.com/nusr/hacker-laws-zh
https://en.wikipedia.org/wiki/Hofstadter%27s_law
https://zh.wikipedia.org/wiki/%E4%BE%AF%E4%B8%96%E8%BE%BE%E5%AE%9A%E5%BE%8B