Delusions of Grandeur & Flights of Ideas:
Thoughts on Launching the New New Thing
How to Launch a Startup
The working title for this blog post was “How To Launch a Startup,” but that didn’t seem edgy enough for me. Startups, after all, are edgy. Because business is boring, but chasing the New New Thing is exciting — High Risk, High Reward. So this is the story of how I drained my IRA and pumped it all into a newly formed Delaware C Corporation. And yes, you too can bet all your chips on the wild world of startups. Here’s how:
Step One: Learn to Program
That’s right, the first step towards launching a startup is learning to program. Sure, there’s all sorts of nonsense floating around in cyber space about “How to Find a Technical Co-Founder” and whatnot, but it’s all bullshit. Steve Huffman probably didn’t need Alexis Ohanian to launch Reddit.com, and Emmett Shear probably didn’t need Justin Kan and Michael Siebel to launch Kiko, Justin.tv, and Twitch. For every Alexis Ohanian, there’s a Winklevoss twin (booted from facebook), or a Reggie Brown (booted from SnapChat). Hell, Bobby Murphy, the programmer who developed the first version of SnapChat, probably didn’t need Evan Spiegel (Snap Inc.’s CEO) either.
Four years ago I didn’t know shit about programming. But then I started hearing all this stuff about “learning to code.” The marketing from code.org, Codeacademy, and the various coding bootcamps really resonated with me. But the “learn to code” initiative that caught my attention the most came from the Raspberry Pi Foundation; they were selling these $35 computers to encourage little kids to start programming in order to land the high paying developer jobs of the future. As an underemployed millennial college graduate with a worthless degree in psychology I thought: The hell with these little kids! I can learn to program faster than they can. And that’s how I got started learning to program. I just needed a little kick in the ass. So if you don’t already know how to program, I hope this blog post serves as your kick in the ass to get started.
Step Two: Inspiration
The next step towards launching a startup is inspiration. Startup guru Paul Graham has written a lot about this. He says that you need to train yourself to identify problems in the world that can be solved with software, and then develop applications to solve those problems. His advice is solid. I know after reading his essay, How to Get Startup Ideas, ideas started coming to me much more naturally. However, I think there’s more to it than that.
Some people are born to have startup ideas. Some people are born to have lots of ideas in general. Psychologists refer to the the personality trait associated with having lots of ideas, and spending a great deal of time thinking about ideas, as “openness to experience”. If you happen to find yourself here on Medium reading this blog post, you likely score high on the personality trait openness to experience. Why else would you be here gobbling up ideas? There are likely a lot of people low in openness over on Twitter by now, but those people definitely haven’t made it over to Medium yet, and probably never will.
Step Three: Prototyping
After inspiration strikes, you need to start prototyping right away. The magic all starts here — turning nothing into something. This is what creativity is all about. Lots of people have ideas, but what sets creative people apart from “idea guys” is the ability to take an idea from ones head, and make it a reality. And that’s the beautiful thing about software, it doesn’t cost anything for you to be creative! Sure, there may be some negligible costs involved, such as a $5 DigitalOcean droplet or something, but for the most part the cost to create a prototype for your software startup is close to $0.
Your prototype should only have the absolute minimum functionality required to prove your concept. It should be so bare bones and unpolished that you’re the only person that could actually use it. It shouldn’t be something that you would expect another person to ever use. For example, none of the web application prototypes I’ve developed for personal projects and failed startup endeavors have featured any sort of styling or CSS. With a prototype, you’re just trying to create the simplest possible thing capable of accomplishing a task.
Step Four: MVP (Minimum Viable Product)
This is where the MVP comes in. After developing your prototype, ask yourself what are the minimum amount of features that I need to add to my prototype so that someone other than myself could find it useful? For me, this usually includes adding some styling (CSS) and maybe two or three minimal features, and that’s it. For most of my projects I’ve been able to whip up an MVP in somewhere between one and three months. I would say that you probably don’t want to spend more than three months on an MVP, because there’s a great chance that whatever you create will end up being something no one wants. You definitely don’t want to waste a year of your life building something no one wants. So stick to the three month rule. Following a three month rule of thumb will allow you to create and launch multiple products a year if your idea happens to fail, which it probably will!
Common wisdom says that after developing your MVP you should launch immediately. But I think it’s a good idea to try using the product you’ve built yourself before launching. This is commonly referred to as “dog fooding,” or “eating your own dog food.” So definitely make sure to go and eat your own dog food. I know with my current project, I noticed all sorts of annoying things with my MVP that I knew needed fixing before I could release it to the public. It only took me a week or so to fix those things and then I was back on track.
Step Five: Launch!
Once you have an MVP that you enjoy using, it’s time to launch! Now this is scary as shit. Up until this point everything has been fun, and you’ve gotten to enjoy lots of fantasizing about how wonderful your product is and how everyone is going to love it and praise you for it. But after you launch, that’s all going to end. The truth is, your friends and family aren’t going to give a shit and you’ll likely only receive negative feedback from the public. I know with my current project I couldn’t get any of my friends to use my product. But that’s okay. Because your friends probably aren’t early-adopter-types anyway. While feedback from friends is valuable if you can get it, there are millions of other people out there in the world that will be willing to take a look at your product or service. The only catch is, you will have to invest in some marketing to reach those people (This is where draining your IRA comes in).
Prior to launching my current project, I had experience using Google AdWords to reach potential users and knew that going that route would end up costing somewhere in the $2.50 to $5.00 per click range. This is an extremely expensive route to go down if you’re building a product or service that isn’t selling anything yet. So if you’re building a consumer product that you plan on giving away for free, I highly encourage you to avoid AdWords.
The traction channel that I’ve found to be most cost effective is Reddit. For my most recent launch campaign my Reddit ads ended up costing only $0.28 per click, not bad in my opinion. For my product launch I spent $148.66 for 184,900 ad impressions which resulted in 535 clicks. Of those 535 people that clicked on my ad, I was able to get 116 to engage with my web application. Now out of those 116 people, 18 seemed to be engaged enough that you could call them an actual “user.” So I’ve discovered that my startup can essentially purchase users for the sake of product testing for under $10 a pop. That’s certainly preferable to me than begging friends and family.
Step Six: Measure
One problem that I ran into initially with my product launch is that I forgot to write any analytics code prior to launching. After the first day of my ad campaign over 100 people had clicked on my ad, but I had no idea if anyone had actually engaged with the product. For all I knew everyone just hit the back button after visiting my site! I assumed incorrectly that people would leave comments in the comment section of my Reddit ad, and that I could use this for user feedback. But this wasn’t the case. No one left any comments. So after suspending my ad campaign, I spent a day or so writing some analytics code and then simply resumed my ad campaign. And to my amazement, people were actually engaging with my product! This amazed me because my previous startup idea was a complete dud, and saw zero engagement at all. So this was a miracle as far as I was concerned. When I was able to see that I had at least one user by looking at my analytics dashboard I actually let out a war cry!
But unfortunately, the analytics code that I wrote was sort of shitty, and doesn’t track people over time. So that’s what I’m working on now. I’m developing some better analytics code so that I can not only track user engagement, I can track retention. Right now I know whether or not people are visiting and engaging with my site, but I have no idea whether people are coming back. So if there’s any take away you can learn from my mistakes, make sure you write adequate analytics code prior to launching, or just use mixpanel, so that you aren’t flying blind.
Step Seven: Iterate
And that’s pretty much it. Learn to program. Get inspired. Prototype. Develop an MVP. Eat your own dog food. Launch! Measure. Repeat. I’m on the “repeat” stage now myself. My plan is to make some refinements to my web application, beef up my analytics, and re-launch again within the next month. If everything goes as planned, I’ll spend the next 1000 days iterating and relaunching over and over again in pursuit of the elusive product market fit. I know that I’ll probably fail. That’s why I haven’t really mentioned too much about what I’m working on in this blog post. With some of my past startup endeavors I think I probably gave up a little bit too easily. I know Sam Altman has mentioned on his blog that he thinks would-be entrepreneurs often give up too early. So I’m committing to working on this for at least the next year, if not the next 1000 days. The name of the game seems to be analytics. I know from my initial launch that I was able to detect at least some level of engagement in my users. So now the question is, can I find ways to increase engagement and retention? At this stage my startup is like a tiny embryo, so small it can only be detected with a pregnancy test. And that’s what analytics are for. Analytics are to startups as pregnancy tests are to mothers. It’s the only way you can tell whether you have something, or you don’t.