I see two common approaches at work when it comes to choosing tools.
I have heard about this new shiny cool framework/library/tool, let’s use it!
It might be a good approach when you want to learn something in your spare time, just don’t do this at work.
We have this problem and found a few alternative solutions (frameworks/libraries/tools) that might solve it. We will investigate and see if any of them fit our needs.
Note that depending on your situation, it might be the case when none of the existing tools will be a good fit for your project.
It might be tempting to look at existing solutions in a positive light thinking “our problem is not unique, there are tools solving it already”. The problem might appear to be similar to the problems that these tools solve but remember to look and focus and what’s unique to your circumstances.
You should prove that the points below are wrong. Assume that the tool you are evaluating:
- Does not cover your needs.
- Has crappy/new/unstable code.
- Has no community so getting answers to your questions or help is a nightmare.
- Has none or very costly official support.
- It will have a steep learning curve.
- It will be harder to maintain than any other alternative or your own code.
- You will need to modify the tool and it will be tough.
- Provides so little that it’s not worth another external dependency.
- Will cause lock-in with very high switching costs. (You can affect this one to some degree with your design).
- Has big company behind it which
- had huge investment and only cares about things like ROI and market share and not you, even if they did at some point in the past.
- has more interesting markets than you and optimizes the product for these markets, making it not a good fit for your situation.
- generates hype making it all look rosy even when the product has grave flaws.
- makes it look like everybody uses this tool.
- makes it feel like the next best thing.
- Has a big alliance behind it with many interests of different partners with zero intersection with your interests.
- Most places that use this tool suffer immensely but either don’t talk about it or you don’t hear that for other reasons. Dig deeper to find such information.
Calling some friends and asking them about the tool is very good but note that your situation is different so most of the points listed above still stand.
I guess that when you start positively when evaluating a tool, you might fall into the confirmation bias trap. Beware!