《人月神话》读后感2----乐观主义者和带有欺骗性的神话
按照我本来的计划安排,我每天拿出25分钟阅读,15分钟来写一篇读后感。每次包含一章的内容。后来我发现我错了,正如布鲁克斯老师在书中写的一样:“我认为用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话”。我昨天试读的第一章焦油坑和第二章人月神话的字数虽然相差只是几百字,但是,这其中包含的内容包含的思想却是有很大的差别。我就是布鲁克斯老师书中描写的那种乐观主义者。如果说我的阅读计划算是一个项目计划的话,他能顺利的完成的条件是:“一切都将运转良好,每一项任务仅花费他所‘应该’花费的时间”。很显然,我错了,第二章的内容量远远大于第一章,我所给他分配的时间根本不能完成我所安排的任务”。
布鲁克斯老师在文中提出:“缺乏合理的时间进度是造成项目滞后的最主要的原因”。
拿我这次的阅读计划来分析,完成整个计划的前提是——一切都将运作良好。即我所有的小计划都在他应该完成的时间内完成,我才能完成这次阅读计划。俗话说“计划赶不上变化”,在第二章我就遇到了可能动摇根基的错误。工作量太大而时间不够。这里我就犯了布鲁克斯老师提到的第二个错误:错误的将进度和工作量相互混淆。也就是假设“人”和“月”可以互换。这是个致命的错误。在我看来,的确,前两章字数相差不是很大,甚至,几乎所有的章节都与第一章相差不多。于是,我就天真的认为,两者所花费的时间应该也差不多。但是,我想,我错了。两张的内涵程度截然不同,不能相比。而且我考虑的写作方式也几乎不能执行,好多小节关联很密,很难拆分。第三个影响项目的原因是——软件经理并不会持续的进行估算这项工作。每当遇到困难时,我得根据实际情况及时调整我的计划。第四个原因是缺乏跟踪和监督。而第五个是:当意识到进度的偏移时,下意识(以及传统)的反应是增加人力。如果我做项目时,可能我的第一感觉也是去增加人力,但是,根据布鲁克斯老师所言,软件开发中,这种行为基本上是不可取的,这个问题我们下一次再谈。
我是个乐观主义者,所有的编程人员都是乐观主义者。我们都“坚信”——“一切都将运作良好 ,每一项任务仅 花费它所“应该”花费的时间”对于这种盲目的乐观,我们需要慎重的分析。Dorothy Sayers 在她的“ The Mind of the Maker ”一书中,将创造性活动分为三个阶段:构思、实现和交流。书籍、计算机、或者程序的出现,首先是作为一个构思或模型出现在作者的脑海中,它与时间和空间无关。接着,借助钢笔、墨水和纸,或者电线、硅片和铁氧体,在现实的时间和空间中实现它们。然后,当某人阅读书本、使用计算机和运行程序的时候,他与作者的思想相互沟通,从而创作过程得以结束。
对于我们而言,计算机编程基于十分容易掌握的介质,编程人员通过非常纯粹的思维活动——概念以及灵活的表现形式来开发程序。这会让你付出惨痛的代价,相信我,我深有感触。我们的一个老师曾经提出过编程仍然需要纸和笔的构思,我本来不以为然,后来我才知道这是金玉良言。我们并没有那种无懈可击的大脑,我们的构思是有缺陷的。拿起笔吧!当你拿出笔好好的来构思这个程序时,我想你会发现很多你从未思考过的问题!
放下我们的骄傲,放下我们的乐观,用严谨的态度来制定计划,完成计划吧!