JUST DO IT. Applying Nike’s slogan to building a new product

A little while ago I started working with a brand new startup as the developer/lead/architect/admin and was tasked with converting the founder’s idea into a new product that is going to change the world (simple right?)

It sounded really exciting but also nerve-racking coupled with self doubt of whether I can do it or not. But since I love taking risks and absolutely enjoy taking on bigger and bigger challenges I thought what’s the worst that can happen. To be fair, I had built at least 2 software products from scratch in the past and so had some experience. Actually that is the reason the founder hired me as I had worked with him in the past and he thought I can help him build this product.

First few days were really cool as we went through the ideation process where we did some absolutely cool exercises like Elevator pitch, Golden path, etc. to solidify what we were going to build and the feature set for MVP. So I dived in straight from the next day and stared at my first blank canvas:

Technology stack…..

I had to pick the technology that I’m going to use to build this cool new product (the one that is going to change the world, remember?). It seemed simple that once you know what you are going to build you just pick the technology that works best and go forward, right? you cannot be more wrong. When I started looking at different options it seemed like there are infinite possibilities for each layer that I wanted to build. I was building a web based application and so had 3 layers: client side, Server side and Database. I had to pick a technology for each layer, so I started doing my research and like normal people I started with a single browser window of Google. Beginning with a few keywords I started opening up links in new tabs so I can read them one by one. Reading these links gave me more keywords to google and thereby more links to open in a new tab. After some time (I think about 10–15 mins) I had so many tabs that my browser window looked like this

So I decided that I’ll open new tabs in a new browser window and after a few more windows that all looked like the image above I got overwhelmed and started doubting my abilities to get through all this and make a sound decision. It seems like there is so much information on the internet that there is no way you can go through all of it and pick the best option. So I took a break from opening new tabs, read the information as much as I could and started closing them (even if I had more keywords to look for). So a few days later of opening a lot more tabs and closing a few I had read a lot about all these technologies but still had a lot more questions that I needed to research on and was nowhere close to a decision. As I was doing more and more research it was becoming harder for me to make a decision without knowing all the pros and cons of EVERYTHING available out there. What if I pick X and then run into an issue that I wouldn’t have run into if I had picked Y? or what if I picked A for the database and B for server side but then figure out that both A and B don’t work well together? Would I be able to find good developers for these technologies if the product took off? Would I be able to build the first version on time using them and won’t get stuck. Being a developer for the past 10–15 yrs all the issues I ever got stuck on came back to haunt me.

After making no headway in my decision making process and with so much more left to do and wasting the company’s precious time (and increasing my self doubt that if I cannot pick a stack how will I manage other tasks of building a product and managing a team?) I decide to heed Nike’s slogan of Just Do It and jump right in. I took a break from Google and closed all the tabs, went through all the information I had collected in my head and combined that with what we needed. Looking at the requirements I came up with a criteria and then quickly evaluated all the technologies I had learned about and the ones I had used in the past. Based on my research and mostly on my instincts I picked a technology for each layer and decided to start writing my first line of code. I felt great (and relieved!) as I finally came to a decision and after only a few days I’ve conquered my first challenge and ready to move on. My fingers were crossed but I was really looking forward to start my first line of code. But before I could do that

I had to pick an IDE…..

and a Source Control…..

and a cloud provider……

an issue tracking system…..

QA and testing…..

build and deployment…..

Let me know your thoughts by taking this quick 34-second Qrvey (quick survey)