读《大道至简》第七八章有感

Posted on 2015-11-15 23:05  Young丶  阅读(163)  评论(0编辑  收藏  举报

第七章的标题是“现实中的软件工程”,第八章的标题是“是思考还是思想”,文中主要以IBM的故事为例,告诉我们在软件工程技术的竞争中是很残酷的,敌人的敌人就是自己的朋友吧,软件当今不是一些软件工程师之间的争争吵吵,而是大公司之间相互制衡的结果,大公司在相互竞争激烈的时候,忽视了一些小公司,导致这些小公司在激烈的竞争中崛起。大公司们在标准、理论、语言上的争来夺去,未必全 然出于“软件实现”的考虑。对统一理论、统一工具、统 一过程的企图,其最终目的是在整个软件工程体系中的全面胜出。 

除了软件本质力量的推动之外,商业因素也推动着软件工程体系的发展。文中所画软件工程层状模型可以看出,作者将软件工程划分为实现,团队和经营三部分。从这个模型中可以看到,在“程序”与“方法”层面,是关注于“(具体的)实现”的;而在“过程”和“工程”层面,更首要考虑的是团队问题。从角色的角度上来说:开发经理思考项目的实施方案和管理具体的开发行为; 而项目经理则保障团队的稳定性和一致性。然而这只是基本模式,或者说,是理想模式。

理想状况下,“软件工程=过程+方法+工具”。然而工程成功的真正关键,并不是在于你把你的团队“组织”得非常好。即使在团队中他们都显示有条不紊,你一样会面临失败。灵活的软件工程。在软件开发中是常见的问题,大多数人不知究竟地使用着技巧和方法,而一旦出了问题,则归究于这些技巧和方法的不好。而真正的问题在于,这些人并不知道这些技巧、技术和方法的原理,因而不知道变通,也不知道回避错误。所以我们不能指望死读一本《软件工程》就会真正的做软件,而是要学会变通。

软件工程三个要素的价值。而所谓的三个要素则是:工具、方法与过程。虽然本书中将他们分开来思考,但他们实际是相互作用的。所以尽管本书割裂了软件工程的各个要素,并从每个孤立的层面来审视。然而实质上,你应该回归到软件工程的本体上来思考问题,而不是仅关注于每一个局部的要素。工程的这提问题仍然是“实现”。

 在软件开发中思考尤为重要,除了思考还是思考。思想是特别重要的,有了思考了,才会诞生一种新的思想,思考问题的方法可以是由点及面的,也可以是统揽全 局的。换成业界最常用的词汇,就是“自上而下”还是“自 下而上”的区别。 软件工程的三个要素是:工具、方法与过程。三者是相互关联的,并不是孤立的存在,它们共同组建立一个工程。

实现目标和保证质量的矛盾是不可避免的。 即使在时间、资源和功能三者中取得了平衡,即使客 户、项目组和公司同样满意于这个平衡“目标”,它仍然 有可能是“不能实施”的。 所以我们通常所说的细节,其实是对实施方法的一些 有限量的描绘。比如“软件工艺”这个概念本身的提出, 就是考究“细节问题”的。对于是先思考还是先有思想,思考之后才会有一种合适的思想,思想对于软件工程特别重要,是一个项目的核心内容。

所以作为一个软件工程师,  思想尤为重要。