Having dinner in Kansas City last week with @MillardJK prior to the next day’s Lunch and Learn, as often happens, conversation led me to an idea for a blog post. We were discussing a friend of mine who’s working in a new role. This friend, not Jim, has never really architected before. So, with that prelim…
As architects, we spend so much time trying so hard to develop systems that incorporate existing architectures, equipment, applications and limitations into future goals into our customer’s projects that we find ourselves over-thinking solutions in an effort to provide elegance and uniqueness.
I’m a firm believer in “solutioning” an answer only as complex as it needs to be.
Once, I was asked by a small law firm who were dealing with a problem having to do with content filtering. I was asked to implement a firewall, content management, and tracking solution. I very much respected this firm, these people, and their issues. Rather than spend the time, money and hardware necessary to do so, which I would have been happy to do for them, had they needed it, my recommendation was to write a letter, have each member of the staff sign and date, stating that they would comply with the rules, and should they be found breaking the rules, there would be some legal repercussions.
I believed this to be the honor system, and a quite reasonable alternative to thousands of dollars of dollars in consulting fees and hardware. Particularly as this company had no trouble being a law firm, writing a simple legal document. Problem resolved.
How many times do we not employ Occam’s razer, or Parsimony when troubleshooting? Those of us who’ve spent our years in the industry, who’ve come up through the ranks of help-desk work know that the easiest answers are often the best, and most often right. Yes, sir, I understand you cannot print to your network printer, can you not surf the web as well? Simple questions can lead you down logical paths. And their answers, though they may be expected, or not, and they may not make sense to the person being asked, can be incredibly helpful when coming up with the appropriate response.
Back to the point at hand…
We create storage solutions, but this works for networking, virtualization, security, or, for that matter, soccer or songwriting. An ideal solution does not need to be complex to be elegant. When I think about the black hat hackers, the guys who really knew what they were doing, they all really cared about elegance. The sparseness of the code, and capacity to embed as much power in as little code as possible was prized above all else. In those days, we didn’t have computers with abundant stacks of ram, page files with practically unlimited size, etc. We needed to be as efficient as possible. Today, these skills are unimportant. I think that’s a shame.
I read fiction in my spare time. One of my favorite authors is Scott Spencer, a man who’s written very few novels in his many years as a professional writer. His economy of prose is amazing. I picture him struggling with each word angling for the perfect choice with each one. The end result reads fluidly, but in analysis beautiful and ideal.
As we architect our solutions, I suggest we aim to produce a solution with economy of equipment, software, physical dimension, expenditure, and time. I suggest that we work as trusted advocates for our customers. In so doing, we gain their confidence over the long run, and their referral grows our client base ultimately leading us to success.