Code Complete Review — 2

Chris Ross
4 min readOct 5, 2017

Metaphors for a Richer Understanding of Software Development

This post will provide a brief overview of the 2nd chapter of Steve McConnell’s Code Complete (2nd Edition). If you haven’t already, please first read the Introduction to the Series. You may also want to check out the Review of Chapter 1 if you missed it.

Metaphors

Good metaphors often provide insight into difficult or obscure concepts by comparing them to things we already understand. You will, no doubt, encounter many metaphors related to programming and software development in general. The goal of this chapter is to discuss a few common metaphors in order to better understand their application to the software development process. “Modeling” is a term used to describe the use of metaphors to improve our understanding. The properties of a good metaphor, or model, are 1. Simplicity, 2. Relevance, and 3. Breadth of the topic it explains.

The power of models is that they’re vivid and can be grasped as conceptual wholes.

McConnell elaborates a bit on the difference between an algorithm and a metaphor, explaining that a metaphor is more like a heuristic. The primary distinction is that an algorithm provides explicit instructions on how to…

--

--

Chris Ross

Clinical psychologist, app/web developer, and digital designer — often observed in his natural habitat riding down a mountain or strumming a guitar.