理想主义者的墓碑上,写着“再完美一点”
读完《梦断代码》,我最大的感受就是——这书太“杀人诛心”了。
Chandler项目为什么会失败?不是技术不行,不是没钱,不是有人摸鱼。恰恰相反,每个人都太想做好,太想把事情做完美。书里有个细节让我印象特别深:团队为了支持多字节字符集(就是让软件能显示中文、日文),讨论了几个月,最后决定做。但这个决定意味着底层数据结构要推倒重来、进度再延六个月、修好的bug全冒出来。他们做了,然后项目再也没缓过来。
这个故事最残酷的地方在于——没有人做错事。支持国际化是正当需求,不做的话国际用户没法用。但就是这些“正当”的需求堆在一起,把项目压垮了。书里有一句话我反复看了好几遍:“软件团队捕捉时间的方式,像用手捧水。你以为握紧了,其实一直在漏。”每一次“再做最后一个功能”,都在把终点线往后推。
读这本书之前,我总觉得软件工程是一道技术题——找对架构、写对代码、用对工具,就成了。读完之后我发现,它更像一道心理题:你怎么在“做好”和“做完”之间找到那个不停移动的平衡点。Chandler没有找到这个平衡点,它倒在“再完美一点”的路上。
说实话,这本书没有给我任何“解决方案”。它只是把软件工程的残酷现实摊开给你看——最优秀的人、最充足的资源、最宏大的愿景,依然可能一败涂地。但奇怪的是,读完我并没有被劝退。反而更清楚了一件事:失败不一定是愚蠢的结果,也可能是清醒的代价。那群开发者不是被笨死的,是被自己想要的东西压死的。这不是安慰,是警醒。
下次打开IDE的时候,我大概会多问自己一句:这个功能,究竟是用户需要,还是我太想写出来给自己看了。
