THE SQL Server Blog Spot on the Web

Welcome to - The SQL Server blog spot on the web Sign in | |
in Search

Alexander Kuznetsov

To design or not to design?

Clearly Linux is one of the most successful products ever. Let me quote a little bit from Linus Torvalds and other brilliant people involved in it:

"A strong vision and a sure hand sound like good things on paper. It's just
that I have never _ever_ met a technical person (including me) whom I
would trust to know what is really the right thing to do in the long run.

Too strong a strong vision can kill you - you'll walk right over the edge,
firm in the knowledge of the path in front of you."


"The most successful software have born from fixing/patching an
initial/simple implementation while the greatest software failures
have born from deep planning and design
. "


More specifically, the following article is a great read

Evolutionary Database Design








Published Tuesday, December 8, 2009 5:18 PM by Alexander Kuznetsov



Wes Brown said:

There is a huge gap between over thinking a design and solid design principals. Databases are one of the few things that respond poorly to haphazard growth. It isn't like you put in a bad line of code and can just back it out. DB's are much more difficult to refactor and generally harder to maintain and do require some thought to it. I do agree with most of the stuff in Evolutionary Database Design though it is light on integration and testing. Databases by their very nature are expected to scale. I almost never encounter a development shop that does proper load testing. Like this paper, 99% is focused on functional testing and non-breaking changes. I've seen poor database designs with lots of organic growth almost put companies out of business when they tried to reach for the next level and scale up to meet demand.

It's like shaping a bonsai tree, controlled growth. I've never been a fan of the marble sculpture where one small error ruins the whole design.


December 8, 2009 8:30 PM

Alex K said:


I definitely agree that "I've seen poor database designs with lots of organic growth almost put companies out of business when they tried to reach for the next level and scale up to meet demand."

However, for each successful startup and or project there are several failed ones. Many of those failures spend on design too much, spend too much effort trying to get it absolutely right the first time, and run out of resources...

It is probably very difficult of possible at all to include such failures in our stats. Which leaves me thinking: if so many successful projects exhibit poor database design, doesn't it tell us something?

December 9, 2009 12:01 AM

Greg Linwood said:

ok! let's go write some code then!..

December 9, 2009 5:01 PM
New Comments to this post are disabled

About Alexander Kuznetsov

Alex Kuznetsov has been working with object oriented languages, mostly C# and C++, as well as with databases for more than a decade. He has worked with Sybase, SQL Server, Oracle and DB2. He regularly blogs on, mostly about database unit testing, defensive programming, and query optimization. Alex has written a book entitled "Defensive Database Programming with Transact-SQL" and several articles on and Currently he works as an agile developer.

This Blog


Privacy Statement