I have found myself several times having an idea, giving it 5 seconds to think about it and getting VSC running just to freeze in front of the blinking cursor, thinking where I should start this massive application. If you feel familiarized with these feelings, this might help you out.
Baby Steps
First of all, take a deep breath, the idea isn’t going anywhere, so there is no need to rush. Start off by writing the concept down, pencil and paper, this will make it more real, and by writing it down you have free space in your head for what’s coming next.
Follow up with what you can visualize, draw the wireframe, do a basic design of the homepage, figure out where to place just the basic buttons, maybe even write down a fancy animation you can relate to the product.
But Alexis, why are you making us do this?
– probably you right now
Look at that drawing again. Congratulations, now you don’t have to worry about your frontend until later in the blogpost.
Yes, we are basically decomposing this enormous idea into little pieces, and by doing that we can think deeply on each piece one by one.
From now, you can either continue with a little architecture doodle, listing entities or even start scribbling out User Stories, this will not only help for obvious reasons, it will also make you go back to that crooked header and pinpoint something you probably left behind.
Reinforcing your thoughts
At this point you are able to figure out the needs of the application you are going to build, so we can start naming different tools and technologies that will help us through the process. Starting off with the programming languages involved, while it is true that different languages are built and work better in certain projects, preferences are what I recommend going after. You can always learn new technologies on another time, unless thats what you are looking for with this development.
Once our choices have been made, we can proceed with standing up, stretching our arms around, maybe checking out our socials, and whenever we are ready, moving on with the project.
Look back at all we’ve written down, now your idea stands in this piece of paper. It has acquired a physical form, but it is not fixed, as it is written with pencil, it can change.
Brick placing & ribbon cutting
We’ve now arrived at the place you wanted to when you clicked this post, you can start coding. However, every developer starts coding in different ways, some start by drawing a little folder structure and others dump all their wants and needs into a main file, and focus on the structure later on. One way or the other, it is time to become one with the keyboard, feeling like Mozart, you can feel the sound of the keys before even tapping them.
I’m not gonna tell you how you are supposed to write your code down, just let me know when you are ready for the next part.
How long has it been? Have you encountered any big problems in your app? Had to google yourself out of those outdated libraries? Maybe even came up with two or three new ideas on the way? Excellent, are you happy with what you’ve achieved? Great! Moving on time.
Deploy. Something once seemed so far away and it is now just a few clicks down the road. Same process. Write down the steps, where are you deploying? What tools are you going to use? Are those licenses up to date? What happens if your program catches fire on production? Is it hard to hotfix it out? Write down the process of doing that. We don’t want to face that later, might as well figure it out without worries.
Upload, run. Check it, it works.
Yes, your idea is real, do not let that overwhelming feelings get on your head so early on. Sketch it, think it through slowly and it will all fall together like Tetris pieces, once piece at a time.