When given a project or task you don’t know how to solve, you must research and find possible solutions to estimate the required effort. In this post, I will explain how I research before I start developing.
Hypothetical problem
Let’s say you have to estimate a project where a few things are out of your comfort zone. You are still confident that you can execute the project. You just need to explore possible solutions so you can estimate them. Here’s how I do it (not necessarily in this order).
Phase 1: Searching
Search engines
When searching on search engines, I usually try a few different terms, depending on what I want to find. At first, I tried to find articles and tutorials related to the topic. Search results don’t have to be the perfect answer to my problem. I’m just looking for something that might fit my problem. What I’m after is inspiration, something good enough to start with.
As an advanced search engine user, I am usually good at finding what I need, but that is only sometimes the case. Sometimes the solution is outdated. Sometimes the solution doesn’t have good browser support. Sometimes the solution has accessibility issues. In this case, I turn to some of my favorite websites.
Websites
My favorite websites for researching are:
- MDN, and
- StackOverflow.
I use MDN when I know what technology or feature, in particular, I’m going to use. I am pretty familiar with its navigation and structure, and I generally enjoy using it. Its content is up-to-date, with clear language that I can easily comprehend.
StackOverflow is still on my research list. There are plenty of answers that are still relevant. I use it mostly to overcome some JavaScript challenges.
When dealing with specific platforms or frameworks like Netlify, Shopify, Hugo, or Eleventy, I find most answers on their community or official support pages. I always try to find out if someone already asked a specific question before posting my own. These communities are very friendly, answers usually come quickly, and their support teams respond promptly.
There are some other websites that I occasionally use. Here are honorable mentions:
- GitHub
- CodePen
- The Practical Dev
- Codrops
- CanIUse
Social platforms
Sometimes I do my research on social platforms like Twitter and Mastodon. The search feature on both platforms could be more usable, but it helps if you know which person posted the solution. With a bit of scrolling and browsing, I usually find what I searched for.
Newsletters
Occasionally, I search my email to find something related to the topic. Sometimes it is my newsletter, UI Dev Newsletter, and sometimes it is other newsletters that give me what I want. That is why I am still subscribed to several newsletters, although I consume most of the web dev content via Twitter or Mastodon.
Phase 2: testing
Once I have all the material to solve my problem, I need to try it out to see how it works. Usually, I recreate the solution in the static environment using fundamental technologies - HTML, CSS, and JavaScript. I avoid spending too much time on demos. Instead, I try to figure out the core of the problem or solution.
At this point, I usually finish my research. I communicate to the client (or the team) which solution or solutions we could use, the advantages or disadvantages, and how much time (or money) it will take.
Conclusion
Nobody knows everything, and some things need time to plan and explore. I learned that saying “I don’t know” is perfectly fine as long as it is followed by “but I’ll take a look at what’s possible.” Search engines, developer communities, social platforms, and newsletters are valuable sources of information that could save you time and help estimate project requirements more accurately.