Key Points Metaphors are heuristics, not algorithms. As such, they tend to be a little sloppy. Metaphors help you understand the software-development process by relating it to other activities you already know about. Some metaphors are better than others. Treating software construction as similar to building construction suggests that careful preparation is needed and illuminates the difference between large and small projects. Thinking of software-development practices as tools in an intellectual toolbox suggests further that every programmer has many tools and that no single tool is right
...more