对于软件来说,最大的软肋在于逻辑思维的不可遍历性。这是测试工作存在的一个原因。
实际的软件工程师实践证明,让对软件思想有深刻理解的软件工程师进行测试,可以大幅度提高软件质量。所以,测试工作并不比软件开发轻松,让软件开发菜鸟来进行测试是不负责任的。
测试人员并不是软件开发人员的对立者。他在找出bug的同时,也要尽可能的帮助编程人员指出这种bug存在的原因以及地点。
所有论点都存在一定的上下文之中。所以学习别人的论点只是理会这个论点的思路,而不要到处生搬硬套。怀疑一切。
项目管理工作的基本思路不是控制,而是创造有利的环境和顺势引导,扫清软件开发中的各种障碍。项目管理工作要与软件开发工作隔离开来。
对于软件开发者而言,你需要考虑的是风险服务,即风险响应。而不要把主要精力放在风险预防和控制上。
软件维护要在项目开始或者设计时就要予以考虑。在进入软件开发领域之前,我们必须要做一些思想上的准备。这种思想上的准备高于方法论,以及任何一项具体的工作内容,它可以使我们站在一个更高的角度来认识软件开发这件事。思想认识是解决问题的根本,这一章的内容体现了思想工作的重要性。
我们将围绕着三个基本思想展开讨论。首先,软件开发是一项创造性的活动,因为它的创造性,我们要特别关注软件开发中的想象力;其次,我们要把握认知方法的本质,通过有意识地建立自己的思想体系来学习各种知识;最后,我们要追求对软件开发中各种问题的简化,只有简化问题,才能高效地解决问题。
在讨论中,我们会结合一些具体的技术背景知识。这些技术背景知识或者比较基础,或者泛泛而谈。事实上,我们的目标不在于详细介绍这些知识本身,而只是为上述三个基本思想的讨论提供一些证据。当我们开始具体的软件开发工作时,方法论是第一件需要思考的事情。软件架构师在软件开发中的角色就如同主刀医生在一次外科手术中的角色,不确立这一点,软件开发的正常化就无从谈起。当然,本书的优秀之处并不仅仅如此,系要掌握更深的理解,需要更长时间地研读。