codethinked (kōdthĭngked) adj. To be consumed by or obsessed with code.

Refactor Your Way To Success

I seem to always start writing posts on software architecture, and quite rarely do I end up finishing them, much less posting them. I think one reason is that I’m not as much of a loud mouth as some of my contemporaries; as is evident by the lower level of traffic of my blog :-) Also, whenever I start writing something about architecture I always sit back, look at it, and say “man, that really is only applicable to a small segment of the software out there.”

I think that this is the core reason why giving unsolicited architecture advice is so hard. It is even why I have said many times before that I believe vendors (including Microsoft) should stray away from giving generic application architecture advice. Advice never works as well for Bob as it did for Frank and vice versa. That just isn’t the nature of advice, two people will always interpret it in many different ways.

So, I was looking at a recent post that I had been writing on about software architecture, and I was having the same thoughts about whether or not it was worth publishing. It got me thinking about whether or not there was any architecture advice that could be given which was truly universal. I thought and thought and came to the realization that the only constant was that we never get our architectures right on the first try.

Continue reading the rest of this post...