读完《梦断代码》,最后韩磊的译后记中已经提到了Chandler项目的结局,它失败了,它成了众多失败软件项目中的一个。这个结局无疑又加重了自己看完这本书后心情的沉重:做软件真不容易。
今天的软件项目,已经成为一个错综复杂的建筑工程,不断变化的应用环境(包括使用者),使得软件需求被不断更新,今天100个需求,明天减10个、改5个、加80个,这在不断公开发布的升级版开源软件以及Web网站应用中表现的就颇为明显。为了满足这种需求及由此需求所带来的编程及调错成本,人们已经发明了众多方法,比如一旦项目被人们认为足够“大”,就用面向对象来代替面向过程,以及使用面向对象所衍生的面向组件但所有的这些,面对复杂的外部需求,程序员们感到还是远远不够。
软件开发过程有时就是这样的一种体验,目标看是唾手可得,却又总是在你伸手摘取时,发现还有一段距离要走,问题随着开发的深入而不断涌现,十分凡人,以及让人心累。