Site Archive (Complete)
Architecture Blog: The Ultimate Answer
Architecture & Design
PATTERN LANGUAGE

Modeling, Managing, Making it Right.

by Jonathan Erickson
IF YOU BUILD IT

... Will they Come?

by Arnon Rotem-Gal-Oz
September 28, 2006

The Ultimate Answer

Yes! I've done it! I finally managed to discover the end all answer to all my (and your) architectural dilemmas.

Well, whatever architectural or design dilemma you're presented with and asked about, you can always answer "It depends." Okay, so it isn't that Earth shattering. You probably already knew this and, yes, you are right--this isn't the end-all answer :-). As it happens, however, it is true. It does depend. For most (if not all) design dilemmas, there is no "single" always correct answer. What seems like a crappy idea might be the best option under different time or budget constrains. A great Java-based solution might be useless for a team of VB 6 developers; going with the simplest thing that works might prove to be a waste of time if the next iteration requirements requirers more sophistication to be "implementable"; etc. etc.

This means a few things for us (as architects):

  • Every decision is a trade-off. If something seems to be the "Ultimate answer" we should probably look again, see what other options we're missing, and think about the trade-offs and risks.
  • There are no "best practices"--only "good practices" and a context where they fit (see, for example, my post on "simple 3-tier architectures". This is, by the way, why I like patterns so much. Patterns describe a specific problem, force making the problem complicated, a solution and consequences. This make knowledge published as patterns more usable (in my opinion) from most other ways.
  • (Good) Large (ambitious) frameworks are hard to create because if you need to answer all possible possibility you will most likely be spreading the code too thin to be of value either that or you get a monster which is hard to maintain and develop.

Lastly, you shouldn't get too discouraged from the lack of best design decision codex. The good news are that all this spells job security for all of us, since someone will always have to make these decisions, and make the right ones for the context (if we are to produce a good product).


Posted by Arnon Rotem-Gal-Oz at 05:31 PM  Permalink




 
INFO-LINK


Related Sites: DotNetJunkies, SD Expo, SqlJunkies