Concrete is incredibly strong in one direction. It handles compression well, but it doesn't necessarily deal with shear forces or expansions well. Even without the weight, I'm not sure you'd want to use concrete rods to suspend something from the ceiling since the material would just separate and break apart.
I've heard people refer to code as being "brittle" before, meaning that it might perform well as it's being used, but as the situation changes, or it's asked to handle a different type of load, it might fail.
Just like concrete.
There might be times when you do want to build use concrete, such as in a foundation. And you might want to do the same thing with your code, building an application that handles a narrow range of functions or loads very well, but can't handle other requirements. Other times you might need to keep your application as flexible as possible, without a strong foundation.
We constantly make tradeoffs in our design approaches, but I tend to err on the side of being flexible and open, even at the expense of building code that might not seem as strongly designed as something that Joe Celko or Dr. Codd might build.
However in today's world, where it often seems that client have as little, or possibly less, idea of how their business should work, I've learned that a lot of flexibility goes a long, long way.
The Voice of the DBA Podcasts
The podcast feeds are available at sqlservercentral.mevio.com. Comments are definitely appreciated and wanted, and you can get feeds from there.
You can also follow Steve Jones on Twitter:
or now on iTunes!
Today's podcast features music by Everyday Jones. No relation, but I stumbled on to them and really like the music. Support this great duo at www.everydayjones.com.