Those four short words work like razors, cutting through our aspirations, to shred the visions we had in mind. I’ve heard this phrase from every single developer I’ve worked with.
Me: “But there has to be a way”.
Dev: “I’ve looked into it and [insert super important key feature] is not possible to achieve with [insert the main app/API you are relying on]”.
Me (to self): “Well, shit.. what now?”
Now is when the true work begins.
This is by far my favorite part of what I do and why I love what I do.
Let’s hit the whiteboard (don’t have one? grab some paper). We need to visualize this whole thing. Start by drawing out all of the components/features that make up your super important key feature and everything else that it needs to connect with. Now draw the process – what happens first, second, and so forth. At this point you should have a jumbled mess – that’s ok.
Take a step back.. Now look at it and go through the whole process from start to finish. The process that you just drew does not work.
Now ask yourself: What can be adjusted to still produce the desired result?
Take your time, dig deep, talk to yourself, scratch your head, walk in circles – whatever you need to do to start erasing and replacing until you have a complete vision of how the process should work and which parts can potentially be swapped out for something else.
You’ll probably need to consider options/tools/workarounds that you’ve never tried before. When you get to this point step down from the whiteboard clouds and get into the research trenches. This is where your ideas are truly built. We have the world’s most powerful tool, an all-knowing fortune teller with every possible opinion and thought, at our fingertips – the internet. LET’S USE IT.
You need to ask the right question to get to the answer that you seek. Formulating the right search phrase can be challenging, so let’s start with what we know and work from there.
Write out your issue, using only the important words (remove filler words like in, the, with, etc). The goal is to find documentation and forum threads that contain all of those words.
You can quickly scan through the search results by looking at the title (duh), the bolded words in each of the descriptions, and checking for the “missing: [word]” under the description.
Find a result that contains all of your search words and open it in a new tab. Do not go to that tab yet, instead continue checking the search results and opening promising links in new tabs.
Once you have a few promising leads, go to the tab that seemed to correlate most to your question and dive in.
If it’s a forum, you will need to take the time to read the question that is asked in the thread and if it relates to your issue, bingo. If not, move on to the next tab. I see so many people get intimidated by the heavy content on forums that they immediately close out of them. Don’t be that person. The answer that you seek could have otherwise been missed.
If it’s documentation, command + F (Mac) or crtl + F (PC) is your best friend. This opens the page search tool, allowing you to search the keyword(s) that you are looking for. If you are searching on mobile, you’re not out of the loop, the Chrome and Safari mobile browsers also have this option (I’ll leave it to you to search how to use it). Now instead of looking for a needle in a haystack, you’re using a super magnet to find every sentence in which the word is used. Read the sentences around the word to see if it is relevant to your question. If not, move on to the next instance of that word in the documentation. Checked them all and still nothing? Next tab.
You will probably need to return to the search results and even click on the forbidden 2nd and 3rd pages of Google search. As you continue to open and search the tabs, look for clues that can help you adjust your question and return better results that are directed to your exact issue.
The goal is to get closer to a full vision of the possible substitutions you can make and options that you have to achieve your vision. The information may come in pieces.. Luckily, you already have a diagram (that jumbled mess you drew earlier) to refer back to and plug in the new options.
You’ll find that there are plenty of ways to achieve your vision, it just may need to be done differently than you had planned or even differently than anyone has done before – which is awesome, because what’s more rewarding than creating something new while proving someone wrong (especially when that someone is yourself). The difference between “It can’t be done” and “It can be done” is audacity, creativity, and grit. If you choose to not accept failure, dream a little, and get into the trenches, you will win.