Monday, May 24, 2010
Keep it Simple, Stupid
I've written before on the perils of over-architecting a solution, most notably when trying to build systems that replace humans. As I see it, we are either the result of Divine intervention or the outcome of 4.5 billion years of evolution. Electronic digital computers have been around for about 50 years give or take - so I'm just guessing they're not ready to terminate us.
It is the intelligent integration of computers and humans that yield the best results. In 1990 I had the opportunity to design a new computer system for the USAir Control Towers; to be used in a number of their large hubs. We spent almost an entire year gathering requirements, observing the manual system that was in place, and flying all over to observe how other airlines across the globe approached the problem.
The general consensus was that the decisions necessary to manage the flow of aircraft to and from gates, with fuel trucks, catering vans, baggage, and crew traffic was just too complicated for humans. The airline business had grown too big too fast for human processing to handle it all. My team saw it differently.
At the most fundamental level this was an architectural issue, and choosing wrong could have led us down a rabbit hole of Expert Systems, Artificial Intelligence, and Rules Engines long before the technology existed to support them. By focusing on the user needs, and understanding the problem domain, a solution was delivered that was as simple as possible, but no simpler. I think Al would have approved.