A number of recent debates have involved decisions on how to best solve a problem. Usually, people are trying to fit a square peg into a round hole or define something so broadly that it really is hard to identify a proper solution. Following are two recent examples and some very general thoughts on making your job easier and more enjoyable.
As Chairman of Technical Ministries at the church I attend, I am responsible for the technology decisions as they relate to our audio, video and lighting systems. I recently received a request for a particular piece of equipment for our video systems that would not come close to supporting our needs. It was recommended in response to our pastor’s desire to better incorporate video into our services. This particular piece of equipment would do that, but did not really solve the problem.
As a software developer, I consistently have to make decisions about how to best approach a particular problem. This involves user interface as well as technology decisions. There are no less than six million different solutions to any one problem, more when you actually combine the design with technology. I like to be flexible and have the ability to use the right tool for the job. Too many times I run across people who lock themselves into a partnership with a particular vendor or align with a single programming langauge. Sure there are benefits to consolidation such as cost, maintenance, etc. but is it really solving your problem?
What is the problem?
I think this is where people fail the most. A simple understanding of the problem drives the solution. However, many times the problem is stated as a solution. For example, in a particular software application, a new feature may be suggested such as “I need to be able to do X from page Y.” All too often, a typical developer will implement it as stated, without first asking “why?”
After I had already started penning this post, Jason at 37signals wrote about a common feature request for Basecamp to which Garrett responded with this insightful post. This pretty much summed up my entire “consultative approach” to development. I’ve been preaching this for a couple of years now at places I’ve worked.
I’ve heard it said before (sorry, I can’t remember where) that “There are no wrong answers, just right answers to the wrong questions.” This is absolutely the outlook one has to have when dealing with clients in any industry. If you ask the wrong question, you may receive the right answer to that question, but the wrong answer to the real question (that makes sense, right?). The client has hired you as the expert. You have the experience to ask the right questions and then make the appropriate recommendations in any given situation. It pains me when I hear the old adage “the client is always right” or “the client gets what the client wants.” Two words – cynicism and laziness.
Make the extra effort to consult with the client on the various solutions to the problem. Granted, they’re not usually going to care about the various technicalities involved, but there are certainly more reasons than just technical that you’re making any one recommendation. Identify with the client. Show them – in their language – how each solution affects the user as well as their bottom line, and you’re pretty much guaranteed to win. Present the idea passionately, authoritatively and set yourself up to do the job right the first time. If the client chooses a less-than-adequate solution, you’ve done your due diligence. Nine times out of ten they won’t, given you did your job.
The reason I titled this post Sixteen-ounce Hammer is that one of my many hobbies happens to be woodworking, construction, etc. I’ve finished basements, built furniture, remodeled bathrooms, etc. When my dad passed away and I inherited his workshop, I brought home a box full of nothing but hammers. There were 22-ounce framing hammers, 16-ounce hammers, hand-made wood mallets, rubber mallots, ball-pean hammers, sledges, finish hammers, etc. Each has its own purpose. Sure, I can use a three-pound sledge to drive finish nails, and though it would take a while, I could use a finish hammer to drive a nine-inch spike.
It is simply a matter of selecting the right tool for the job. Understand the problem, see the big picture, consult with the client and allow the client to make the decision. I guarantee you’ll enjoy your job much more having empowered yourself to do your job the right way the first time.