今天读了《大道至简》第6章——从编程到工程。这一章主要讲了从编程到工程。这一章主要讲了从编程到工程需要注意的一些事情,同时作者从编程到做工程的经历,也让我们明白了要如何去做好一个工程。
第一节 语言只是工具。作者在最开始的时候也非常执着于争论语言之间的优劣,他非常喜欢Pascal/Delphi,而不喜欢用C/C++。然而随着作者不断的深入研究编程,他逐渐看清楚了代码、方法、过程、工程与组织的关系。他明白了“语言只是工具”,做好工程才是最重要的。
第二节 程序。“程序=算法+结构”这是编程的本源定义,也是原始状态。编程的精义便在于此。而众多的编程人员则是围绕这一精义,用分支和循环作构成的逻辑来进行实践。
第三节 方法。“方法”和“方法论”的出现,推动了循环和分支所构成的逻辑的向前发展。长期的编程实践,必须沉淀为某种方法,于是“过程”“对象”和相关的方法就出现了。方法是实践到一定程度后自己瓜熟蒂落得到的,它不是强求能得到的,而是需要我们对自己所编的程序进行一遍遍的回顾,这样才能自然而然的得到方法。
第四节 过程。过程便随工程而诞生。过程解决的是工程中角色关系的问题。有了过程,就有了角色,沟通和环节问题。在一个项目中,项目经理要分清玩家与客户的区别,只有确定了角色,才能进一步解决角色间的沟通问题。
第五节 工程。工程是对目标的描述和成果的检测,至于工程目标的实现,是过程和方法的事:而有效,快速实现“过程”和“方法”所需的就是工具。而工程出现的原因是什么?是软件规模的不断扩大,而随着规模的复杂,也就要要求不同的知识领域的角色参与,同时也需要更多的资源。于是便出现了团队,拥有团队意识的软件公司才能在市场站稳脚跟。
第六节组织、工程理论是包含组织学的。一个工程不只是有技术环节,还包括人力资源、项目资金以及多个项目之间的协调。这些“组织”方面的内容。作为项目经理,你必须有一部分工作是非技术性的——因为那些与技术相关的工作完全可以交给开发经理来做,只有做好组织工作,注重与每一个团队成员的交流的细节,才能做好一个工程。
第七节Boss. 这一节主要是说Boss的主要工作并不是决定你的薪水,他们解决的是“经营”问题,Boss决定的是一个方向,组织者保障决策与这个方向是同步的,而工程是在这样的一个方向,决策下的具体行为,工程中是没有Boss的。
第八节 上帝之手 从最简单的编程开始,到工程团队的组织开发。实现都是最终的目的。正是由于实现的需要,我们才设计出了一些数据结构或逻辑结构的产生,而出现了团队组织模式,出现了过程模型,工具的产生也是处于实现的需要,总之“实现作为软件开发的本质需求和基本动因,如上帝之手在推动这几十年来的软件工程理论体系的形成。
总之,这一章的知识主要告诉我们从编程到工程的发展过程,同时也介绍了在过程中我们需要做的事情:要学会组织好团队,记住工程中没有Boss,我们要做的是做好工程,最后要记住实现才是软件开发的本质需求。