Choosing between Frameworks & Tools
New tools, frameworks and libraries pop up all the time (especially true in javascript), so how do you assess whether they are the right fit for your project or organisation?
To assist with the task of assessing, I ask myself the following questions (replace [x] with the tool/framework/library you are assessing):
- Why does [x] exist?
- What problem is [x] trying to solve?
- What can [x] do better than what we currently have?
- How does [x] integrate into our current process? Is it a seamless switch?
- Does [x] have developer support and sufficient documentation? (You can usually find these out from Stack Overflow or Github)
- If [x] is not free, are there free/open source alternatives? Are the costs worth the features? What is the licensing model like?
Of course there are many more questions to ask and it really depends on what [x] is and the problems it is trying to solve. Some areas to think about include:
- Performance;
- Scalability and Concurrency;
- Security;
- Dev activity (is it being actively maintained);
- IDE support;
I did not put ‘learning curve’ in here because personally I think that if [x] is useful and tick all the right boxes then learning it would be worthwhile and it should be the least of your worries. Having said that, learning curve could put much more weight in your assessment when you have two or more close contenders and/or your team size is fairly large.
If you can not answer these questions above, then you probably wont need it (for now). Either note it down to reassess in the future or move on and save yourself some time.
I would love to hear what you think and if you think I have missed something please do let me know!