#Review Code Complete by McConnell (Part1)

Steve McConnell is the man behind the book, Code Complete. Its stated goal is to narrow the gap between the knowledge of industry gurus and professors on one hand and common commercial practice on the other. John Dempster in his review describes the book as a mine of useful information and advice on broader issues in designing and producing good software.

My goal is to incorporate this book in my daily routine, digest its contents and do short summaries of the core content. The summaries will be a quick ingest for anyone looking to improve their programming skills especially regarding programming style and software construction. I hope you find this series extremely handy and informative.

Chapter 1: Welcome to Software Construction

In this chapter McConnell explicitly describes the activities that go into software construction. He highlights the development activities Code Complete will primarily focus on. He expounds the book as a dog that nuzzles up to construction, wags its tail at design and testing, and barks at the other development activities. Further, he discusses in detail the vitality of construction in software development.


  • Construction is the central activity in software development as it takes a substantial amount of time compared to other development activities.
  • Construction is the only activity that is guaranteed to happen in real-world situations with time and budget constraints.
  • With a focus on construction, the individual programmer’s productivity can improve enormously
  • By improving the construction phase, you effectively improve the whole project.

Construction is used to refer to coding or programming.

Chapter 2:Metaphors for a Richer Understanding of Software Development

Metaphors are extensively used in literature to take an identity or concept that is understood clearly and use it to better understand a lesser-known but similar element. McConnel details various analogies that have been used to explain mystifying science concepts and states the importance of using metaphors to describe software phenomena. Metaphors are of great aid in better understanding the software development process.


  • There are no good or bad metaphors; some are better than others.
  • Metaphors are heuristics, not algorithms. They are more of searchlights than roadmaps.
  • The properties of a good metaphor, or model, are simplicity, relevance, and breadth of the topic it explains.
  • Although some metaphors are better than others, they are not mutually exclusive

Hope you had a good read. Stay tuned for more of this. Thank you!