梦断代码终于读完了,然而感悟却还没有完。正如作者所说,这是一个关于一队人马并肩托起代码大石、欲将其推上山顶,虽历经磨难,但仍奋力创造某种有用、丰富且持久之物的故事,读罢想来也许最大的收获是对软件工程有了更加深刻的理解。
我们觉得软件难以对付,是因为它不可见,不可见也并非唯一问题,我们也看不见电力、磁力或重力,但却能为多数实用目的可靠地预测其行为,可是我们没有理论可以用来计算对软件尺寸、性能和复杂度的限制,甚至不能以符合逻辑的手段来说明软件产品要做的事情以及它如何做到的问题。就像那个关于软件工程的笑话里说的,如果你不能把问题重现,程序员就没有办法解决问题。
软件开发过程有时就是这样的一种体验,目标看是唾手可得,却又总是在你伸手摘取时,发现还有一段距离要走,问题随着开发的深入而不断涌现;这就像是坐在大象背上的训象师,用吊在大象鼻子前的香蕉,给大象耍的把戏。
是什么原因,导致软件开发有时会进入这样一个令人惋叹的黑洞?
书的作者没有,也不可能给我们一个答案,但通过作者忠实记录于书的、就发生在当下不久的、这一真实案例,以及对软件开发历史和方法的部分介绍,本书应当能带给我们很多有益的启示和思考。