Picking The Right Tools For The Job

« »

You’d never dig a drainage ditch with a pitchfork, or plug a drywall hole with chewing gum. Instead, you’d pick an appropriate tool and you’d use it to accomplish the job (a shovel, or some spackle, for example). So why do software engineers often spend so much time fixing problems with the wrong tools at hand?

I think there are a number of contributing factors, and I’ve listed three, as well as ways you can overcome these.

  1. Lack of knowledge regarding available tools. If you don’t know a tool exists, you’re not likely to employ it. Right? Makes sense. To solve this, developers should regularly read up on tools that are out there. Read the website for the language/application you develop with, and read blogs related to your area of expertise. This may seem like a simple step but surprisingly many developers still don’t do it.
  2. Inability to implement solutions due to lack of resources. A common theme I hear is that there is a lack of available resources (hardware, software, etc) to implement an optimal solution. Somtimes this cannot be overcome; other times it can. Developers need to learn how to argue for their positions in terms of how it will benefit their listener, and they’ll become successful at selling their solutions.
  3. Unwillingness to implement a solution. One common theme I hear among developers as well is that they don’t want to implement a particular solution. Why? Sometimes it’s language superiority (my language is better than that one so I don’t want to use it). Other times its an unwillingness to learn about another language. My perspective on this is that each language is a particular tool – that is, a shovel is good for some things but not others, and just as that is true so it is true that PHP is fantastic for some things and MySQL, for example, is better for others. C always runs faster than PHP; coding in C for some projects may make sense. Developers need to recognize that languages are simply tools, not one-size-fits-all solutions to all of life’s problems.

This post isn’t PHP-specific, though it’s aimed at PHP developers that struggle with these issues. Though I am likely breaking a PHP covenant here, it’s ok to admit that PHP isn’t perfect and that Javascript, Ruby, Perl, or other languages do a better job at certain things. Don’t let inexperience, lack of resources or language envy get the better of you when working through development problems.

Picking the best tool for the job saves time, money and blisters in real life. The same is true in our virtual world, too.

Brandon Savage is the author of Mastering Object Oriented PHP and Practical Design Patterns in PHP

Posted on 1/13/2009 at 3:45 pm
Categories: Best Practices

There are currently no comments.

« »

Copyright © 2024 by Brandon Savage. All rights reserved.