In the world of web development (or any kind of dev for that matter), there are so many stacks and tools to choose from to accomplish our tasks. But, the paradox of choice can paralyze us. Usually, the choice comes down to:
- What we have experience with already
- If a certain tool/language/stack/whatever is best suited to the task
However, if we're beginners, trying to tackle a brand-new problem, or are simply curious about trying other things out, we can really get bogged down by all the options.
I've reflected on this recently, as I come up with new ideas for apps sometimes, and I wonder how I should go about building them. I usually like to take this opportunity to experiment with other tools without investing too heavily. If I find a bunch of different options that I think might fit my requirements and development style, I try to give them all a chance.
After doing this for a while, I've come up with an interesting formula that has actually sort of worked for me (when I practice it). I call it the "Five-Minute Rule".
How does it work?
Well, I try to install the stack on my computer. While the timer hasn't technically started yet, I do judge on how easy it is to set up. It has to have great documentation and/or a super-easy, streamlined install process that doesn't require me to reconfigure my machine very much.
Once I have it set up, I try to run a typical "hello world" scenario. At this point, my judging criteria is:
- How quickly I could create a working example, however small
- See if I can do something slightly more sophisticated and get the expected result
- Determine if it fits my "philosophy" of how to further build upon this starting point
It's a little nebulous, but my favorite tools over the years have been determined by this method. It really allows me to try a bunch of stacks without investing too much into any one of them.
Here are some examples of great tools I've discovered through this method, and they span disciplines:
One thing all of these tools have in common is that they have great documentation, very easy setup, or both. Also, these are all fully open-source tools, making this exercise much easier. Other factors include:
- Does it "feel good"?
- Attention to detail
- What has been built with it already
So, my advice is to simply try a few technologies that you're trying to decide between, and not commit immediately. If you find one that feels right and you are impressed with it, do some further due diligence to make sure it can meet your future needs. Then, commit to success and start working on your project.