The art of building software: February 2011

Wednesday, February 16, 2011

How to create a software startup for $120

Lately I've been running into more people than usual looking for funding to create a software startup as there's a mini dot com bubble going on again in the Bay Area.  I don't think you need much funding in order to create a profitable software startup, so long as you can get software development done for equity.  In this blog posting I'm going to share how I believe you can create your own software startup for about $120, in a way that scales big fast and cost-effectively.
  1. Come up with a good idea for a software service or product people will want to use, even if they don't pay directly for it.  How you do this magical thing is beyond the scope of this blog posting, but this awesome podcast interview with Professor Steve Blank gives quite a bit of information about the process.
  2. Be sure you're ready to be an entrepreneur - do you have enough passion for your quest?  
  3. Be ready to invest time without any corresponding income until you've got income coming in.
  4. Find a key partner or two - partnerships create synergistic effects that allow you to reach well beyond the sum of the individual partners.  But consider it like you're all getting married to each other, so choose well.  If you don't know any partners, post an ad like this one on your web site, and use social networking techniques to help find partners.
  5. Agree on how you and your partners will eventually split the equity of a corporate structure down the road, should things happily evolve to that point.  This could be based on the value of the time each partner invests, but in the end, it's what everyone is comfortable with.
  6. Among the partner skill sets, you should have software development skills as well as sales/marketing skills.  You can add other functions later as you need them.
  7. You'll need a domain - pay $10 to register your domain.  Do some brand identity thinking before you pick your domain name.
  8. Sign up for a free core business software service like Google Apps, where you get 50 free email addresses in your custom domain, scheduling, group chat, docs, public web sites, wikis, and more.  You'll pay some later if you get big or you can move your infrastructure somewhere else if you like.  All the collaborators get accounts, and this scales as you grow.
  9. Meet with your partners in person at the beginning to get on the same page about the product vision.  When not in person, utilize multiple communication modes including chat, video conference, screen sharing, free conference calls, and email - be responsive to all modalities of communication.  All this infrastructure is also free.
  10. Create a wiki and document archive to collaboratively create and document your entire evolving business plan and technology infrastructure.
  11. Hopefully you can file a provisional patent application to protect your new idea and pay the $110 filing fee.  You can do this by yourself, but you should know that if you aren't familiar with the process, it takes a significant investment of time to educate yourself about how to do this well.  It's worth doing if you can, because it can create significant value for investors down the road, and also prevent others from copying your idea.
  12. Do your work on your own equipment anywhere there is a good Internet connection and work space: garage, home, coffee shop, wherever.  You could argue that there is cost in the rent, hardware, network connection, and so on that I am ignoring in my $120 figure, but I'm ignoring that here because you have to pay that cost anyway.  Go ahead and deduct some of that from your taxes now because you can!
  13. Sign up for a free hosted version control system - I like Project Locker.
  14. Also get a defect tracking system, agile project management system, continuous build system, and wiki set up.   There are some free choices out there, and some very low cost alternatives as well.  I'll try to come back to this blog posting and edit this to add some of my favorites in these areas too.  In the mean time, you can search for free versions of those tools, and just pick your favorites.  
  15. In your agile project management system, you and your partners take the vision and break that down into features.  Then work with your developers to turn those features into releases, sprints, and features.
  16. In your IDE, use a tool like Mylyn to connect to your project management system and your continuous build system.  You can use the time tracking feature if you like to get a view of how much time each person is putting in, and what your Agile-style velocity is.  This makes it easier to predict your schedules.  Also download the adapter to connect your IDE to your version control system.  
  17. For server software, consider a free (to get in) cloud-based solution like Google App Engine or Amazon EC2.
  18. If you're developing mobile phone software, use the mobile phone you've got, or get the phone you need (I'm not counting that expense since you'll use it as a personal phone too).  The software development tools you'll need are free.
With all of the above, you've got plenty of software development infrastructure (and a bit of startup culture) to build just about anything you want, for just about no cost, and there's a fairly low tax in terms of the time it takes to set up the infrastructure, as well as the ongoing overhead.  It can easily handle many developers simultaneously developing your product, and it sets up the kind of culture that can scale.  Once you're about to get some revenue coming in, then use that revenue to incorporate and start a real business.  Also, the services that you started using for free will start to cost something as you have real users putting load on the cloud, and you must ensure that your revenue covers those expenses.

What I like about this approach is that it gives you a rich, state of the art business and development infrastructure virtually for free.  All you need is the idea, passion, and time.

Now it's quite likely that cash could accelerate your time to market in various ways.  Perhaps it would allow you to pay yourself a salary so you could spend more time on your startup.  Or you could purchase a library instead of building something yourself.  Or perhaps pay a consultant to do some work.  In any event, the point of this blog posting isn't so much to say that you should only spend $120 on a startup - it's more to set a perspective on the value of funding, whether that funding is coming from yourself or an investor.