由于软件是抽象的、不可触及的、也不受物理定律或加工工程的制约,软件系统也就很容易随着自身的发展而变得复杂和难以理解。软件工程作为一门工程学科,其目的就是在于降低软件开发的风险,使软件系统向高性价比发展。软件工程虽然是一门比较年轻的学科,但软件工程从第一次“软件危机”(1968年)开始到现在已经有了长足的发展,许多新技术和新方法构成了软件工程的重要部分,软件工程已经找到了进行软件描述、设计和实现的有效方法,并极大地完善了我们对软件开发活动的认识,提高了软件开发的效率。大道至简这本书则讲了在现金的软件开发方面我们所应该注意的问题,和解决问题的方法。是一种优秀的方法论。
“注重过程”是软件设计的一项基本理念.过程性具体体现为概念的形成、来龙去脉的揭示、思维活动过程的暴露、探究活动的亲身参与等。学习是以已有知识经验为基础的主动建构的过程,在软件设计中,忽视了“过程性”,就如无本之木、无源之水,缺乏生命力和创造性,不利于软件工程的开发,也不利于个人编程素养的提高。
要完成一个项目,我们并不需要一直埋头干,干,干,我们需要思考,需要反思。一个项目是要考虑很多方面的,有和很多部门的交流沟通,有协调每个人的工作内容和资源的分配,有完成工作方法的选择,还要协调不同角色关注点的不同力求相互之间的协调和共同目标的确立。
团队应该有团队自己的灵魂,而这个灵魂是团队的所有人都参与铸造的,而且是印在每个人骨子里的东西。所以灵魂并不只是骨架而已。而团队需要的的不是流于形式的管理,而应该是有灵魂的管理,我们做软件开发更多的便是以一个团队的形式来工作,我们更能理解合作的重要性。
大公司的手中,都有一个算盘,它们都是为了获利而存在。大公司们在标准、理论、语言上的争来夺去,未必全然出于“软件实现”的考虑。对统一理论、统一工具、统一过程的企图, 其最终目的是在整个软件工程体系中的全面胜出。
争能力、抵抗内外压力、求得生存和发展的能力。
软件工程三个要素---工具、方法与过程,这三者是相互关联的,工程实质上就是“实现”,你应该回归到软件工程的本体上来思考问题,而不是仅关注于每一个局部的要素,如果你只顾项目局部的某一个问题,只从单一的角度看问题,只具备非常局限的思维能力,你就很难适应去做一个大项目,而具有组织全局观念的人,会从编程项目或工程整体和长期的角度考虑问题、进行决策、开展工作,保证项目的成功实现。