《人月神话》读书笔记

《The Mythical Man-Month》
Frederick P.Brooks.Jr.
 
过去几十年的大型系统开发就犹如这样的一个焦油坑(the tar pit),很多大型和强壮的动物在其中剧烈地挣扎。
表面上看起来好像没有任何一个单独的问题会导致困难,每个问题都能获得解决,但是当它们相互纠缠和累积在一起的时候,团队的行动就会变得越来越慢。对问题的麻烦程度,每个人似乎都会感到惊讶,并且很难看清楚问题的本质。

编程的乐趣
首先这种快乐是一种创造事物的纯粹快乐。其次,这种快乐来自于开发对他人有用的东西。第三,快乐来自于整个过程体现出来的一股强大的魅力——将相互啮合的零部件组装在一起,看到它们以精妙的方式运行着,并受到预先所希望的效果。第四,这种快乐时持续学习的快乐。最后,这种快乐还来自于易于驾驭的介质上工作。
编程的苦恼
首先,苦恼来自追求完美。其次,苦恼来自由他人来设定目标、供给资源和提供信息。下一个苦恼——概念性设计是有趣的,但寻找琐碎的bug却只是一项重复性的活动。最后一个苦恼,有时也是一种无奈——当投入了大量辛苦的劳动,产品在即将完成或者终于完成的时候,却已显得陈旧过时。

所有的编程人员都是乐观主义者
所以系统编程的进度安排背后的第一个错误的假设是:一切都将运作良好,每一项任务仅花费它所“应该”花费的时间。
第二个谬误的思考方式是在估计和进度安排中使用的工作量单位:人月。我认为用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。它暗示着人员数量和时间是可以相互替换的。
人数和时间的互换仅仅适用于以下情况:某个任务可以分解给参与人员,并且他们之间不需要相互的交流。
Brooks法则:向进度落后的项目中增加人手,只会使进度更加落后。(Adding manpower to a late software project makes it later.)

The Second-System Effect
在开发第一个系统时,结构师倾向于精炼和简洁。他知道自己对正在进行的任务不够了解,所以他会谨慎仔细地工作。在设计第一个项目时,他会面对不断产生的装饰和润色功能。这些功能都被搁置在一边,作为“下一个”项目的内容。第一个项目迟早会接束,而此时的结构师,对这类系统充满了十足的信心,拥有对这一级别系统的精通,并且时刻准备开发第二个系统。一种普遍倾向是过分地设计第二个系统,向系统添加很多修饰功能和想法,它们曾在第一个系统中被小心谨慎地放在次要位置。

Proverb:A good workman is known by his tools.巧匠因为他的工具而出名。
What we do not understand we do not possess. -GOETHE (不了解,就无法真正拥有。-歌德)

巴比伦塔项目的失败是因为缺乏交流以及交流的结果——组织。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值