The Importance of Coding Standards in Building Quality IT Systems
House Building Is Like IT!
I like to compare building an IT system to building a house. If you want to build a quality house, you don't just plunge right in and start constructing one of the outside walls. Instead, if you're sensible, you get an expert (architect) to determine and document the "technical requirements" of which the customer is blissfully unawaredetermining the feasibility of building the house on the selected plot of land.
Assuming there's agreement on the requirements, it's essential to ensure that a detailed plan exists that all involved in the projectthe client, the architect, and all the "builders"understand, before building starts. Each should know the part that he or she is expected to play in that plan, and how they should all interact.
Without this planning phase, the client might want the contractor to build a small four-bedroom house with a large yard, whereas the contractor might think that the client wants a large five-bedroom house with a small yard. The plot of land might even be covering a huge well, into which the house might disappear as soon as it's built!
With this analogy, it's easy to see that poorly planned, poorly architected IT projects are doomed to failure.