《大道至简》读后感
可以说我是在对于软件还什么都不懂的情况下读了这本书,读完以后,我也不能说我对于软件或是软件工程就懂得了多少。但是,我的确惊讶于作者可以用中国古代的思想智慧来诠释软件和软件工程这样现代理性的产物。这也说明了做软件其实最重要的不是高明的编程能力和灵感的迸发,还是和所有庞大的事一样去拆解,去联系,重要的是思想。
这本书并不是用来培养程序员的,程序员的养成最好的办法是编写代码、解读代码、思考代码,它更多的是在展示如何从一个软件开发者前进为一名软件工程管理者。在这本书中,根据作者的论述,我将完成一个软件工程概括为:分类细化、合作分工、正确沟通、历史记录、思考成本、执行命令这六个步骤。
分类细化指的并不是工程的分类,而是程序设计时的分类,一个大的软件所需的代码量是数不胜数的,这会让很多人望而却步。结构化编程的基本单位是“过程”,走一段很长的路也要一步一步才能走完,有的步子大,有的步子小,每一步都是在向终点不断靠近,站在起点感叹路途遥远的人是不会走到终点的。合作分工针对的就是整个团队了,其实不论是什么工程,它所需要的部门都是相似的:管理人员、技术指导、开发团队。也就是从这部分作者开始讲述管理者所要充当的角色。首先管理者要组织开发团队,有了确定的团队模式,才能寻求相应的管理制度,并且才能制度实施在团队之上。做管理不等于做伯乐,要明确每个人的分工才行。
管理者最大的能力体现在将技术开发者与客户沟通在一起,客户往往不会懂得C Language和UML,同样的开发人员也不会去分析市场需求和项目可行性,管理者需要做的是找到一条链接两者的路线,通过最简沟通来提高项目实现的可能性,流于形式的沟通不可取,那是在增加成本还一事无成。作为一名管理者,必须要考虑到成本问题,沟通和成本问题是从技术到经营角色转变的重大体现。当你在思考成本问题时就会使整个项目变得更加精简,可以最大化的提高效益。
六个步骤完成了四个,到了历史纪录,这是我从未考虑过的方面,也是很多人都会忽略的地方。我想作者的这个建议使不少项目在濒危之际得到了挽救,此外还为后来的人提供了大量的经验。最后的执行是变化可能性最大的,毕竟工程的含义不是简单的过程衔接,工程的目的是实现,做过程不等于是做工程。书中提到的软件工程的瀑布模型,包括需求、分析、设计、开发、测试,执行其实就是将这所有的都去实现。
作者称当他做到管理者的时候才明白了代码、方法、过程、工程与组织的关系,工程不是做的,而是组织的,软件工程又是由工具到方法到过程再到实现对象,所有的都是涵盖包容的关系。
大道至简,越是简单的东西往往越接近本质,所以软件工程也是简单的,其本质无非就是工具、方法、过程、实现对象。作者从编程讲到管理,最后想要告诉我们的还是那四个字:大道至简。