——众所周知,一名孕妇需要36-42周才能够产下胎儿,那么如果有10名孕妇,产下胎儿的时间可以缩短到一个月以内。如果您真的着急,希望在2周之内要个孩子,那么我们只能够再添加一倍的人手。——写在最前。
一般来说,本人读书之后,都会在一两个星期之内总结并且完成读书笔记,不过《人月神话》是一个例外。一方面是由于本人并非是编程或者计算机的专业出身,对于一些主题或者内容的研究并没有那么深入,对于一些事实或者论点难以找到实际工作或者生活中的“类似案例”(是不是真的没有不确定)而产生共鸣,另一方面则是需要自我反省的便是最近自己在学习方面花费的时间和精力的确有一些下降,以上两点造成了在读完这本编程界洪荒年代(该书第一版成书于1975年)的巨著大约半年之后(根据本人网易云笔记的读书摘要记录显示),才来得及提笔写下该书的读书笔记。
由于该书所描述的内容比较庞杂,本人预计将分为三篇文章对于相关内容和感想进行阐述。
作为开章第一篇,就先来说说为什么“人月”是“神话”。
小学的时候我们都做过这样的应用题:“工厂需要加工一批零件,安排5名工人的话需要10小时完成,那么安排25名工人加工,多少小时可以完成”之类的。对于这类题目,小学一二年级的学生都可以轻松得到答案。也正是如此,如今的工作中,仍有不少同仁秉持这样的小学生思维来衡量工作量,跟进工作进度。他们没有发现,如今的工作已经远非小学的应用题。那些稚子玩闹的应用题,在人生和工作的大部分场景中,实际上根本无法“应用”。
让我们回到《人月神话》这一本书,它的第一章叫做“焦油坑”。
当一滴焦油,掉在你身上的时候,你使用各类有机溶剂洗涤,只要有充足的耐心反复搓洗,总能够将之解决;那么两滴、三滴乃至更多的焦油滴到身上呢,这时你可能会觉得麻烦,就把那件弄脏的衣服丢弃了事;再发展一步,当你掉到了一个“焦油坑”中,你会如何?这个坑填埋不掉,脱身不出,净化不得,你和你的工作任务只能如同困兽一样不断挣扎,最终被它吞噬。可是不要忘记,这“焦油坑”可是从一滴一滴的“焦油”累积而来的,正如书中所言,“表面上看起来好像没有任何一个单独的问题会导致困难,每个都能被解决,但是当它们相互纠缠和累积在一起的时候,团队的行动就会变得越来越慢且很难看清问题的本质。”这不禁我想起了《倚天屠龙记》中张无忌在武当山顶剑斗方东白(阿大)的那一幕:“张无忌的一柄木剑在这团寒光中画着一个个圆圈,……木剑每发一招,便似放出一条细丝,要去缠在倚天宝剑之上,这些细丝越积越多,似是积成了一团团丝绵,将倚天剑裹了起来。两人拆到二百余招之后,方东白的剑招渐见涩滞,手中宝剑倒似不断的在增加重量,……偶尔一剑刺出,真力运得不足,便被木剑带着连转几个圈子。”即便是绝顶高手,也会陷于这一滴一滴小小的焦油形成的“深坑”。
这便是“人月神话”为什么会成为“神话”的原因,如原文所述,“因为一些意想不到的交互会产生许多不易察觉的bug,测试工作将会非常耗时,因此相同功能的编程系统构件的成本至少是独立程序的三倍。如果系统有大量的组成单元,成本还会更高。”,“人们发现调试和查错往往是线性收敛的,或者更糟糕的是,具有二次方的复杂度。结果,测试一拖再拖,寻找最后一个错误比第一个错误将花费更多的时间。”。当任务复杂度逐渐增加时,我们习惯于计算工作量的两个单位“人”和“月”就不再能够互相转化了,“人月”神话最终走向破灭。
标签:02,读后感,编程,神话,应用题,焦油,木剑,一滴 From: https://www.cnblogs.com/kun1790051360/p/17338117.html