I decided it would be a good idea to occasionally post a status update of our startup on our blog. I plan on listing which of the many steps involved in launching a startup we have completed, and some tips on the ones that warrant it.
My reasons are two-fold. The first reason is that I hope once our product launches and it is a huge success and I am super rich and spend my days racing yachts, someone who wants to launch their own startup can use these as a step-by-step roadmap on what to do. The second reason is that I think it will be good for me to take the time to think about all the things we’ve accomplished since the last update. This may be a moral booster if I see that we have done a lot, or help me realize we are slacking if we have not.
What Have We Done?
- Idea. The first thing was an idea about how I can provide web security better than everyone else. This idea has not been released publicly, so there isn’t much more I can say about that right now.
- Research. The next thing I did was research on how I could implement it, and to decide if it was feasible that I could turn it into a profitable business.
- Development Setup. I needed a development environment before I could create anything. I bought a computer and installed a subversion server for version control and TRAC for issue management. If you are developing any serious software, you NEED version control and issue management software. It is well worth the time.
- Prototype. The next thing I did was to start building a working prototype, or a proof of concept. This took quite a while, in which time I was also working other items in this list.
- Business Planning. First I knew that I would not have time to build the product, and run the business. I enlisted Zuly, my then girlfriend – now fiancee, to fill this role. Neither of us had run a business before, but we knew we could figure it out. We came up with a name for the business, snatched up the URL, made a business plan, etc. As I worked on the product, Zuly learned how to do the business side stuff (accounting, legal, etc).
- Evaluation. At this point I had a working prototype, but when I finally looked at the stats, I realized the product would not be able to scale. This prototype had taken most of a year to get where it was, and then I found out it wouldn’t work. I thought it was all over at this point. But I refused to give up. I did more research to find a more efficient technology, and found one. I decided to swap out the old inefficient technology for the new hotness.
- Persist. This new technology was another open source library that did the same thing as the old version, but it did so, much more efficiently. However, the way this library was written was nowhere near how I needed it to work. I spent months tinkering and reading through hundreds of files of source code to try and fix it. Every time I fixed an issue, I discovered 2 more that had to be fixed. After an entire year of this, I had my proof of concept functioning as it did before the technology swap, but now it was an order of magnitude more efficient.
- Improvement. I added more and more features, eventually turning it into more of a product than a proof-of-concept.
- More Research. As I implemented features, I tried to keep thinking a few moves ahead. I had a plan on what I would do next, and what after that. So in my down time, I would do some reading to make sure my plans on how to do those next steps would actually work, or if there was a better way.
- Business Setup. At this point, we decided it was a good bet that we can make this work. We each took some of our own money, officially registered the business, and set up a bank account.
- Website. We transferred ownership of the business domain name to the business, and bought hosting to set up this web page. We got something decent setup, and gradually improved it over time. We are still doing this.
- Networking. We started blogging, using Facebook, Twitter, and others to start making a name for ourselves online. This is a never ending step.
- Branding. We have a name for the product, but we need to grab its domain name before we make it public.
- Deployment and Beta-testing. We are now to the point where we need to start buying server capacity so other people can play with the product and give us feedback. We will use this feedback to make improvements until we feel the product is refined enough to begin charging for it.
Have I forgotten anything? If you see something missing that I should have done by now, please let me know. Or if you have any questions/suggestions, don’t hesitate to comment.