梦断代码阅读笔记01
今天开始阅读《梦断代码》这本书,这本书详细记录了一个软件项目从开始诞生到最终不了了之的详细过程,本书作者作者罗森伯格对OSAF主持的Chandler项目进行田野调查,跟踪经年,试图借由Chandler的开发过程揭示软件开发中的一些根本性大问题。本书是讲一事,也是讲百千事;是写一软件,也是写百千软件;是写一群人,也是写百千万人。任何一个在软件领域稍有经验的技术人员看完本书,必掩卷长叹:做软件难。软件乃是人类自以为最有把握,实则最难掌控的技术。
读完此书的第一遍后我的感觉是:一群人们怀抱着改变世界的理想上路了,却在追寻时发现,那些近在眼前的理想之峰,变得那么的遥不可及;每当翻过一座横亘在面前的山峰时,总以为已经来到理想之峰的脚下,却发现这又是另一座需要攀越克服的阻隔之峰。软件开发过程有时就是这样的一种体验,目标看是唾手可得,却又总是在你伸手摘取时,发现还有一段距离要走,问题随着开发的深入而不断涌现;这就像是坐在大象背上的训象师,用吊在大象鼻子前的香蕉,给大象耍的把戏。
造成这一现象的主要原因我认为有以下几点:
开发团队之间相互沟通协作的成本,导致产生《人月神话》作者布鲁克斯法则的悖论-往已延误的项目中补充人力,只会使其继续延误。
项目目标不明确,标靶变来变去,因此有时决定说什么,比怎么说更困难。
项目目标不切实际,从一开始就想做一个适合所有人的,能做所有事的系统,造成就如要做永动机一样的结局。
这不禁令人扼腕叹息,软件工程真是一项艰巨的浩大工程,对开发者有着很多的限制和要求。