《大道至简》第七八章读后感
作者在第七章着重为我们介绍了各个大型软件公司的“算盘”,也就是他们公司的运营方向及原因,例如Rational对IBM的收购使其在软件工程方面,快速地拥有了一套成熟的理论体系和实作工具。在语言方面,其选择支持Java,亲近开源软件,使IBM从没有语言优势立即变成了“可以忽略语言劣势”,同样Borland没有在ALM作为工程理论方面的任何优势。于是开始收购并实现ALM体系相关的公司,快速补全ALM作为一个工程体系在理论上的不足,同时Borland还在帮助对手IBM支持UML的标准化,协助Eclipe快速成为一个完整的具有商业品质的开发平台,软件业界这种为对手磨剑的现象其实正是他们的算盘,一面打压对手的优势,一面又借助对手和同盟的力量来削弱自己的劣势或者补充实力。
作者在第七章还为我们介绍了做项目的另一个关键问题,项目成本的思考。一个项目计划可能是无可挑剔的,但是如果超出了客户的预算,客户是不会接受的,如果超出了公司的投资,经营者是不会支持的。作为项目经理,思考的问题就应当是完成工程的“方法”,而评价这个方法的好坏的标准只有一个:节约成本。作者在书中告诉我们毫无目的地消耗成本是项目中的慢性毒药,最知名的风险是成本的枯竭,可见成本对项目实施的重要性。在工程中总有“神秘力量”在“驱动中开发,而“以什么驱动去开发”其实是一个过程问题,而过程的选择取决于你的工作需要,以及它的相关应用领域的适用性,过程工具的充备性和过程理论的完善程度。过程模型决定了工程的实施步骤和组织方式。
第八章 是思考还是思想。工具,方法和过程被称为软件工程的三个要素,为了方便我们理解,《大道至简》将其分割解说,但实质上,我们应回归到软件工程的本体上来思考问题,而不是仅关注于每一个局部的要素。工程的整体问题仍就是“实现”。对于用UML来写项目文档,作者启示我们出于沟通的必要,我们必须使UML图对项目描述的足够准确和详细,乃至于针对不同的阅读者,都提供了足够的信息,否则UML图对于人们将无异于甲骨文刚出土时人们的困境。
经营者与开发者。在软件公司中,经营者与开发者可以说是没有什么交集的两类人。经营者事实上很多时候是一个完全不懂软件技术的老板,我想一个经营者需要做的就是保证公司的组织机构正常运行以及引进客户吧。而技术人员则不去关心产品的技术价值和市场价值之间的差异,那么对于协调经营者与开发者之间沟通的责任就自然落于项目经理了,造成这种局面的原因无非是不同角色的关注层面不同而已。
当项目做成后,我们在项目交付和试用时经常会碰到客户在质量上的投诉,人们总会找各种理由来解释,然而真正的问题是:我们把目标定错了,原定目标过大,无法平衡时间、资源和功能三者之间的关系,其结果自然是保证不了质量。
作者在这本书的最后告诉我们灵活的软件工程就是要了解软件开发时的技巧,技术和方法原理,只有透彻明白这些才能做到灵活变通,回避错误。