与其他制造业一样,软件的生产也需要一流的生产设备、流水线和高素质的生产者与管理者;而作为高度智慧与知识的结晶,软件的生产又有着其独有的内在规律。
跨入21世纪,蓬勃发展的中国民族软件业正面临着前所未有的机遇和挑战。虽然在龙头企业的带领下中国软件业短短几年内获得了长足的进步,实力大增,但是国内软件产业的整体发展水平与美国、欧洲、印度等国家和地区相比仍明显落后,尤其在生产方式、过程控制、组织管理等领域差距更大。多年以来,与其他成熟行业(如建筑、制造业)相比,国内的软件生产和项目开发一直缺乏有效的工程化管理。
究其原因,译者认为根源在于不健全、不规范的市场环境造成软件产业链的资源分布不均衡。在急功近利、片面追求效益的行业风气影响下,国内软件工程的教育、技术和管理水平严重滞后并与软件生产实践相脱节,导致民族软件业长期在低水平上徘徊。与国外高度发达的软件工业化生产相比,我们的软件生产企业大部分还停留在手工作坊时代。这一瓶颈问题如不能得到根本解决,无疑将严重制约民族软件业健康和持续地发展。
可喜的是,近两年来,许多软件企业和有识之士逐步认识到掌握软件生产规律、提升软件工程管理水平的重要性与迫切性。软件架构(Architecture)和框架(Framework)、CMM、统一软件过程(Unified Software Process)、UML、软件模式(Pattern)与反模式(Antipattern)、构件式开发(Component-Based Development)等先进的软件工程理论和方法开始被接受,其普及与应用正方兴未艾。在落后了国外3-5年甚至更长时间之后,人们终于意识到原来还可以这样做软件。
译者从事面向对象技术和软件工程咨询与管理工作多年,有幸接触了各类规模的软件生产企业,也结识了不少业界朋友。译者在与他们的交流切磋中了解到,中国软件企业面临的主要内部问题是管理问题,而不是技术问题,其关键是当代先进的软件生产技术如何与现代化的企业管理方法有机结合,这已经成为很多人的共识。
Ivar Jacobson大师在其里程碑著作《软件重用》(Software Reuse)[Jacobson 97](中文版由机械工业出版社出版)中指出,影响软件产品或项目成败的主要因素包括架构、过程和组织三个方面。其中,软件架构是决定软件产品内在质量的核心因素,合理的开发过程与高效的组织管理则是软件架构乃至软件产品、产品线成功的重要保障。
本书中所说的软件架构及其组织原则的适用范围既包括单一产品架构,又包括产品家庭或产品线上多个产品共享的架构;这里所谓的"组织"既包括一个项目组也包括一个部门、一个企业甚至有多个合作伙伴的联盟。本书的原则无论对于国内只做工程项目或单一产品的企业,还是拥有一个或多个产品线的组织都具有指导或借鉴意义。
同样以架构为中心,《软件重用》提出了面向重用的软件工程业务(RSEB)的概念,而本书则重点介绍与软件架构互动的组织管理原则,笔墨侧重于技术和人文管理的结合部分。译者认为这是此书的一大特色。
在国内我们一般只听说过程序员、高级程序员、系统分析员的认证考试,但很少听说软件架构师这样一个非常重要却易被人忽视的岗位。本书恰恰是专为软件架构师和软件企业的管理者(如高层经理、技术总监、产品经理、事业部经理、部门经理和项目经理等)写的,适合的读者还包括各类开发人员(实施者)、软件产品的客户等。
本书结构严谨,依次介绍了作者依据多年管理实践和研究经验总结出肋软件架构组织的VRAPS 5项原则(模型),即构想(Vision)、节奏(Rhythm)、预见(Anticipation)、协作(Partnering)与简化(Simplification)。针对每项原则,每个主要章节都讨论了度量准则(Criteria)与指导实施的模式和反模式。
本书的价值在于体现了组织管理原则与软件生产技术的有机结合,用高度概括的VRAPS5项原则(含15个度量准则)、16种模式和17种反模式的形式,把宝贵的软件架构组织管理的真知灼见和经验教训系统地奉献给读者。
软件模式即解决软件领域常见问题的最佳方法,而反模式则是针对特定问题应该避免的错误做法,相应地就有软件分析、设计、实现和管理等各个方面的(反)模式。建立并全面有效地利用好模式知识库,是借鉴国外软件业成熟经验、重用其先进思想方法的一条捷径,可以大大加快提升国内软件企业工程管理和技术水平的过程。不久之前机械工业出版社华章公司曾经推出过一本软件设计模式的经典之作(《设计模式--可复用面向对象软件的基础》,ISBN7-111-07575-7)[Gamma94],而本书很可能是国内第一本正式的有关软件管理模式的译著。
本书实例丰富,尤其详细分析了美国Allaire公司(其ColdFusion开发平台在国内有不少用户)、苹果公司、微软公司、著名的电信制造业巨人加拿大Nortel公司(Northern Telecom)以及美国国防部课题研究的一些案例。本书深入阐述了构想、受益人(Stakeholder)、迭代递增式开发(Iterative Incremental Development)等许多国内读者不甚理解的重要概念。相信通过阅读此书,读者一定会加深对这些先进软件工程思想和方法的认识。
原书的三位作者并非业界权威或名流。国内的管理者对于书中所介绍的某些概念和经验教训也许会有似曾相识的感觉,甚至可能认为这"没什么了不起的,平时我们就是这么做的嘛"。但是,能够把这些实践经验系统完整地记录下来并有序地组织成模式,从而将其升华为管理原则和方法论,这种职业精神和创造是难能可贵的。
相信此书的翻译出版,对促进国内软件从业人员掌握现代化软件生产与管理的内在规律和技术大有裨益,一定能引起广泛的共鸣。
非常感谢机械工业出版社华章公司的编辑们向我推荐了这样一本好书,同时也感谢我的家人、同事和朋友们(特别是郭永林和邵荣)给予我一贯的鼓励与支持,能使我顺利地完成这次翻译创作。
因时间仓促和水平局限,难免存在一些疏漏和差错,恳请各位读者批评指正。
E-mail:zhangxun2001@hotmail.com
张 恂
2002年2月于上海
. 译者简介
张恂,1972年生。东南大学计算机软件硕士,国内某自主研发的分布式对象通信中间件的主要开发成员,曾在国内一家著名移动通信设备厂负责一个大型通信系统软件研发项目的管理近两年,后任某民营软件公司的CTO,目前主要从事软件工程和面向对象技术的咨询。