As consultants, we are expected to provide solutions for our customers. But those solutions must be the “right” solution whether or not they are the “best” technical solution. As technology professionals, it is up to us to recognize when the latest whiz-bang technology may not be what is needed by the customer.
Guilty as charged
Early in my career, I had a project where I made all of the wrong decisions in the name of implementing the “best” technical solution. We were working with a hardware device with limited resources and instead of using the vendor’s software development kit (SDK) I decided to try to force fit our existing generic code base onto the device. Efforts to make our “standard” code fit only exceeded the resources of the device and the limited time budget allowed for the project. Needless to say, it was a disaster which led to a project that was over budget and failed to win acceptance by the target customer. My approach was the best technical solution (using a common code base that we had used on other devices) but the right solution would have been to rewrite the application using the vendor’s SDK.
If I had a hammer…
We all fall into the trap of using our favorite “hammer” to turn every problem into a nail, whether it is a nail or not. We have all seen that technology professional who falls in love with the latest gee-whiz tool or library and loudly proselytizes it to anyone that will listen as the greatest thing since sliced bread and the solution to every possible problem. Don’t be that person! There is no one tool or technology that is the right answer for every situation and we need to recognize that (particularly when we are the ones on the soapbox).
Look at the whole picture
We need to make sure to look beyond just the technology and consider real-world factors that will affect the acceptance and longevity of the solution we propose. Some items to consider:
- What is the skill set of the team that will build the solution?
- What is the skill set of the team that will maintain the solution?
- What is the cost? Is there another solution that is 80% as good that will only cost 20% as much to implement?
- How long will it take to implement this solution?
- What is the customer’s tolerance for new technologies?
- What existing technologies are being used? Is this solution going to be so different from existing solutions that it hinders acceptance and adoption?
Remember the goal
In the long run, what we are trying to do is provide the best possible solution for our customer. Many factors go into creating that best solution and the technology used is only a small consideration in the long run. If our solution is delivered within budget, meets the customer’s needs, fits into the customer’s culture and skillsets, and is maintainable and extensible, then we have met our objectives. If that solution happens to be using the latest gee-whiz technology then great! But always remember, technology doesn’t create great solutions, people do.