《梦断代码》读书笔记

        最近,软件老师推荐读一本书,《梦断代码》。《梦断代码》作者罗森伯格对OSAF主持的Chandler项目进行田野调查,跟踪经年,试图借由Chandler的开发过程揭示软件开发中的一些根本性大问题。本书是讲一事,也是讲百千事;是写一软件,也是写百千软件;是写一群人,也是写百千万人。任何一个在软件领域稍有经验的技术人员看完本书,必掩卷长叹:做软件难。软件乃是人类自以为最有把握,实则最难掌控的技术。 

        那是1975年的冬天。作者在终端机房中俯身敲击一台电传打字机,每打完一行,那笨重的机头就会摇头晃脑猛然撞回最左边,开始新的一行。我从几个小时前开始输入一行行黑代码,忘记了时间流逝,全然不知已是午夜时分。看门人已经关闭廊灯。我并没有得到许可在纽约大学物理系大楼中流连忘返、使用向高中学生免费发放的计算机账号。不过,倒也无人责难。

        

软件开发过程有时就是这样的一种体验,目标看是唾手可得,却又总是在你伸手摘取时,发现还有一段距离要走,问题随着开发的深入而不断涌现;

这就像是坐在大象背上的训象师,用吊在大象鼻子前的香蕉,给大象耍的把戏。是什么原因,导致软件开发有时会进入这样一个令人惋叹的黑洞?

 

书的作者没有,也不可能给我们一个答案,但通过作者忠实记录于书的、就发生在当下不久的、这一真实案例,以及对软件开发历史和方法的部分介绍,本书应当能带给我们很多有

益的启示和思考。  我一直认为,读书最大的功用之一,就是能激发我们的思考,是打开思维源泉的阀门;这本书很好的起到了这一作用,它让我们去思考软件开发的过程、

方法、管理…,为我们思考这些提供了真实生动的案例,也对现实的工作有些指导和警示作用。

 

为什么好软件如此难做?这是我本人,我想也是很多人都在苦苦思索的一个问题,虽然无人能有完全确定的答案,但通过书中的记述,和个人思考,还是可以获得一些启示:

 

计算机严格的逻辑性和精确性,同人类不严密的逻辑,模糊多变的思维模式之间的矛盾,

造成的人与机器之间沟通的障碍。

 

开发团队之间相互沟通协作的成本,导致产生《人月神话》作者布鲁克斯法则的悖论-往已延误的项目中补充人力,只会使其继续延误。项目目标不明确,标靶变来变去,因此有时决定说什么,比怎么说更困难。项目目标不切实际,从一开始就想做一个适合所有人的,能做所有事的系统,造成就如要做永动机一样的结局。

我想人们大多都知道古老圣经中巴别塔的寓言,软件工程难于成功的原因,也许就蕴藏在

这寓言启示之中,本质上在于沟通的问题: 软件使用者与软件的沟通,软件需求者与开发者的沟通,程序员与程序员的沟通,程序员与机器的沟通。所有这些层层累叠起来,构筑了一道道通往成功彼岸的屏障。

 换句话说,正是因为早期那些不完美,但是及时的设计,让后来者有挑剔这些不完美的奢侈机会。

我们每个人在使用这些不完美的软件(Windows, Outlook, 甚至Linux)的时候,都应该感谢当初设计者做出了正确决定,而那些坚持完美设计远景的项目,它们都到哪去了?

posted @ 2017-01-23 13:06  小小d程序猿  阅读(165)  评论(0编辑  收藏  举报