第6 章 从编程到工程
语言只是工具,语言无所谓好坏,只有适不适合,对哪个语言掌握得更熟练,猿之于为人,“学会制作和使用工具”是最重要的标志。不要一味地去说哪个语言更好,哪个语言不好,因为这都是在具体的项目中才能体现出来的,我一直坚信,“存在极heli”,最起码在某种语言的初期,它也是随着被需要而应运而生的。但是你应该知道,好的项目经理并不是不犯错误的人,而是以尽可能少的失败来获得成功的那个人。从最初的简单编程开始,到现在工程团队的组织开发,实现( 一个软件) 都是最终的目的。所以可以这样说:实现,是软件开发的本质需求。方法,是对既有行为的归纳总结。 因而实现方法总是最先出现的,而后才有分析和设计方法。
第7 章 现实中的软件工程
软件业界如今的局面,不是一些人( 例如程序员或者评论家们) 争争吵吵的结果,而是大公司们相互制衡的结果。Borland 与IBM ,IBM 与SUN,以及SUN与Apple都在做着相同的事, 又都有各自的算盘。他们一面打压对手的优势,一面又借助对手和同盟的力量来削弱自己的劣势或者补充实力。 跳出到局外来看,并不是Microsoft是他们的共同对手,而只是因为 Microsoft占在了峰头浪尖,便成了众矢之的。所有人面对的并不是Microsoft的这个名字,而只是这个地位,无论谁成就了这个地位,都将承受相同的风险与压力。思考成本的重要性:不计成本的项目计划不会得到经营者的支持; 毫无目的地消耗成本是项目中的慢性毒药; 最致命的风险是成本的枯竭。
第8 章 是思考还是思想
矛盾是实现目标与保障质量,在项目的平衡三角( 时间、资源和功能) 中讨论的是目标问题,但并不讨论质量问题。也就是说,经典教材中总是关注:如何更快的完成项目,并减少资源占用,以及实现更多的功能。然而,即使平衡了这种关系,项目的结果仍可能产生一个天生的残障。 因为目标可能在平衡中确立,但质量却要在过程中控制。即使在时间、资源和功能三者中取得了平衡,即使客户、项目组和公司同样满意于这个平衡“目标”,它仍然有可能是“不能实施”的。“知律而变”中的“律”字,若解释作“规律”,那么便是可以用于软件工程中的了。“道”是规律,如果明“道”,而可以变化无穷,这样做软件工程才是活的。就如同今人难于填词一样,不明道,则不明智,不明智则无所以为,因而在软件工程实施中不可避免的盲目与停滞。 “知律”的另一层意思,是在于“知道原理”。明白“为什么要这样”或者“为什么不是那样”。这在软件开发中是常见的问题,大多数人不知究竟地使用着技巧和方法,而一旦出了问题,则归究于这些技巧和方法的不好。而真正的问题在于,这些人并不知道这些技巧、技术和方法的原理,因而不知道变通,也不知道回避错误。