Wednesday, August 6, 2014

Why churn is considered a critical parameter to measure the health of a SAAS startup

                                        As we all know SaaS is one of the most talked about and trendy keyword in the Internet Software Domain today. Since the last couple of  years the IT world witnessed many well known desktop solutions and turnkey applications launching there SaaS Versions to get a sweet share of the pie.

The advantage of SaaS are many. With SaaS, a customer can get the customized instance of system up and ready for his business in no time, as the software is already deployed and pre configured. The relatively low cost factor is a prime attraction as well. As the Infrastructure for the SaaS is managed by the Vendor, it can scale beyond hardware limitations of the user to match with his growing business needs.  With all these advantages and many more, there is no wonder businesses and individual opts for the SaaS to get there job done and this opportunity initiated a wave of SaaS based Start ups. 

As it creates more possibilities, the ROI and Revenue model in SaaS also need to be planned carefully. With relatively very low initial  subscription costs, it needs a lot more customers to cover the profit rather than selling the software. It is equally important to make sure that the customers stay with the platform and continue there subscription. Because of so many relative influencing factors like this which adds up uncertainity, it is much more important to validate the revenue model of the platform with parameters more than basic traffic or signups.

'Churn' as a keyword gains significance in this scenario. In basic terms churn  is a measure of attrition or loss. Churn is the ratio of the signed up customers to the customers who cancel  there subscription at the end of the term. If you have 10 customers signed up and 7 renew there  subscription after 1 year the churn will be 30%. As like MRR (Monthly Recurring Revenue), Churn also gives indication about the health of a SaaS Startup and thus catches attention of potential investors as well.  

Though with promotion and marketing the traffic or signups can be proportionally increased, churn cannot be influenced much. Churn will be less if the service is a real value addition  to the customer and helps him to fulfill his requirements and also if the customer 'still have the need'. This makes churn a much more realistic measurement of the revenue model and health of the business and thus helpful while considering long term investment with it. 

Churn however cannot be kept at zero even if the software is really good and best for the business since it depends on external factors like customer's business also. A value around 3% to 5% is considered acceptable by the business standards. However if the churn is in double digits it is a wake up call for the business and immediately needs an action. 
As it is important to keep a steady rate of new customer acquisition, it is equally important to followup with the lost customers. A discussion/communication with the leaving customer can help to identify the reason why he prefers to leave the system. The product enhancement strategy can be slightly altered based on such aggregated customer feedback and if this helps in bringing back the churn to an acceptable level, it is a very strong positive direction.

Negative Churn

Another important way to counter the churn is to increase the negative churn. If churn is the rate of loss, negative churn normally refers to the increase in revenue made to the system to compensate the churn rate. High negative churn is to some extend a positive factor in short term and a boost to the business.

There are multiple ways to increase the negative churn. 

The first method is to upsell or  increase the new subscriptions corresponding to the users leaving. This balances the revenue loss. However disadvantage here is, if the churn is due to a flaw in the business model or functionality model, the new users also can churn which is a double negative when they leave creating an even more revenue loss.

A better and safer option to improve negative churn is by 'Revenue Expansion'. This method is to get more revenue out of existing customers to compensate the revenue loss due to churn.
To clarify this further here is an example. consider a customer signs up to the system with $10 subscription fee. At the 6th month, he may purchase an additional service or upgraded his account with $30. Here even if another basic user leaves after first year it is balanced with the first user paying $20 extra while your loss due to churn is only $10, by expanding his subscription amount. 

This is a much more stable situation for the business and infact a good direction. An upgraded user finds  value in the system and is willing to pay more for additional services and thus might have less chance to leave the system.

To summarize the topic, while planning for a SaaS based  startup, it is important from the entrepreneurs part to give enough thought and planning towards the churn and negative churn factors. Even once the system is in early production syage, a constant monitoring and change management based on these metrics will help in setting the directions right for the business.

Sunday, March 23, 2014

5 points to remember while coding for a startup project

When you plan to code up an application for a start up, the best part is there will be a lot of excitement. What you build may be a trendsetter or a game changer. The thought itself is motivating and elevates the energy level. It opens up a lot of possibilities and a chance to explore and learn new areas.

Well that's the good part of it. And there will be an other side too to it.This assignment can be a lot more challenging than a normal project. Implementing a startup solution needs much more discipline and planning because of factors like time, lack of direction, budget and frequent iterations and pivots.

Here is a summary of my thoughts on the essential guidelines for a developer on a startup project  based on my experience with the technology and application development for startup.


1. Understand the business and primary goals.

This is an important factor on any kind of project. But in the case of startups this is much more important as there is narrow tolerance for mistakes. As a developer, you need to try  and understand the business and purpose of the application very well and the goal it is trying to serve. This helps in  setting priority while working on different components of the app. The data mining algorithm for an analytic tool is much more important than adding bells and whistles in its user profile section.

Also understanding the purpose helps in creating better test scenarios that will help in critical validation of the project.


2. Plan for quick releases and agile development.

There will be a conventional SDLC model with every organisation. The development team also will always tend to stick with it as it keeps them in there comfort zone. But a start up application demands much more agility. There will be an MVP stage mostly before the entire project completion and there will be many subsequent release cycles before the development is complete.  Some areas need to be re-coded and the UI's need to be redone based on beta customer feedback. Sometimes a total new functionality need to be implemented in a matter of days.This might not be an ideal scenario for a developer.

Well, there is no point in complaining about it.Accept it. Agility is part and parcel of startup projects. Only possible solution is to plan it as much as you can. Keep hooks in the code for change.  Keep a stand by resource in backup to manage the need to slog and be ready to scrap a portion of your hard worked module if the business side demands so.


3. Minimize experiments with the language.

Consider that you are an expert in LAMP or ROR and you are planning to expand your skill in NodeJS ( as it is the hot keyword among web developer community now). Your plan in most cases will be to code a portion of the next project if not all in Node. Considering the capabilities of node, it might not be a bad decision as well. But if the next project happen to be an advanced startup application my suggestion is to save your plans for next project after this and select the LAMP stack, in which you are a rockstar, for this project. The new language reduces your speed and efficiency as there is a learning curve. There is chance to make mistakes in method and implementation as you are still a beginner with the new technology. Both these factors may turn out to be critical blows for the project which cannot afford many. 


4. Code less but clean and reuse more.

The MVP' s are not meant to be complete functionally. Beta releases can afford a few unfinished areas if primary flow is working. The critical factor is time and cost vs effort. So for startup projects it is always important to identify key areas and spend effort based on this. You can keep stubs for some logics which can be coded up later. The optimized logic for handling a lakh concurrent  users  can be implemented later once the user base increases, if it takes a lot of time and effort. Think what need to be done in later stages and leave hooks for it and proceed.

 At the same time it is important to keep the code clean, manageable, reusable and structured. There may be a lot of change in subsequent phases which will be a pain to accommodate if the code base is too rigid. If there is enough generalization in the core entities and logics, new features can be inserted in like a knife in butter. 


5. Keep the system light and flexible.

Implement the minimum essential logics in the early stages while on startup projects. Expect pivots in requirements and plan accordingly. Those areas which are not functionally scoped out completely or has a higher chance for modification can be kept at the back of the priority queue or can be done in a minimal way avoiding fine tuning and optimization. 

Well, these are only few of the considerations. There can be much more. If you have a few suggestions share it too.

Monday, March 3, 2014

Why a startup should target a Minimum Viable Product ( MVP) First

The driving factor behind a startup in most cases will be a  great idea (well..good idea if not great), a solution for a gap existing in the targeted domain. An idea which will be shaped into a product. But all good products/ideas might not take off. There is a key factor called user adoption which determines your success chances. You need to caliberate your product to improve its user adoption chances. What's the best way? Any guess... Well getting feedback from your pilot customers iteratively is a good way.
It is always better to start engaging the customers early and validate your product with them.
If you agree with me so far, spend some more time to understand the keyword MVP.
 A Minimum Viable Product ( MVP)  is a practice by which a startup can reach there pilot customers with the core of your new product  developed with minimum effort (cost/resource) and in a very short time instead of complete solution in one shot. The product can be validated with its real users by this way and evolved further with the customers feedback iteratively.
Suppose the product that you are planning to implement needs $10000 to be spent in development and other related stuff to be completely ready for your customers. Till you hit the customers all you have mostly is a prediction based on your market study about what the customer want and how he wants it. There is always a chance that the product still has flaws which might repel a major percentage of the targeted customers. And you might need a much larger time span to get this product finished for the customer. It is painful, if you realize that you need to pivot for user acceptance, at a later stage after investing a lot of time and money.
 An MVP can save your valuable time and money here and yet helps to minimize customer rejection. Identify your pilot customers and identify what is the minimal core feature of the product that you can give to them for a review. It can be a mock up or a video or few basic use cases and a lot of detail about what you are planning to do. It might need only $500 or $1000 to get an MVP ready and may be a few weeks and you are ready to go live to your pilot customers for validation and feedback.
The customers can give you feedback about what they liked , what they think need to be changed, what more they want and how much they are willing to pay for the service. You can build your product iteratively further with the early customers giving valuable inputs. Some of them can become product evangelists who can seriously contribute in giving direction to the product. 
You can attract investors who can help you with the funding much needed to take your startup to the next level. Also you can attract good talents to work for your startup which is otherwise difficult. And the best thing is if a majority of the early customers think that the idea is not worth putting money on, you can think of pivoting with $9500 still in hand.
Your MVP will not be the final product but the core basic part of it which you can create quickly for your early customers. The early adopters are tolerant to problems and missing functionality and they can give you valuable feedback which can be used as the direction to drive your further evolution of the product. 
MVP is a very effective business strategy.You can consider it as a communication channel rather than the product. As it helps the product evolution in an agile way with customer involvement, it ensures higher market adoption and increases success chance.
So if you are an enterprenuer at your initial steps plan for an mvp rather than an enterprise solution as your first target.

Tuesday, February 25, 2014

Why a developer should learn the basics of Usability

Few days back i got a chance to talk to a web developer with around 4 years of experiance, in an interview. He had many ecommerce applications and reservation systems adding value to his profile. The technical discussion was good and i bet for him. He is a good coder.
For my query about the targeted users for the apps, that he develop, the answer was quick and confident. The one who pays money to develop it, the client.
When i asked him what he does normally to ensure usability of his application he stared at me for couple of seconds and shot back. What do you exactly mean by usability? After 5 minutes and a basic summary from my side on what i meant with a simple example  he seems relaxed and replied. Well,we use ajax to avoid page loads for usability. Might be my mistake with the summary.
But this happens if you talk to a lot of developers, atleast from the subcontinent. They are good in coding, problem solving and slogging. They are able to solve most of the challenges technically and cost effectively but many a times never bothers about the business side of the application. They hardly cares about who uses the application, what they intend to do with it, what is the end users socio economic background and how much desire and need they have in using the app.
They solves the problem, gets the requirement done, and most probably will create a  secure scalable system in the process.
But the hard truth is, if the system is not giving due  consideration to the end user, his purpose and his persona, there is a high chance that it will end up as a failure.
USABILITY is the golden key that opens the magic door of user acceptance for your system. If the system is voted as usable by majority of its users, it passes the first and major hurdle and rest of the problems can be addressed with time planning and resource.
Developers are normally used with the complex user interfaces of control panels and IDE that they use everyday. So when he designs an interface  the natural tendency is to create another cockpit flooded with hooks buttons and gears. They love it. I love it. It gives many options which is what we want always while we build something.
But this is not OK for a non technical person. He needs something less confusing. A system that guides him well and throws less surprises in his path to get the job done with no mistakes.
So if you are a techy with a profile fitting to the one mentioned above, next time when you plan to learn something new, put usability in the top of the list.
It is all about understanding the end user (his persona), his need, and his way of getting the job done and develop your system based on it. It is as important as your expertize in java or python and this is a skill that you will not loose over time even if you don't practise.

Sunday, February 23, 2014

An Informal First Note

And here it goes, Finally..! The first post on my tech blog.
Since several months i was planning to start this, a blog about the latest trends in technology which redefines the benchmarks, tech startups that spices up the industry and everything interesting in the tech world where i belong. As a persistent follower of tech related stuff, it is difficult to stop thinking and talking about it and unfortunately the social circle around me, my friends and family,  is least bothered about it :(. For them it is an insane and boring stuff.
With a couple of years of blogging experience ( mostly short personal notes, nothing big ) during my bachelor days in Bangalore, i always knew this is a better option.Write it and leave it for anyone who is interested. The problem will be lazyness. It is much easy to read and go than think and compose posts. Well, i hope, this time i will be able to keep focus and manage some time for this.