Building your App in the Cloud or not is a business decision better made early…

Having worked at Salesforce.com for several years now, I have been immersed in the world of Cloud and I have witnessed first hand how an enterprise class application could scale in such an environment. It has been fascinating all along and that experience has been truly put to use as I have been dealing with ISV (Independent Software Vendors) partners in the last few months for Salesforce.

As I talk to CEOs and CTOs of those ISV who want to work with us, the question of the architectural choice they have made comes every single time: Is your offering Cloud based or on-premise? Is it truly Multi-tenant or more of a shared hosted solution? What I came to realize through those conversations is that the choice those companies made early on is definitely something that is very impactful to their business and that once it is made, it is extremely hard to change. That difficulty can have huge consequences on your ability to scale, your ability to innovate, your ability to lead and even your ability to exit!

As a consequence, I would like to write a piece of advice, or at least a bit of guidance to all  of you, early entrepreneurs, who are thinking about building software: Should you go Cloud or not, and if so what type of Cloud offering should you pursue? What I hope from this post is that you will realize that this decision should not be taken lightly and should definitely not be an afterthought, but above all, it should be made early.

Cloud, Multi-tenant, On-premise.. What is all this??

Let’s quickly recap what Cloud, multi-tenant or on-premise mean (I’ll stay very high level here):

  • A Cloud application does not live on your customers infrastructure(usually). The customer connects to your application via a basic Web Browser. Most of the time those solutions are sold on a subscription basis.
  • An On-Premise solution usually lives on the customers infrastructure. The customer owns servers and potentially spaces in data centers to run the software. Usually those solutions are sold through a one time license and some yearly maintenance fee that gives access to upgrades and patches.

Cloud based solution can have (roughly) two flavors: Hosted or Multi-tenant.

  • A Hosted solution usually means that despite the fact that the customer accesses your solution through the Web and has a subscription service they pay, the application lives in its own container called “instance”. Each customer has its own instance with its own engine and Database. There is literally a virtual separation between each customers instance.
  • A multi-tenant solution usually means that the Database as well as the application is unique and access for each customer is controlled through some meta-data layer. Everything is shared and security is ensured at the query level rather than at the virtual infrastructure level.

So what are the implications of each of those solutions for an early startup?

Let’s assume you start with an on-premise solution

Let’s say you start on-premise (just like many of the enterprise solution providers out there started many years ago). Here is how your business will go:

  1. Your sales representative will be compensated on the licenses they sell. Usually those up-front licensing costs are high: the customer “Buys” the software. That’s usually pretty attractive when you start because:
  2. You get more upfront cash which can fuel your growth
  3. You don’t have to have a security conversation with your customers which will ask where the data resides and how secure it is, etc.. so sells are a bit easier.
  4. You will have happy sales guys because they will get high bonuses

So it all starts pretty well, but then as your business grows, this is what happens:

Your customers are not upgrading which means you have to maintain several versions of your software which drives your support and development costs up. You have to release patches for several versions and you have to train your support crew on several versions.. this could quickly become a nightmare. So to reduce this cost you revert to a fewer releases which drives down your ability to innovate fast, react to new market trends and lead ahead of the competition as you cannot afford to manage too many versions and at the same time and you cannot force your customers to upgrade.

You realize that the new hardware that a customer has added to their machine is causing issue so you have to handle hardware specific patches, or your virtual machine provider has released a patch that is also causing problems with your application but that only happened for a subset of your customers..

Your sales guys constantly have find new customers because your revenue is dependent mostly on this one-time licensing fee that you charge and if they don’t get new deals they don’t get the nice bonuses they use to have.

Some prospects are worried about the seasonality of their business and how quickly they can scale up and down and also deploy mobile apps.. Well with your on-premise solutions Mobile access is not that simple as your customers need to open their Firewalls to give access to the servers that host your App. And by the way, they also need to integrate with other solutions, and some of them are Cloud based, so do you offer some kind of standardized platform where partners can create those hooks?

As a business owner you look at this, you look at your costs, you look at the market trend and the growth of the Cloud and you decide that it’s time for you to start providing a Cloud based solution..

This is where things really start breaking.

From on-premise to cloud: the equivalent of a pivot, but harder!

Your sales force has been trained to pitch the value of on-premise versus cloud and all your customers have bought into this vision. Now you have to go tell them that Cloud is better! If you don’t, you will have to manage yet another version of your offering and increase your costs even more.

Of course, you don’t want to re-code everything as multi-tenant, it would take you months if not years as the architecture are fundamentally different. Your developers would be frustrated and your customers may not have the patience. You may even loose the precious lead you had on your competition in terms of product features. Multi-tenant is a no-go, so you decided to go hosted.

Going hosted is easy enough, you basically take the on-premise App you have, hopefully you had a web browser front-end instead of a desktop application (if not you are really in trouble), and you put it in your own infrastructure.. You change your licensing model to be subscription based and you are good to go: You have a nice Cloud bases solution.

Well it’s not that easy..

First, you still had to spend an ungodly amount of cash to build or rent your datacenter in the meantime though. You will have to swallow that as the revenue of a Cloud based offering are also much more progressive, no big one-time fee here.

Second, your sales guys won’t like this and will always sell the on-premise version if they can. They will come in a deal leading with Cloud, start pitching and revert to the on-premise every time. Maybe you mitigate this with two different sales units, one for Cloud solutions and one for on-premise, but you will rapidly enter a turf war internally. I have seen this over and over. That means your cloud solutions will have a very hard time picking up.

The maintenance of the hosted solution is also going to be the same nightmare as it was for the on-premise.. When you upgrade you have to go through each instance individually and upgrade them one by one. The problem is that your customers will always tell you that it’s not a good time and it takes weeks if not months to upgrade everyone. By that time you may already have a new version available.

Going hosted you haven’t solved anything.. you made it worth. You have sales that don’t want to sell your stuff, you have support and maintenance nightmares and you lost your innovative power.

Let’s continue the story. You are resourceful and with your strong leadership you have been able to change the culture of your company and everyone is behind you now.. your hosted solution has taken off and you have an opportunity to exit with one of the leading firm in the Cloud.

Looking at an exit? Tough luck…

The company (fictional) that is looking at your business was attracted by you because of your Cloud offering. Their IT is looking at your architecture and realized that you host many instances of your solution.. There is nothing multi-tenant and basically the integration story will be almost impossible as everything will have to be re-written to be compatible with multi-tenant. Your support organization will be cut drastically as well as you have way to many and all your customer base will have to be migrated as heavy costs which means there is a good chance of attrition. How do you think the acquiring company will feel about your business? not so sexy anymore. Of course it can happen, but what multiple will you get?

So what about multi-tenant then?

Very quickly, multi-tenant means you ARE Cloud. You develop 1 version, you maintain 1 version, you upgrade everyone at once, you are nimble and innovative and you will crush your competition. Your sales will be trained on 1 message, compensated on 1 model, and customers will grow with you, making you a very good target for a beautiful exit.

One element often forgotten about hosted versus multi-tenant is that a hosted solution will never be able to grow your customer base in the SMB market if that is what you plan on doing (either as a start or if you want to go down market later). Spinning up a new instance and maintaining that instance for a customer with 2 seats will definitely not be worth the time. A Multi-tenant architecture on the other hand, doesn’t care if you are 1 or 10,000, the cost of deploying and maintaining each customer comes down to a cost per seat (roughly). Small business are subject to the same level of quality and care as the big customers and your overall level of service is much higher.

Summary: choose wisely and choose early… (my advice: choose multi-tenant!)

I took a very simplistic approach to the story, but hopefully you now have a better understanding of what it could mean to start with the wrong architecture. Going on-premise may be simple, or even hosted to start with, but the consequences on the growth of your company, the costs, the innovation and flexibility you will have to adapt to a rapidly changing market and the ability to exit may be really impacted and depending on your business strategy and goals could even be detrimental.

I truly believe in the Cloud but I also truly believe in multi-tenant. There are many different ways to architect your solution with some hybrid solutions but always keep in mind the maintenance costs they will generate assuming customers will not upgrade if they can avoid it.. Some customers are very sensitive to cloud solutions like in the banking industry but salesforce has proven that with the right security, the right message and with enough benefits, even the banks will follow you.

Advertisements

How difficult is it to build hardware for a startup?

My gosh… I’ve always been a software guy but since I’m young I like to build things. It starts with lego, even “Mecano” (ok I’m not that young anymore and I have played with Mecanos as a kid..) and last year I though it would be really fun to try to build some kind of hardware and see how that works. I was inspired by the Makers movement and all the Arduino’s projects and thought to myself: I can do this!  So I did..

Here was the plan:

  1. Find a good idea (I had one already)
  2. Build a prototype
  3. Put it on Kickstarter and raise some funds
  4. Sell it and potentially expand the product line

That sounded about right.. My initial goal was to learn about hardware making and prototyping.. All those Kickstarter projects were pretty fascinating and the advent of 3D printing allows you to go pretty far. Hoping to help (or warn) other entrepreneurs about going that route, here is what happened:

The context:

I watch TV and I have kids.. I can never watch a good action or sci-fi movie without the risk of waking up the kids or annoying my neighbors so I wanted a device to wirelessly transmit sound from my TV to my ears. There are plenty of them out there already but without going into the details, they SUCK! The only ones that work very well are the Sennheiser, which will charge you an arm for them and force you into a single type of headset.. I have my headsets, some nice Bose QC15 that work perfectly and I wanted to use those instead.

The Idea:

Have a very small device on which I could plug my own headset to listen to the sound of my TV wirelessly.

The constraints:

Wirelessly transmitting sound is not easy when combined with TV: It cannot suffer any delays (latency) between the image and the sound otherwise it would look like a horrible foreign language dubbing! And it cannot use too much bandwidth because there are a lot of interferences with existing wifi networks already. Wifi is out, Bluetooth is out, regular RF is out and the only really good solution I found was the KLEER chip (also used by the high-end Sennheiser system)

The easy part:

Get a name: Soundora.com was available..

Get a quick website up and running www.soundora.com

Get a Logo (I have some really talented friends there)

soundora_high_transparent

Get a twitter account, an email and a facebook page

Barely any costs there.

Building the first prototype:

I found who built the KLEER chip, and luckily they were in the Silicon Valley so it was easy to contact them. They send me all the specs of the chips some reference designs, and all the surrounding hardware.. That’s where the nightmare started.. My electrical engineering skills are about 15 years old and those chips cannot be soldered by hand.. Half of the surrounding component I had no clue what they were, some had different options I didn’t understand either..

So after a bit of research I reached out to companies that built prototypes for you. They know their stuff! Great conversation but the initial investment was at minimum around $10K to have a single prototype, and probably around $50K to get a first low volume batch.. No go.

The fun part is that I initially did some designs without hardware constraints, and had a good idea of what it would look like, but as soon as you add: Battery, Connectors, and all the other stuff around the device, you realize the amount of magic required to build something as small as an iPod Shuffle is! Man, Apple is good.. So all my initial designs went to the toilet. I had to start from the inside and work my way out.

So I bought a couple of low end Sennheiser headset (which use the same KLEER chip as the high end) and tore them apart . I took the board and put it inside small box I bought at Frys.. What I didn’t expect is that buying components such as a 3.5mm jack plug, flat batteries, etc.. would take so much time. I also didn’t realize that they were never exactly the right format, the right length, etc.. Amazon doesn’t have a lot of it so delivery would always take 5 to 7 days to realize it wasn’t what I needed.. In the end I did get all my part and a bit of soldering later I had a working device:

First prototype of Soundora

When I say working, it’s partly true.. The button in the front for power and Volume were iphone buttons that are way to thin to work with.. I could not really change the volume or turn on and off the device.. I had to design my own box (which was fun).

Here you go a few days later I had my 3D model:

3D model or Soundora receiver

I used Shapeways.com which had the cheapest 3D printing service I found and got me the box. Very existing but another few weeks to get it..

1 IMG_8225  3D Printed receiver open

 

At this stage I realized that 3D printed is not really there yet.. Anything under 0.8mm space will be filled.. That means that my button did NOT work (again!!). I was starting to get frustrated with this, buttons are really tough to design, it’s just amazing!

Anyway, I got the circuit in and kicked it up

2 IMG_8228 2 IMG_8233

 

huh… That orange light wasn’t supposed to show up that much.. I even had build a little deflection inside the box to let the light come out through a small hole.. Interesting surprise.

Anyway, it worked! I had to have another batch of buttons from Shapeways to solve my issued and it now looks pretty cool.

I also found another battery pack that is flatter and should work as well so I was in good shape. I’ll have to do another box (thinner) though.

But here is the main issue: Ripping out a Sennheiser device for my personal use is fine but I can’t really do that commercially so I still needed to find a way to get my own circuit built.

Getting my own:

By total chance, I stumbled upon a small business that is building systems around KLEER for different customers.. They built the Dr Dre wireless headset.. so I contacted them. Very cool guys and they had small circuits (smaller than sennheiser) that I could use to get an even better device. Very exciting.

But then we talked about production batches.. The Kleer chips are bought by batches of 2000, pretty expensive per unit cost.. Building the box (transmitter and receiver) would probably cost about $4K to $5K to get the mold and get it ready for a batch. That doesn’t even count for prototyping the real thing..

Basically I need to raise at least $100 to $150K to get the project going, and it would mean a sales price in the $150 to $200 a system (1 transmitter + 1 receiver). You can add more receivers (up to 4 total) but it cost about as much as the transmitter.. So the economics barely work for small batches of a few hundred devices. They would for larger batches though.

I am currently kind of stuck there, I don’t want to do a Kickstarter project with a prototype that doesn’t look like a finished product (maybe I’m wrong in thinking that by the way), and I am honestly having a hard time with anything touching the electronic of the device.. I’m a software guy. Also I want to keep it lean as much as possible but I realize that the lean startup model of software doesn’t apply that well in the hardware world.

Other things to consider:

Even if I get to a point where I do have a working prototype there are other things to think about when building a hardware startup:

  • This one is a wireless device and requires certifications about the lack of danger of the transmitted wave. There are a bunch of certs you need to get for the device that will add costs to the project.
  • Designs should be turned from the current Patent pending status to a real patent in some way even though it’s using only existing technologies.
  • Packaging is another good one: Getting a nice box that is cheap but looks good and conveys the experience you want to provide to the users
  • Power plug adapters for distribution in Europe and North america, including different voltage and frequency
  • Documentation in several language
  • Distribution network: initially direct as done through kickstarter, but eventually through stores like Best Buys and others. This will hit the margins.
  • Shipping costs between China (or wherever the device is manufactured) and the destination
  • Maintenance and defects management: Some devices won’t work, some users will be unhappy, and you have to determine who is responsible, what’s your return policy, what costs can be projected around those issues, including shipping..
  • Potential competition from Sennheiser or others.. Roku came out with a similar device and even though it is limited to one listener and to sources from the ROKU box, it still is a fairly tough competition.
  • Unsold devices: If you create batches of devices, what if you don’t sell them all?
  • Delays in production and shipping..
  • etc..

Conclusion

I didn’t give up. I still would like to get to a point where I have a very nice looking prototype, but when I compare this to any of the software project I have done, I realize that it is a totally different world.. Fun in a way as you can touch and feel something, and as you are effectively building something, but the initial cost and technical skills required are really larger.

I have learned so much along the way and I now look at all those Kickstarter project in owe of the complexity I lived through. Some of those guys are really good.

I hope you you entrepreneurs out there will find value in this experience and maybe make you think a bit more before going into hardware. I also welcome any help from someone with electrical engineering, manufacturing, hardware engineering to get this through a first finish line 😉

Cheers, and keep making stuff!