The old adage “When all you have is a hammer, every problem
looks like a nail.” is a very common problem in the software development
world. Developers may become proficient
with a particular technology or tool set and use it to every problem, even to the
point of excluding a more appropriate solution.
This narrow technological view has been nicknamed, “The Golden Hammer”. There are benefits to having a very deep
understanding of a specific technology stack, however t is more important to
understand when to use an alternative.
A common Golden Hammer is using programing languages in ways
they were never intended to be used. For
example, in the late 90’s the Perl programing language was very popular, and to
some extent still is. With good reason, it’s an incredibly powerful and useful
scripting language. It was originally
created for parsing text, which it’s really good at it. It was so good at doing what it did, that
people became very adept at it, and started using it for things it was never
really intended to do; such as writing full applications. Being a scripting language created for simple
text parsing, its syntax was very loose and lacked the structure needed to
create well formatted and maintainable code.
In spite of its shortcomings it was used far more than it should have
been.
Another common Golden Hammer is using tools like Microsoft
SharePoint or a content management system (CMS) such as:WordPress as a
development platform. These tools were
built with the intent of managing content, and for the most part they do that
very well. The down side is when you
start extending these tools beyond their intended use. Using Microsoft SharePoint to build a
warehouse order management system is like building a drag racer out of a school
bus. I’ve seen both done and it’s a
prime example of “just because you can doesn’t mean you should.” You can force tools to do what you want them
to do, but it’s going to take a lot of customization and your end product, like
the drag racing school bus, will never perform as well as if you had built it
with the appropriate solution.
When looking at what tools and technology to use it’s just
as important to look at what not to use.
One of the most valuable lessons I learned in high school was from my shop
teacher:
“Learn to use the right tool for the job, not what’s most
convenient. Screwdrivers are not chisels!”
Dallas E. Tolman
In the long run you will always be better off using the
right tool vs. the most convenient one.
No comments:
Post a Comment