I saw a funny term this week - “Hype Driven Development”, and had a good laugh (*with tears). It reminds me those painful time in my career that decisions were made based on hype but nothing else.
Developers solve their problems by making tools tailored to his/her needs. Therefore there is usually a good pool of tools to choose from. It’s overwhelming to find what suits you, and it’s unavoidable to bias towards what others’ prefer. However, this could potentially create unnecessary bloats to your projects, low-quality code that takes many iterations to become elegant, and very likely you will spend a lot of time focusing on the wrong problem.
Here is what you could consider when starting a new project:
- Is your purpose to learn a new language/framework? if so, skip all these and start learning and building! If not, read on.
- What problem are you solving? What are the “must-have” in your solution?
- What are the tools that would solve the problem, meet these must-haves? Of the list of tools, what do you already know? Limit to 1-2 new things at a time - if you are playing with React.js for the first time, you might want to pick a familiar database to work with.
- Are you under a time constraint?
- Evaluate the ecosystem of the tools you picked - does it have good documentation? does it have lots of examples online and many Stackoverflow questions? When is the codebase last updated? Does it have upcoming breaking release?
Afterall, the most important thing is to focus on the problem, not the stack. The value of your project lies in how well you solve the problem, instead of what languages it’s written in.