1、重要的研发成果常常产自类比。通过把你不太理解的东西和你较为理解、十分类似的东西进行比较,你可以对这些不太理解的东西产生更深刻的理解。这种使用隐喻的方法叫做“建模”。
2、软件隐喻不会告诉你到哪里去找答案,仅告诉你该如何找到答案。隐喻的作用更像启示,而不是算法。
3、“增量的”、“迭代的”、“自适应的”、“演进的”,以增量的方式进行设计、编码和测试,是目前已知的最强有力的软件开发概念。
4、进行增量开发时,我们先做出软件系统一个尽可能简单、但能运行的版本。它仅仅需要构成一个足够强壮的骨架,支撑起来未来将要开发的真实系统。
5、增量开发的优势在于未做过的承诺。
6、软件开发中的几个事项:问题定义、架构设计、详细设计、构建、优化、评审、详查。
7、使用现成的东西,自己编写能买到的代码是没有意义的。
8、适当的多层次的规划对于建造建筑和构建软件都是有好处的。
9、精心计划,并不意味着事无巨细的计划或者过度的计划。
10、一个规划得当的项目能够提升你“在后期改变细节(设计)”的能力。
11、不同的软件项目能够从不同的开发方法中获益。
12、软件开发中,通常你只需要用灵活的、轻量级的方法,但有时你就必须得用严格的、重量级的开发方法,以达到所需的安全性目标或其他目标。
13、对于超大型的软件项目,就需要比一般规模项目有更高级别的规划设计。
14、技术并不是规矩,它只是分析工具。好的工匠知道完成某项工作需要什么工具,也知道如何正确使用,程序员也该这样。不存在任何一个能适用于所有工作的工具,因地制宜地选择工具是称为能有效编程的程序员的关键。
15、隐喻只是一种启发方法而不是算法,他们之间并不排斥。应当使用对你最有益处的某种隐喻组合。