现代的软件从业者,都受过良好的计算机和软件方面的教育。但是现代的计算机和软件方面的教育,基本上都是从科学研究领域脱胎出来的,教育的目的也理所当然的主要是为科学研究领域服务。而随着社会的发展,软件不断地渗透到不同的业务领域,涉及普通人生活的方方面面。以科学研究为目的的软件教育,和日益深人人们生活的软件应用,产生了很大的隔阂。以致很多计算机和软件专业毕业的学生,进人企业工作后,总是感叹学校所学习的知识派不上用场,必须得重新学起,才能够达到企业的要求。
而这些重新学习的内容,又往往是以技术为主的。技术的更新换代太快,往往也导致想跟上新技术的我们力不从心。技术和业务的关系是怎样的?业务又是怎么运作的?很少有人去问这些问题。即使有人问了,也很难有人可以提供建议。
软件技术学习到一定的地步,又会发现软件架构是一个门槛。一直以来,在软件行业,对于什么是架构有很多的争论,每个人都有自己的理解。甚至很多架构师一说架构,就开始谈论应用架构、硬件架构、数据架构等。而事实上,架构在软件发明前就早已存在了。众说纷纭,莫衷- -是,这也给大家带来了很多困扰。业务和架构,是压在软件从业人员身上的两座大山。而软件从业人员手上却只有一个武器:技术。可是这个武器还时灵时不灵,就好像金庸小说《天龙八部》中段誉的六脉神剑,并不总是能够解决问题,有时还会带来麻烦。
软件并不是虚无缥缈的东西,它和现实生活是紧密相关的。业务和架构都是处理人的问题。而技术人员最讨厌处理的就是人的问题,心里而厌恶,却又无法逃避。因为这个排斥的心理,工作中始终想避开和人有关系的地方。因此在做技术之前,还需要做一些准备工作,用来连接现实生活,联系上人,让大家知道处理人的问题并不可怕。建立了这个相关性,每个人就都可以自行思考了。不仅人类受限于自身的生命周期,凡事都有其生命周期。理解了生命周期,就可以看到很多隐藏在背后的规律,以及这些规律之间的联系。因此,本书试图从生命周期入手,描绘出一张整体的画卷,帮助包括技术人员在内的读者定位自已处于什么地方,自己在起什么作用,别人又在什么地方,他们又在起什么作用。明白了自己的位置和别人的位置,自然也就清楚自己有什么,缺什么,要往哪个地方走,从哪些地方人手了。所谓“知己知彼,百战百胜””,知道这些后,与人打交道时也就有了自己的思考方式,能够进行独立思考,对业务也不再厌恶以致逃避,而是为能帮助业务人员分析及解决问题而自豪。
本书虽然不是技术书籍,不谈技术,却是以帮助技术人员为出发点的。本书的内容可以作为连接技术人员和现实世界的桥梁,使技术人员不再悬在空中使不出力。对于非技术人员,本书可以帮助其理解软件开发的特殊性,拉近与技术人员的距离,能够更有针对性地与技术人员合作。

