The first 5 steps to building your own SaaS application

This post is for non developer founders who want to build a SaaS application.

Software as a Service (SaaS) is a relatively small market – at $19 Billion in total revenues, it seems large, but compared to $250 Billion of the overall software market it seems minuscule. It has grown from nothing to this large number in the last 10 years. Similar to the eCommerce market, which seems large but is less than 15% of overall retail, the opportunities will start to be in the niches is my prediction.

The big question is when and how will it grow and where are the opportunities. While there are many specialist firms focusing on SaaS alone, the incumbent software companies (the largest of who are Microsoft, SAP, Oracle, etc.) are also making their own investments to move their businesses from selling licensed software to services.

One of the key opportunities I see is that ability for smaller, niche markets to be targeted using SaaS. Since the deployment model, time to value and cost are so much lower now than 10 years ago,  it is easy to build a niche product that can gain rapid fan following among the target customers and *if that customer base* does grow and end up having more budget it can be a lucrative market.

I do get the question often about the steps to build a SaaS business. Even if you dont intend to build a Venture funded business, the economics of SaaS are determined by cost of customer acquisition (CAC) and cost of servicing the customer (developing, operating and maintaining the software).

What I am increasingly starting to see is that most prototypes are either built by a developer founder, or outsourced (by a non technical founder) to “prove that the market exists“.

1. The first step I’d recommend before you start development, is to sign up 15-20 beta customers. Target people you know well who will stick through your crappy alpha, beta and version 1, so you can convince them that the value does exist when you iterate quickly.

For early beta customers, there are many techniques you can use including: a) setting up a launch page and promoting that launch page on social media b) setting up a launch page and buying Google adwords to drive signups and following up with signups via email c) blogging about the topic to share what you know about that market d) interviewing influential users before you launch or e) setup an email newsletter of great content for that industry and have many potential users subscribe to that newsletter.

2. The next step is to create an activity model and user flows.

This step is to ensure that you can know exactly what are the top 3 features you need to implement first which will make your product “must have” to solve the problem for your users.

In fact if you can identify the top feature (just one) that people will come back and use everyday, you should be good to go to the next step. Validate the top feature with your beta customer list, so you are building what they will use.

3. The next step is to create a mockup using wireframes. These are typically good to show the screens your user will go through and the experience as well. I would get a lot of feedback on the list of steps and screens before I build the prototype.

Typically in your first pass stick to under 7 screens would be my suggestion. That’s enough for a 45 second to 1 min “demo” and should give your users a feel for what the app will do. If they ask you for “one” feature that matters more to them than the ones you have, dont mock it up yet, but put it on your list until you have enough users interested.

4. Design your database schema. A database schema is good to share with your developers entities that exist in your application and what their relationship are. I tend to use DB Schema or just Freemind to show to fields without the datatypes.

5. Understand and select your “stack”. Even if you want to outsource your application development I’d recommend you talk to a few developer friends who can educate you on the stacks they use – what the front end languages and libraries would be, what the back end language would be and the database options. You will be more confident when you talk to your outsourcing company and also be able to help make tradeoffs when you need them.