Archive for July, 2009

Evolving Software Architectures: Riding The Golden Groove

Some observations on Overdesign and Underdesign in software engineering.

How much is enough? What are the consequences of either?

  • Underdesign is the familiar software¬† industry concept where you go ahead with building the car, on the understanding that you can always decide on the number of wheels it needs to have after you are done.
  • Overdesign anticipates all possible ways the car could conceivably change in future model years. Considerable effort is spent on getting the number of wheels exactly right. We may lose sales in some of the future model years because of delays caused by implementing the technological equivalent of analysis paralysis.

Because waterfalls are unworkable (not to mention unfashionable),  the pitfalls of either design direction can be felt all along the software development lifecycle:




July 18, 2009 at 2:54 pm Leave a comment

Just Say No: IT Cost Of Ownership’s Dirty Secret

Maintainable software applications are The Right Thing:

  • They take the gut-wrench out fixing bugs and adding features, theoretically keeping us sane.
  • In an entropy-sodden world, they are very hard to build.
  • Writing code has nothing to do with it. OK. Maybe a little. Perhaps 50%.

There are times when it feels as if deciding what to build is maybe half the picture.

The rest is saying no to building The Wrong Thing .

Building The Right Thing cuts maintenance work because there is no need to change The Wrong Thing. It makes for a decent chance that new features are requested for The Right Reason:

Users LOVE the application and want more.

As opposed to The Wrong Reason:

It doesn’t work right.¬† This pig is is going to need a lot of make-up.

Let Usability Rule.

July 4, 2009 at 1:33 pm Leave a comment