Right Tool for the Job is a Myth
More often than not we hear the blanket statement — right tool for the job — being thrown in as a final argument in any software development related discussion. It is time we examine this blanket statement, turn it upside down, and shed some light on it.
As is often the case, turns out that using analogies from the non-software world and then stretching them into the software arena doesn’t really work. While it is true that, in the non-virtual world, choosing the right tool is not only important, but also unavoidable (i.e. one cannot cut the wire with any degree of precision by using a hammer), when it comes to building software this dictum tends to be meaningless.
The Only Tool for the Job
When it comes to software, the choices tend to evaporate. While in the physical world it is conceivable that one could use a hammer to cut the wire (although not with the precision one could have when using pliers), in the virtual world of software it is darn hard, if not impossible, to stretch things like that.
For example, when implementing a software system that is going to be distributed across a network of computers, it is pretty darn impossible to choose the right tool for the job — because there is only one tool to use, and that tool is TCP/IP.
Yes, some older dudes could complain that this is not strictly correct, since we do have a choice, namely we could use IBM’s Systems Network Architecture Distribution Services (SNADS) tool. But let’s be realistic for a moment — that tool is so completely useless, that it truly is a moot point. And the apparent choice is in actuality non-existent. No one in their right mind would ever consider using proprietary SNADS instead of publicly vetted TCP/IP.
So the choice of the ‘right tool’ is in reality non-existent.
Same applies to pretty much anything else in software. If one is to use a computing platform to implement some software product, what choices of tools does one have? I’d say there are no choices, because there is only one tool that makes any sense, and that tool is the web. Sure, there appear to be other tools out there, such as the desktop, the mainframe, etc., but all these tools are so useless when compared to the web, that they don’t really qualify for being called a choice.
What choices of tools do we have at our disposal if we wish to implement a relational database? No choices. There is only one tool — SQL (Structured Query Language). So how can anyone then talk about choosing the ‘right tool for the job’ in the light of this fact?
Same goes for other aspects of software development. Like, if we need to implement some business logic, what choice of tools do we have at our disposal? No choice — it is the norm to implement business logic using Object Oriented technology. Anyone digging around for other tools that would allow them to implement business logic is merely barking up the wrong tree.
De Facto Standards Eliminate Choices
So we see that we’re in the strongest position when following the de facto standards. That orientation helps us eliminate choices, and consequently renders the ‘right tool for the job’ dilemma utterly meaningless.
November 18th, 2008 at
Payday loan online.
Payday loan online.
November 21st, 2008 at
Cheap flights to rome.
Cheap airline flights. Cheap flights. Cheap flights to europe. Cheap flights to asia.
November 23rd, 2008 at
Auto insurance online auctions.
Buy auto insurance online. Auto insurance online. Auto gap insurance online. Online auto insurance.
November 25th, 2008 at
Navy college loan repayment program.
College loan corporation.