History is more or less bunk
-- Henry Ford
I recently got an unhappy email from a reader of UML Distilled. It's never a good start to my day when an irate reader regrets buying, let alone reading, my words of occasional wisdom. But there was something particularly interesting about this reader's beef. His concrete complaint was about my 'unnecessary history'.
When you look at a problematic situation in the here and now, it got that way for a reason. Often you cannot make sense of the now without understanding how it got there. The example my reader complained about was UML's AggregationAndComposition. It's a messy area, one that leads to frequent long threads in the not-very-erudite circles of comp.object. I'm convinced I wouldn't make any sense of it if it wasn't for my memory of the long arguments about the topic a decade ago. Those arguments are the only thing that gives the aggregation placebo any sense at all.
History makes a big difference to our daily work and lives. More than once I've felt lost trying to understand why a piece of software works the way it does and found that some historical digging led to a little enlightenment. Many business practices are rooted in odd episodes of history. (For a particularly good example read Chromium in Primo Levi's wonderful book The Periodic Table.) And history certainly pervades our political life, often much more than we imagine.
So when you come across a puzzling piece of software or business rules, consider looking into the history of it got that way. The past has a way of giving understanding to the present.
"Those who cannot remember the past are condemned to repeat it." -- George Santayana