本章开头引用了《列子》中的一句话:“得其精而忘其粗,在其内而忘其外;见其所见,不见其所不见,视其所视,而遗其所不视。”意思是:得到它的精髓却忘记了它的粗,在它内部却忘记了它的外部;只能看到能见到的东西,而不能看到那些看不到的东西。这话非常有深意,这是告诉我们,不要以偏概全,若想了解一个东西,就需要完完全全的去了解,从方方面面。
第一节,作者提到了自己以前的经历,当年的作者也是一个执着的开发人员,认认真真兢兢业业,也是喜欢比较语言的优劣。但是再一次准备演讲的时候,他发现,其实讨论语言优劣是可悲的。语言仅仅是一个工具,一个我们用来实现工程的工具。
第二节,程序=算法+结构,这是一个程序的本源,没错,和语言无关。
第三节,随着时间的发展,实践和总结,过程、对象、方法也都随之出现。方法归纳、抽取和提升了行为的内在规律。然而方法不能被看到。所以,只有拥有足够的编程经验才能理解。而经验的来源不像得道那样看人品,靠的是回顾。
下一节,过程随工程而出现,过程简而言之就是角色、沟通和环节。环节的决定取决于具体的项目。不同的项目要求不同,对环节等一系列的需求也就大相径庭。要想更好地完成项目,需要的远不止这些,确定角色和存在的沟通问题,组织是否符合常理,协作的紧密性,都关系着项目的成功与否。沟通由此看来是十分重要的。
第五节,工程,他需要过程和方法来达成,那么工具也就由此而被需要。工程的出现,源于项目规模在不断增加,与此同时,团队就显得极为重要。毕竟,现在的情况下,没有公司愿意只让你一个人去完成庞大的工程,从时间、效率和利润等多方面而言。团队的需要,就意味着复杂性增加,在现在环境的竞争下,如果没有团队意识,那么在其他的强大集团面前,就会一触即溃。
第六节,讲解了团队中组织的重要性。这里的组织无关于技术方面,而是重点放在人力资源、项目资金和项目组的协调等方面。设定计划、确定目标、培训角色、准备需要的资源、从全局来分析项目、激励成员但是不让他们放松、不要乐观。能做到这样,只能说尽力了,结果也许仍然不尽如人意,但是这样绝对减少了错误的发生。回顾项目和其中的每一个阶段和细节,尤为重要。
第七节,团队中的BOSS。发钱的来源由项目经理、绩效经理和财务经理组成。BOSS只是解决公司的经营问题,这是比组织更靠外的一层,他们和项目本身并没有关系。BOSS只给与方向,组织者保证决策和方向同步,而工程是在这两方面规定下的具体行为。BOSS和工程无关。
最后一节,实现是开发软件的本质需求。为了实现,我们设计了数据结构或逻辑结构来映射物理模型,我们不断的积累和实践来总结和归纳方法。分析、设计和编程因此出现顺序和实现顺序不一样。由于“实现”的需要,我们有了团队组织、有了过程模型、有了语言、有了工具。“实现”如同上帝之手一般,推动着软件工程的理论体系的形成。