《大道至简》读书笔记三
第六章 从编程到工程
猿之于为人,“学会制作和使用工具”是最重要的标志。语言只是作为一种工具。作为我们写程序的一种工具。
程序=算法+结构”。这是编程的本源定义,也是原始的状态。经过长期的编程实践,会从中总结与汲取一定的方法,于是“过程”出现了,于是“对象”出现了,于是相关的方法论也就出现了。
过程中的问题,就是角色、沟通和环节的问题。
团队必将越来越庞大,因为(与工程对应的)软件规模必将越来越复杂。没有团队意识的软件公司将在高度过程化、通晓方法理论 ①、拥有大量工具的集团军面前必将一触即溃。
回顾每一个项目,或者项目中的每一个阶段,以及与每一个团队成员交流的细节,是项目经理的日常工作。
发钱的决策通常是由三个角色来做出的:部门/团队经理;绩效经理;财务经理。
真正的BOSS是经营者。决定了一个方向,组织者保证决策与这个方向是同步的,而工程师在这样的一个方向、决策的构架下的一个具体行为。
实现,是软件开发的本质需求。方法,是对既有行为的归纳总结。
第七章 现实中的软件工程
软件工程=过程+方法+工具。
项目经理思考的问题是如何在节约成本的前提下用到好的方法来说实现这个项目,因为客户在乎项目计划的成本。
关于思考成本,不计成本的项目计划不会得到经营者的支持;毫无目的地消耗成本是项目中的慢性毒药;最致命的风险是成本的枯竭。
影响成本的因素又有很多,包括时间、人力、资金、客户的成本等等。
第八章 是思考还是思想
软件工程三要素:工具、方法与过程。
工程的整体问题仍旧是“实现” 。即使有最好的工具,最好的方法,最牛的过程,但是最终的目的是要实现。
角色的关注层面完全不同。Boss关注如何经营公司,项目经理这个中间角色的使命,协调经营者与开发者之间的沟通。开发人员关注的是如何把需求做成软件。