Flexibility is No Virtue

Vice is a monster of so frightful mien,
As to be hated needs but to be seen;
Yet seen too oft, familiar with her face,
We first endure, then pity, then embrace.

Alexander Pope, Essay on Man

If I had a penny for every programmer that I’ve heard, proudly touting the flexibility of what they’ve built, I’d be a wealthy man. I might even be able to afford my teenagers’ car insurance. :-)

As a young coder, I took the implied excellence of flexibility for granted; after all, who wouldn’t want to be flexible?

Now I know better.

If your software can be installed and configured a hundred different ways, this is Not Good. It is a sign that you don’t know who your customer is, or what they want. If your programming language has nine separate functions that provide the same functionality, shame on its designers. If your UI presents users with oodles of choices and calls it a customer focus, go vomit into the nearest garbage can.

V22-Osprey — an unusually flexible aircraft. Photo credit: Sgt. Mike Fayloga (Wikimedia Commons)

I can already hear the protests, so let me pause here to admit Continue reading