Archive for June, 2009

Building The Right Thing: “I wanna talk to my usability guy…”

Just came off an assignment which involved a usability assessment and walkthrough for a “90% complete” system. In the event, we were able to identify some low hanging fruit which should result in better usability without excessive re-writes.


Continue Reading June 19, 2009 at 1:09 pm Leave a comment

Architecture Evolutionary Patterns

Started playing with patterns and antipatterns which might describe the evolution of system architectures over their lifetime .  Hypothetically, one could identify smells which indicate that an application is headed towards one of them.  Potentially, drift towards anti-patterns could be remedied by best-practices mitigation strategies associated with the pattern.

June 17, 2009 at 5:10 pm Leave a comment

Deliberate Unmaintainability: Burning Bridges To Fight The Cold

Getting a software project done by brute-force coding without putting effort into design and automated tests can work. Maintenance and attempts to add new features might be nightmarish, but version 1 might actually be there when needed:  The client is happy, repeat business ensues. The product gets to market in time, sales are made which would have been lost otherwise.

It’s like burning bridges to fight the cold: You may be warm, but you’d better be sure you aren’t planning on going anywhere later.


June 17, 2009 at 3:40 pm 1 comment

Accidental Architecture: Fatal Attraction Of The Hourglass

Inspired by,  I was doodling to find a notation to describe evolution of software architectures over time.  A number of database-centric systems I have seen in recent years could be depicted  along the lines of:



June 16, 2009 at 12:48 am Leave a comment