The Right Tool for the Job

Note: This post is ranty. I’m not usually a ranty person. I’m sorry if I offend. I’ve tried hard not to.

So you may have seen this article by @jjperezaguinaga. It pokes fun at all the various tools available in JS land at the moment, suggesting it is a complicated space full of tools that solve problems that people only make for themselves and the landscape is crud. While it’s obviously satire and I get the point, I do believe some people won’t.

Look, there’s nothing wrong with these tools, and to be honest I’m frustrated that it kinda 💩s on the hard work of many people. The thing wrong here was the person was conversing with in the narrative. They missed the whole point of being a good engineer — choosing the right tool for the job.

In the narrative, the person asked:
 “I need to create a page that displays the latest activity from the users, so I just need to get the data from the REST endpoint and display it in some sort of filterable table, and update it if anything changes in the server. I was thinking maybe using jQuery to fetch and display the data?”

Yes. jQuery would have been fine. Just fine. Totally fine. The conversation should have stopped there. The response of “Oh my god no, no one uses jQuery anymore. You should try learning React, it’s 2016.” is downright stupid. This person is choosing what is shiny and new, not the right tool for the job. As the narrative continues, it shows that this just creates more problems than it’s worth.

As a good engineer it is your duty to choose the right tool for the job, not the latest shiny stuff. I’ve worked with code, old and new, shiny and not, right and wrong and I can tell you that getting it wrong totally sucks.

In my honest opinion, you are a terrible engineer if you try to convince your boss to use something new, just because you want to try it out and then brag about it at the next meetup. Instead, you better have researched it, written some implementations and then done performance comparisons, discussed it with your team and then decided on the best tool for your needs. Problem first, tool second. Always.

My guess — you didn’t. You’ve made the selfish move of adding more value to yourself than to your company.

Sure, maybe you’re in a start up and maybe you want to build something kinda complex upfront with the hopes of it paying off with more users, but statistically speaking that won’t happen. Choose the right tool, right now for the job. If you do get that Series A funding you were hoping for, then you can go back and rewrite stuff for performance or whatever. Heck, we did. No skin off our noses.

To sum up here, I repeat my first tweet after reading the article:

What next? Go read The Pragmatic Programmer. It was written 17 years ago and somehow so relevant today. I did very early on in my career and it has helped me almost every day since. Good luck. You can do this.

Be safe, have fun, write some code. Even if it’s not cool. 😎