Code Construction

What is Code Construction?

You will often hear me talk about code construction. I use the term as it was defined originally in "Code Complete", the 1993 Jolt Award winning book which is still considered by many to be the greatest treatise on building quality software.

To me, code construction is what allows software to deliver real, ongoing value to the businesses who build it in the "real world". Almost all companies can produce software that solves the problem for which it was designed, but poor code construction often means this software becomes a "legacy system", loathed by both users and developers, which can cost the business who uses it critically.

Software that exhibits good code construction is often a fundamentally different beast; it not only solves the problem for which it was designed well, but it never seems "trapped" by its existing functionality; when new requirements appear, developers are able to fit them easily into the existing architecture, or add new pieces to the architecture without fundamental rewrites. Requirements can be expressed in simple English appropriate to the problem and translated directly into code with no confusion, even if the developer performing the work is very new to the software. Changes can be made to such systems reliably without "side effects" that nobody could have predicted.

When I talk about "code construction", I mean the practices associated broadly with McConnell's five aspects of code construction (design, planning, writing, unit and integration testing), along with the associated concepts of object-orientated (such as SOLID) which allow software exhibiting these desirable traits to be created reliably.