粗略估算

关于估算的行为在我活着的历程中一度是引起过我的察觉的。
初中阶段,晚上寝室聊天环节,我应该是对某个小场地进行了周长的大致估算,引来大家的一致反对,当时我意识到其实我对我所估算的话题内容心里根本没有什么数,只是凭着感觉,随便说了一个数字。
“一圈应该怎么也得有200米吧?”我如是说道。
后来我清楚地意识到自己并不擅长做估算这个事情,所以这些年来,我已经下意识地让自己不去做关于距离、重量、面积、花费等各方面的估算,并且会觉得周围人进行类似话题的讨论而感到无趣。
懒得参与这样的事情。

第二次系统读本书,看到第七章时又觉得作者所言很有道理,做出一个准确率较高的估算,在很多场合的确很重要,回想之前GTD,年度计划等,都是书中引导自己进行估算,估算完成某件事情或项目所需要的时间,并让我可以正视自己要做的事情,放弃一些不重要的事情,make everything clear。

接下来谈一谈该章提到的有意思的估算例子,包括一些我进行估算的过程,以及书中的提示。

密西西比河一天流出多少水?
有两个思路。
其一是估算它的出口的横截面积,乘以流速。
另一个是流域面积乘以年降水量除以天数。
令人惊奇的是这两种完全是两个方向的思路算出来的结果竟然很相近。

关于估算的作用,书中举了一例。
Martin公司为夏季奥林匹克运动会构建通信系统方案,并进行了一系列计算。
度量了自己发送一封单字符邮件所需要的时间后,可以得出结论为该方案不可行。
这种验证成本很小的估算技术,由此而省下了巨大的人力与财力,既然根本无法实现,就换方案而不要浪费时间。说明估算在系统设计阶段起到了至关重要的作用。
对于这种不可能,书中的写法很有趣儿。这样的句子,着实让我惊叹了一小会儿。

计算显示,即使在宽松的假设下,提案中的系统也只有在每分钟至少有120秒的情况下才能正常运转。

提到了一些关于估算的基本技巧,包括从多个思路来验证量纲检验经验法则
当然,作为一种能力,想增强它并让它为己所用,最好的办法还是加强实践。
其中提到的一个经验法则很出名:72法则。它在估算指数过程的增长非常便利。
一个典型的例子为:
假设以年利率r%投资一笔钱y年,如果ry=72,那么y年后你的投资差不多会翻倍。*

那么,作为程序员,正在编写的这个程序运行起来会占多少内存呢?
进行关于特定语言存储方式的考虑以及具体的编写情况后,可以得到一个粗略的值,而真正跑起来进行验证,可能又为大相径庭,若此时仔细探究下去,分析原因,那么一定会在这个过程中学到很多意想不到的知识。

由于估算的不准备性,在进行设计时,要根据这个点,来设置安全系数。
书中的例子是一个已经断裂的大桥,和后人的设计增加了6倍的强度并无比牢固的例子。
但工作中更常见的一个例子是开需求评审会时,对自己要做的需求进行估时。
能够准备估计自己对一个需求的开发时间,是程序员一个很重要的职业技能。
有种说法是,新手程序员估1天结果做10天;有些经验的程序员估5天,做了3天;精于此道的程序员估3天就是3天。
由于会有一些意想不到的情况出现,新手程序员往往会乐观估计,而最终难以交付。
书中建议引入安全系数:

为了补偿我们的知识局限,在估算实时软件系统性能的时候,以2、4或6的系数来降低对性能的估计;在做出可靠性/可用性保证时,给出一个比我们认为能达到的目标差10倍的结果;在估算规模、开销和时间进度时,给出保守2倍或4倍的结果。

一个常见的估算法则被总结为Little定律,这句话就像一个常识公式一样可以背一背:

队列中物体的平均数量为进入速率与平均停留时间的乘积。

其实,现在分析一下,自己这么多年来懒得进行估算是因为真的要做好这件事并不容易。
首先需要一些生活经验,需要查一些必要的资料,基于需要进入短时间的较深层度的思考,而偏偏在我需要做出估算说出“这个跑道大约也就200米吧”时,是以一种无所谓的轻松语气和思想随口一说。彼时真要是让我开始认真起来去进行估算还真不会有那个心思。
但阅读本章,让我意识到估算的重要性,意识到了这是一个有时需要正襟危坐、全神贯注去思考才能完成的行为,并且要根据结果而做出接下来重要决定的事情,需要转变对估算的认识与态度,决定了估算是否会为你做得更多。


以下是几个值得一提的课后习题。

第七章最后其实是给了两份练习,分别在附录B和课后题。
在这里记一些有意思的题目以及一些解题过程。

[__, __] 2000年1月1日美国的人口数量,以百万为单位。

关于美国人数,脑子中可以蹦出的唯一的一条信息是4亿,而且它来自很早之前且一直没有更新过,应该上小学前就知道了,离2000年不远,所以我填答案为[350, 450],而实际结果为272.5万。

[__, __]拿破仑的出生年份。

刺客信条美国与法国两代主角是一个时代的,康纳是美国独立战争时期,而亚诺是法国大革命时期,康纳与华盛顿有交集而亚诺与拿破仑有交集,说明华盛顿与拿破仑年代相差不会太远。
估算华盛顿的年龄可以考虑美国历史,大约是200年,到了1818年,再减去个3、40年,我给出的答案是:[1750, 1780]。
而拿破仑是1769年出生。

使用Little定律的两个例子:

估算所在城市的人口死亡率。
论述“25美分硬币的平均寿命是30年”的真伪。

会发现不过是已知公式中两个参数的值求公式中的另一个值,但这种问题往往不够直观,需要稍微思索一番。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容