Sunday, March 11, 2018

In Depth App-to-Market: The Business of Risk


Description: Your life isn't like the movies. In the real world even the best ideas can fail spectacularly if the risks aren't managed. It's time we talk about risk and what it can mean for success or failure of your app.  
Remember that scene in Risky Business where Tom Cruise stays upright as he slides across the floor in socks and tighty-whities, lip-syncing Bob Seger? In the alternative universe, sometimes he slips and falls. Some startups will slide through and succeed, and others might just land with a thud. That's real life.
Whether you're a developer taking your first step or a seasoned veteran of dozens of startups: Taking your idea from app to market is risky business. That's the subject of this ongoing series: How technologists take on risk in their startups and how risk affects your business.

What is Risk?

Risk is a term that gets thrown around a lot, but what does this mean?  The general definition of risk is the potential to lose something that has value, or to have a decrease in the value of something. 
Discussions of risk tend to be very subjective.  What is risk to one person, might not be considered risk to someone else.  I have also seen risk defined as anything associated with an unknown – it was a popular way of defining it when I worked at The Coca-Cola Company in Atlanta.  In fact, TCCC would pay extra just to remove risk.  I saw many things that were about the elimination of any risk no matter how small.“It’s not real money, it’s Coca-Cola money, so we should do this," is how my boss there would justify it. "It eliminates risk.” 
That's the thing: Completely eliminating risk can be very expensive. If you are at a large company and have money that is not yours, that may be okay.  But most startups don't have the resources of a large company like TCCC, and we definitely don’t have the money to completely eliminate risk. There is typically a tradeoff with risk of money and/or value. Taking the appropriate risks can result in the creation of value or at least some type of savings.  Startups can easily create value, as well as cost saving, by knowing when to take risks.  Let’s look at several types of risk that are commonly found in startups/business.

Angels and Venture Capitalists

The world of angels and VCs tends to be filled with risk.  Look at most of the financial news and you'll see lots of angels and VCs  making a lot of investments, but very few get reported on as being successes.  Why would anyone want to get into that world?  It just makes no sense.  However, by managing that risk, success can be found.  Let’s look at these investments by the numbers:
Let’s start with the assumption that the angel/VC is not a fool and does not just throw their money away in bad investments.  Assume that the angel/VC can get a 10 percent success rate.  Ten percent of the investments rest in a successful company, and 10 percent of their investments will lead to a successful exit.  That means that a single investment is unsuccessful 90 percent of the time.
To keep the numbers simple, let’s assume that the angel/VC makes 10 investments.  This means that .9010 is the probability of complete failure.  This equates to roughly 34.8 percent, and so this means that there is a roughly 35 percent chance that nothing will be successful.  This is a worst-case scenario.  And guess what? It is a bit worse than it appears.  For a technology startup, the results are typically either win big or get nothing.  Any software that is written is not typically salvageable.  This is different from something like a real estate investment where if the investment does not work out, there is typically some land or a building that can be worked with. 
From a mathematical standpoint, the surest way to success is to continually invest in companies.  Each investment will knock down the probability of total failure.  This goes along with the view in the investing world that the surest way to success is deal flow.  The more investments that an angel/VC makes, the higher the probability there will be some number of paybacks.  Increasing the number of their investments reduces their risk and tends to increase their income.  From the standpoint of math, this makes sense.  When it is your money, it is a different scenario, and you can be a bit gun shy to continually toss money into what looks to be a losing set of investments.
Let’s assume that an angel/VC is making 10 investments of $50,000 each.  This means that there has been a total investment of $500,000.
Investments tend to have a return distribution where one out of 10 is a great return.  A great return for an early-stage investment would be something like a 40x return.  A couple of them are good investments that return three times the investment, and the rest are dogs that return nothing, like this:
$50k x 40 = $2 million return
$50k x 3 x 2 = $300k return
A total return of $2.3 million
The numbers can change depending on the situation.  For example, if there is only a one-in-20 chance of making a great return, then the projected return would be $1.3 million.
In looking at the numbers, the only thing that really matters are the big winners.  The small wins just don’t matter that much.  This is the reason why angels/VCs chase what are called "unicorns."  The big returns (unicorns) make an investment fund work.  This is one of the counterintuitive things about investments.  Good wins, where you return 2x, don’t tend to matter.  For the VC system to work, you have to have big wins.
Over the course of a VC fund, it is looking to make multiple investments in a company  If a series A was made by a fund on day 1, then several years later, it is looking to make a follow on investment.  If a VC doesn’t make a follow on investment, that tends to look bad to other potential investors.  The VC will need to keep some money in the fund for those follow on investments.
So, let’s analyze this series of investments.  These returns sound great until the time value of money is factored into this.  With the time value of money, a dollar today tends to be worth less than a dollar tomorrow.  This is due to inflation and the fact that there are other investments out there. 
Angels and early stage VCs tend to have a long time from investment to a return.  As of late 2015, the time frame for a payback can be as much as 8-to-10 years.  Assuming that there is an average 10-year timeframe to get money back, it depends on the options if this is a good investment or not.  Assuming a 7 percent return in a relatively safe investment vehicle, an investment of $500,000 would become $983,000 over the same timeframe.  The investment roughly doubles, the money is much more available, and the investment tends to be safer. 
If there is a big winner out there, an angel/VC can be a big winner.  If there are no big home runs in the investment portfolio, the fund will be a loser.  Remember at the beginning, there is a 35 percent chance of having no return in a series of ten investments. 
So, which makes more sense for an investor?  High tech investors will understand these probabilities.  However, I have watched investors -- who did not understand technology investments -- put $25 million into technology investments and come out with nothing. I wish I had gotten in on receiving that money.  The investors wish that they had made other investments now in the aftermath.  I’ve also watched others make this work, because they understood the risk and how to manage it. 
A word of warning: Just because someone dresses nice and is in a pseudo-government position, it does not mean that they understand technology investments.  But let's move on…
How can you work better knowing this?  The key to you and your startup is to show the angel/VC community that you can be the next big winner for their investment.

Software Choices – Technology Risk

While technology choices don’t matter a lot to the success of a startup, there are some choices that do matter.  One of the goals in a startup should be to eliminate as much technology risk as possible.  What is technology risk?  Tech risk is often thought to be any type of risk associated with the technology.  This could be one of several issues including:
·       The technology does not get supported long term.  An example of this is Silverlight in the area of cross platform software web development.  Silverlight looked really great in 2007 in all the demoes that were done showing off cross platform development.  Unfortunately, the technology landscape changed with mobile (iPhone and Android).  With no ability to get on mobile devices, the technology languished and finally died by 2012.
·       Developers that want to look cool by doing something different.  It may seem that it is “micro management” to define the libraries that are allowed to be used.  Unfortunately, developers tend to think of solving problems now, and don’t necessarily look at the tools that will be there long term.  For example, I was working for a startup once.  We needed to do some HTML dom manipulation.  Even in 2007/8, it was clear that jQuery was the solution for this.  No, somebody else wanted to use a library called Scriptaculous.  Why?  Because jQuery was too popular.  A little bit of thought and it was obvious that Scriptaculous was a loser and that jQuery was going to win.
·       Just adding libraries -- with, at best, questionable benefits -- to a project because it is cool or innovative is not acceptable. One can easily find the various code repositories rife with cutting edge or nifty open source libraries that have been abandoned or not updated in the last 5 to 8 years.  So, just because a library saves developers a couple of lines of code doesn’t mean that that library should be added to your project. When you add a library, choose the most popular one, not the fourth-most popular one.  The key in such a scenario is not to add libraries because you want to explore a library; instead, use more common libraries with lots of community support and momentum in the marketplace.  Even then, common libraries can still be dangerous if support for them stops -- I’ve seen that happen, too. And then what happens when you need to upgrade libraries? So, use as few external libraries as possible and when you must go outside of what is provided “in the box” be very careful with your choices. 
·       I often see code written that tries to take advantage of some new or little known feature of a language/platform.  Unfortunately, trying to be clever often leads to more problems than it solves.  While the person who wrote the code will think that it is great and is obvious to everyone else, the reality is often quite different.  If you have your startup poised to launch with some code written using some unknown feature of a framework, what happens when someone else has to take over that code?  Is it going to be clear to them?  Code should be written with a thought that someone else needs to come behind you to make it work, fix a bug, add a feature, or something else.  Code not written with this in mind may see delayed bug fixes, delayed features, or a need for a possible rewrite depending on the nature of what was originally done.   Bottom line: Your code needs to be as simple as possible to solve a problem.
I know it now sounds like I have said that you should not do anything new, try any new library, or do anything besides use what comes in some software installation package. But that's not what I'm implying at all.  If something is needed, then clearly use it.  However, you must understand the choices that you make. It all comes back to risk.
·       How do you minimize/eliminate Technology Risk?  There is always risk out there with everything.  However, the keys to minimizing Technology Risk are:Build your Minimum Viable Product.
·       Add features to your MVP.
·       Be careful with the technology choices that you make.
·       Iterate, iterate, iterate.
·       Keep talking to users.

What About New Choices?

New choices are an interesting thing.  They don’t have track records.  They are by definition new, do not have a community behind them, and do not have any type of track record of success.  How is a developer going to determine what the best mechanism to go forward is?  I’d like to share my views on what I chose to do with two products that came out within a year of each other with the idea that this might help you in choosing what to do in a situation going forward.  Hopefully looking at the decisions that were made will help you make the right decisions and reduce risk in the future for you:
·       Silverlight.  One of the problems of cross-platform libraries is that they have to provide native device features.  Users expect that applications built with a tool will take advantage of all of the features of that platform.  For Silverlight to be successful, it had to have full platform support in various operating systems, including Windows, Mac, and the up and coming mobile platforms of the iPhone and Android. 
My concerns on Silverlight were that it did not seem to have the ability to reach beyond the Microsoft community.  Apple was already making noise that browser plugins were not going to happen in their war on Flash.  How would Silverlight be any different?  Silverlight lacked support from platform vendors outside of Microsoft.  Neither Apple nor Google were going to be involved. Silverlight also presented a non-native UI when it ran outside of the browser.  For these reasons, I did not invest a lot of my time in it beyond customer requests.  That was a good non-investment and blind luck for me.
·       Xamarin.iOS/Monotouch.  While Xamarin.iOS’ success today is obvious, it was not necessarily obvious in 2009 under the wing of Novell.  It was clear that I could write native apps that looked, smelled, and tasted just like every other iOS app back then.  These apps were downloaded by users from the Apple iOS App Store just like every other app.  These apps used what are called native APIs.  A UITableViewController in ObjectiveC looked, smelled, and tasted just like a UITableViewController in Xamarin.  The only difference is that between a developer’s code and the underlying UITableViewController is a C# callable layer and somewhere in there is the Mono/.NET Framework.  The key is that for the users there was no visible difference between an application written with Xamarin.iOS and an application written in ObjectiveC/Swift.  From a user standpoint, there is no difference.  For the users, there was no user risk. 
For the developer, there was a certain degree of risk.  Apple could disallow apps not written in their tools which might have happened due to a one time misunderstanding in the language in Apple’s developer SDK.  Something could happen to Novell, which did happen but got cleaned up.  Any of these issues could have required a developer/company to rewrite the app and to lose some amount of money/value due to this rewrite.  Thankfully, all’s well that ends well.  Xamarin has been going well for the last 4+ years out on its own growing and becoming a better tool each and every day.  Finally in early 2016, Microsoft purchased Xamarin.  This definitely eliminates risk.
What’s the advantage to taking on this risk of using Xamarin?  There are several.  You don’t have to learn a new language or IDE.  This saves significant time.  For me personally, this was months saved in the learning process.  There is no need to switch between languages, which also saves time when development is happening.  With the advent of Xamarin.Android, I can now design my application for iOS, properly segment it, and be on my way to already having an Android application and vice versa.  This was a good (and lucky) choice that I made, and it has resulted in payback.
Note:  I’m not trying to say that I am clairvoyant or brilliant.  I’m just going back through two major decisions I went through in the 2008 – 2011 timeframe.  I have some less than stellar decisions also in my past.
·       To be more general in all of this, the question of risk associated with building web applications with <>.  Tools built on standards tend to not have much user risk associated with them.  Users won’t be able to tell the difference between an app generated with PHP, Ruby on Rails, Node, ASP.NET MVC, or any other framework.  These tools and frameworks don’t have much risk of going away either.  What happens when you are looking at a new tool?  That’s where the problems can come in.  Using a new framework depends on a number of factors and there is no one choice that will eliminate risk.  There are valid reasons to go with something new that depend on your specific situation.

Summary

Risk is all around you.  Your investors and project managers have to deal with risk every day.  For investors, risk can affect their choice as to whether or not to invest.  Project Managers can look at this risk regarding what platforms they choose to use.  Developers also have to deal with risk in the choices that they make.  You need to understand the risk that you are involved with, so that you can properly manage the risk in your given situation.  Good luck with the choices that you make and how they affect your startup.

No comments: