写给读者

这不是一本能够速读的书。

如果您读过《大道至简》,那么本书会完全颠覆您此前的阅读体验。尽管它们可以看成姊妹篇,并且在内容上也有承接,但却有着完全不同的写作方法与思维系统。又如果您了解传统含义上的“软件工程”,那么也请您先放弃固有的观念。本书所述的,在您理解之后尽可以同样放弃:所有接近与远离真理的,都必被打破。

这是一本面向多类读者的书。

本书是“实践者的思想”,并没有确指是“软件工程实践”。因而所言的是以软件工程为体系、以组织结构为视角的,在系统架构、项目管理和软件开发三种角色实践中的思想之总成。如果读者是其中的某一角色,建议从相应的分篇入手阅读;如果读者同时兼有多种角色,并有丰富的实践经验,可以从总论入手阅读。

这是一本讨论思想方法的书。

如同《大道至简》一样,本书不讨论具体的做事方法。所有行事的方法与准则,都不能孤立于其背景而存在,因此方法是死的,得到这些方法的思想是活的。但亦如行事的方法一般,思想的方法也不能脱离其背景存在。所以本书讨论这些思想,并陈述它们所基于的原则、背景与获得的过程。

这是一个视角而非全景。

无论如何,我们只能触及事物全体的一个或几个侧像。以管窥豹并不可笑,可笑的是每个人都认为他看到了豹的全部。认识到我们自己的眼界之狭隘,比得到这个狭隘认识中一个确实的影像远为重要,前者是进步之始,后者则是自满之源了。本书所讨论的工程模型仅是软件工程的一个视角,只是我将它当成软件工程的本质问题来讨论,毕竟无论何种工程,本质上仍然是人的行为,而不是事的流程。

目录