No, this isn't going to be an article about concrete architectural practices. But it may in fact be as useful as any of those. I watch some television. Okay, sometimes I watch a lot more than I should. But mostly I listen to it while doing other things, like now as I write this article. And somewhat surprisingly, I find some television to be incredibly applicable to the field of software engineer. More interesting is that the programs I find applicable have absolutely nothing to do with software or in most cases even computers. Here's programming I find very insightful.
Detective Programs
Some of these are much better than others. All software engineers are inherently intrigued by a good puzzle. Unfortunately most of the remaining population isn't so too many detective programs turn into juicy dramas with lame intrigue instead of good intellectual challenges. My two favorite by far are Columbo and Monk. What these two programs share is the reliance on incongruities in details to lead our hero to the solution. How does this apply to software? Well, debugging hard problems is almost always about paying attention to seemingly inconsequential details. Inconsistency in behavior in an unrelated flow is often the key indicator to the root cause.
Mythbusters
I enjoy Mythbusters immensely. Yes, it is truly geeky fun. And they get to blow real things up, not just simulated explosions in mathematical models and 3D renderings. But what is a true joy to watch is how thoroughly methodical they are in solving problems. They research, design, and prototype. They fanatically analyze their results and make adjustments based on the data. Few programs have been bold enough to expose the analytical and development process so transparently. In fact, the boldest thing Adam and Jamie do is solve a problem in front of millions of people, knowing that they will receive hundreds of comments on the work they do. Think about it. Would you work on a problem in front of millions?
Modern Marvels - Engineering Disasters
This series fascinates me. I'm addicted to it. I wish they would make more because I've seen all the episodes at least 3 times each. Two things stand out in this series and is a common theme across the more than 60 disasters they have presented:
- Catastrophic failures are always the result of compounding problems. They come about as the result of a "perfect storm". Nobody believed that the combination of events could occur within a critical time window so nobody planned for it.
- Engineers are an egotistical lot. We are sure we got it right and only when our creations collapse in front of us do we realize we missed something. It's not surprising though as creating what we create from nothing more than thought and will does require a good deal of egotism.
Every engineer in every discipline should watch this series. It gives you insight into the thought process required to make your creations more failure resistant. And you can see what happens when you fail to account for not just a collection of single failures, but for the simultaneous occurrence of these failures.
So that's my collection. Care to add your own?
Technorati Tags: architecture, careers, engineering, software, to_read, toread