这一章为我们汇总了之前的介绍的内容,而且从编程到工程做了补充和总结。
第一部分叫语言只是工具,他曾是个开发人员,有连续几天几夜做 Coding 的经历,也曾经为了一个技术问题耗上三、四个星期而导致项目一再延迟,还曾经为了一个实现细节与项目相关的人员逐一争论,专注于语言的好坏。然后再一次培训会上,他在考虑要为学员们讲什么的时候,想明白了一个道理语言只是工具。我们不要太过在意语言的好坏,因为我们要的是实现一个工程,不管语言如何,不同的实现可以使用不同的语言。
第二部分是程序和方法,程序等于算法加结构,这是编程的本源定义,也是原始的状态。与代码相关的任何工作,最终仍旧会落足于这样的一条规则。而方法不是某个人或者某个组织创造,他并不神秘,因为它就是你今天正在做的、从事的和实现的,方法的获得在于回顾。
第三部分是过程和工程,过程伴生工程而出现,过程解决的是工程中角色间的关系问题。 项目现在变得越来越大,所以工程产生了,一个团队就显得尤为重要,因为软件规模必将越来越复杂。没有团队意识的软件公司将在高度过程化、通晓方法理论、拥有大量工具的集团军面前一触即溃。
第四部分介绍了组织和BOSS之间的关系。组织和工程是分开的,工程停留在技术层面,而组织关注于人力资源、项目资金以及多个项目之间的协调等等。这些与工程本身并没有直接关系。项目经理做非技术性的工作,为项目的各个阶段建立计划,并逐渐地细化计划的内容,确立项目或者产品阶段目标,成果的准确描述,对团队中的不同角色展开培训,为每一个人准备他所需要的资源,决定在哪些环节上反复审核和回顾,习惯于开会、组织更短而有效的会议以及建立激励机制,这些事项目经理应该组织的活动。而老板是解决更高一层的经营问题,BOSS决定了一个方向,组织者保证决策与这个方向是同步的,而工程是在这样的一个方向、决策的构架下的一个具体行为。