April 28, 2004

Programmers Are Interesting

Another great article from Sean McGrath: The mysteries of flexible software. Bang on the money.

I don't know how many times I've encounted software (and yes, some of my own devising) that has all sorts of wonderful flexibility but in all the wrong places. Time spent factoring applications into layer cakes, introducing endless layers of abstraction may have some benefits, but exactly how often do you go through an application and rip out the entire persistence layer? And when you do, what's the biggest hurdle: changing the code, or the data migration and testing involved to guarantee that you've not broken any of the data integrity? Exactly how often do you swap in and out XML parsers and XSLT engines?

I've been a keen advocate of design patterns for some time, but it's easy to get carried away: achieving a particular design pattern (or set of patterns) becomes a requirement in itself and that in all likelihood isn't going to affect the success of a product. The "Just Do It" aspect to XP is one obvious reaction to that experience. Renewed interest in more flexible, easy to author languages like Python is perhaps another.

Abstraction ought to be a defense mechanism. If a particular area of code or functionality is continually under change, then introduce some abstraction to help manage that change. Trust your ability to refactor. Don't over architect too early.

Posted by ldodds at April 28, 2004 02:58 PM | Feedback? | | TrackBack
Comments

That's awesome..

Posted by: oreck vacuums on July 25, 2005 12:52 PM
Comments

Lots of thanks.

Posted by: concert tickets on August 1, 2005 11:25 AM
-->