我读了《大道至简》的第七章——现实中的软件工程和第八章——是思考还是思想。其中第七章主要讲了现实中的软件工程一些需要注意的地方。而第八章作者则分享了一些他自己在编程过程中的思考和思想。
下面是一些第七章的感想:
第七章讲了世界各杰出软件公司的竞争,讲的是现实中的软件工程,在软件工程技术的竞争中是很残酷的,敌人的敌人就是自己的朋友吧,软件当今不是一些软件工程师之间的争争吵吵,而是大公司之间相互制衡的结果,大公司在相互竞争激烈的时候,忽视了一些小公司,导致这些小公司在激烈的竞争中崛起。大公司们在标准、理论、语言上的争来夺去,未必全 然出于“软件实现”的考虑。对统一理论、统一工具、统 一过程的企图,其最终目的是在整个软件工程体系中的全面胜出。 算盘上的绝大多数人,只是用于计算胜负的一枚算子。
软件工程的关键还是要回到工程的关键点,因为,软件工程的除了本质力量的推动之外,还需商业因素影响,商业也推动软件工程的发展,大公司把软件工程从自生自演的过程已经推动到它激自演的状态。这种它激发展可能会影响到软件工程发展的速度,然 而在各个工程层面上的关注点并不会发生变化。在前面的 模型图中,每一条纵向的细线用于定义一个关注点,然后是思考项目成本的经理,经理必须对项目成本的多少做出合适的推断,
理想状况下,“软件工程=过程+方法+工具”。然而工 程成功的真正关键,并不在于你把你的团队“组织”得有多好。即使在团队中他们都显示有条不紊,你一样会面临 失败。 如果在做项目的时候经费不够了,那么此项目只能作废,只是一个死的项目,团队也就随之分解,更不用谈论合作做项目了。
下面是第八章的感想:
第八章讲的是是思想还是还是思考,在软件工程中思想是特别重要的,但是只有思考了,才会诞生一种新的思想,思考问题的方法可以是由点及面的,也可以是统揽全 局的。换成业界最常用的词汇,就是“自上而下”还是“自下而上”的区别。需求人员会把所有的责任归咎到开发人员,而开发人 员又不停地埋怨需求的不清不楚或者变更的没完没了。又 如果正巧需求和开发都是同一个人或者小组来做的,那么 他们便会开始埋怨客户的苛刻以及工期的紧张。因为目标可能在平衡中确立,但质量却要在过程中控 制。即使在时间、资源和功能三者中取得了平衡,即使客 户、项目组和公司同样满意于这个平衡“目标”,它仍然 有可能是“不能实施”的。 所以我们通常所说的细节,其实是对实施方法的一些 有限量的描绘。比如“软件工艺”这个概念本身的提出, 就是考究“细节问题”的。从这个角度上来说,我并不反 对“细节决定成败”这样的观点。但请注意一个前提:这 是技术或方法的细部。
对于是先思考还是先有思想,思考之后才会有一种合适的思想,思想对于软件工程特别重要,是一个项目的核心内容。
总之,通过这两章,我更加了解了一些现实中的软件工程的实现及需要注意的问题,同时在软件的实现过程中要学会变通