I Need to Have a ____ to Start a Business

Nice post by Matt Linderman over at 37signals about starting a business.

When I started working on OpenNMS on my own back in 2002, I think the company grossed about US$60,000 that year. Last year we did seven figures. All of this was without investment, without a board of directors and without a formal business plan.

Our business plan is always changing. At one point in time I expected consulting services to make up the bulk of our business. As we’ve grown it’s become much more about support and custom development.

Matt makes a good point in asking yourself about “who spreads these scare tactics about things you need and hoops you have to jump through”. I take it a bit further and suggest that you take a cynical or at least critical view of everything you read concerning business (especially the crap I write).

I often wonder why OpenNMS is never included in industry articles about “open source network management” even though we are often the number one hit when searching for that term on Google.

My only assumption is that the people who write those articles do so to drive ad revenue, and since OpenNMS doesn’t spend any money on marketing, there is no reason to include us. We don’t issue press releases (or the ones we do get ignored) so I guess that is the beginning and the end of the average industry hack’s research.

I get just as cynical when someone claims to be the enterprise cloud company or an open source company that sells proprietary software. I try to imagine the motivation behind it – in one case to be associated with the latest buzzword and in the other case to market their commercial software.

In any case, I digress as usual. The barriers to starting a business have become so low that anyone with a mobile phone, a laptop, a color printer, an Internet connection and access to a decent office supply company can start a business. There is no excuse for not quickly moving from the idea stage to the production stage. While I won’t claim that things like business plans and advisors have no value, they are no longer as important as they once were. A small company with focus can do just as much without them.

The Enterprise Cloud Computing Company?

I saw that salesforce.com surpassed US$1 billion in gross revenue last year. That’s pretty cool. But what floored me was the statement from Marc Benioff, chairman and CEO, that the company was “the first billion dollar cloud computing company.”

Wha?

I didn’t even know that salesforce.com was a cloud computing company, and thus the statement pretty much pegged my BS meter.

But if you look down at the bottom of that press release you’ll see the statement “Salesforce.com is the enterprise cloud computing company.”

How can they make that claim? While I often use them as a great example of a Software as a Service (SaaS) company (which they call themselves as well) I’ve never thought of them as a cloud computing company. Are they referring to the force.com side of the business?

I asked John Willis, my resident cloud expert, about this and he wrote back:

Laugh clown laugh…. 🙂

Amazon just toppled 40 billion S3 objects and 490k developers. Amazon Web Services is single handily re-defining small business around the world. Rack Space’s cloud has reached 34k customer’s in around 1 year.

My guess is he wasn’t too taken by the claim as well.

Why do companies do this? Here is salesforce.com, hitting a sales milestone to be proud of, and they have to go and frack it up by posturing as some sort of cloud company just because it is trendy at the moment. And it’s not even like their stock is doing all that poorly – it’s up nearly 50% from the 52 week low of US$20.82 which isn’t bad in this climate.

Is it me? Am I the only one who feels the need to point stuff like this out? It strikes me like the commercial open core software business model trying to masquerade as open source.

It’s funny. I have a vested interest in educating the market on open core vs. open source, but I could care less about the cloud. But still I get all bent out of shape when I read stuff like this.

I need a hobby.

More Open Core Silliness

I came across a post by Brian Gentile, the CEO of Jaspersoft, where he is trying to defend the “open core” business model. I tried to comment on his blog but got the following captcha, which I just couldn’t figure out (and nothing really happened when I clicked on the little handicapped icon).

Since I just finished Watchmen I’m kind of in an odd mood. I sometimes question whether my devotion to protecting the term “open source” is devolving into the moral rigidity of someone like Rorschach. In any case I will attempt to address some of the points raised by Mr. Gentile.

1. Community involvement in the core code is encouraged, while community “extensions” are not only plausible, but probable.

Of course community involvement is encouraged. I’m sure all commercial software companies would like to have a group of programmers adding features to their product for free.

I’m a little confused over “plausible, but probable”. One way I would interpret it is that it’s great of you add features to our software, and it is “probable” that we’ll accept them, unless they conflict with our commercial features.

2. Commercially-available extensions, a superset of the core and ideally with visible source code access, are provided, thus creating the value and assurance commercial customers often require to sign a commercial license.

Of course, in the open core model there must be “commercially-available extensions” in order to get companies to sign a “commercial license”. Why is this? Because the open core product has been intentionally hobbled to force companies to buy the closed software product in order to get it to do the things that customers need it to do, and thus to generate revenue for the software company.

Isn’t this the same thing as a shareware application? The “free” version does some things but it is the full featured version that most people need.

Also, I want to point out a new trick in the open core marketing book: “ideally with visible source code access.” Many open core vendors are supplying the source code to their commercial clients, but under a very restrictive license. Access to the source code is not “open source”.

3. The Community needs a healthy and growing group of Commercial customers to both legitimize the open source code base and ensure necessary financial success so the on-going advancement of the products / projects are assured.

Why? This is the other argument that open core loves to make: good software cannot be created unless someone pays for it. And, it seems in this argument, good code can not be legitimate unless someone pays for it. I think it is a large, open community that legitimizes the product, not the other way around.

The thing that pisses me off the most about this statement is that you can break down the reasoning behind it as:

You, the community, can add features to our code. We, the corporation, will then use those features to help sell our commercial software. If you work hard, we’ll be successful, and if you are lucky some “free” features will trickle back down to you.

Bah.

Mr. Gentile then goes on to state that “some have claimed the only true and legitimate open source model is to provide identical community and commercial editions of the source code.” Yup. That would be the case. The Open Source Definition has many requirements, and having separate commercial editions of the source code violates many of those. Ergo, you are not open source.

He goes on:

Minimally, this argument misses a valuable history lesson. Most major software categories where open source has positively disrupted have required successful commercial open source companies to eventually use a model similar to open core, in order to continue growing. Think JBoss, Linux (Red Hat Enterprise Linux, Novell/openSUSE), SugarCRM, Hyperic, Talend, and of course, Jaspersoft.

First off, Red Hat Enterprise Linux passes the CentOS Test, so I wouldn’t call it open core. I just went to the JBoss site and I’m having trouble finding the “commercial software extensions” that would be present in an open core product. I don’t know enough about openSUSE to comment, but I assume it is very much like RHEL and would pass the CentOS test.

So, that leaves SugarCRM, Hyperic, Talend and Jaspersoft. See, all of these open core companies want to be associated with Red Hat and JBoss since those are obvious commercial open source success stories. But those two companies are not open core – they provide a lot of value without having to resort to commercial software. While the open core model may be successful as a commercial software business model, it ain’t open source, no matter how many times they say it is. If they would just own up to the fact I could stop wasting my time, and yours, on these posts.

And what about MySQL? Why did he leave that one off? Up until the last few years MySQL was a pure open source company. Sure, they would sell commercial licenses to their software, but that software was identical to the GPL version. I have absolutely no problem with this, and I think it is a valid way to generate revenue.

But look at MySQL, JBoss and Red Hat. They are all enabling technologies, and not really applications in and of themselves. This is a lot like OpenNMS, which is designed as a platform on which to build and not a rigid shrink-wrapped application. This is where open source really shines.

He concludes:

The pure open source model will continue to democratize software development and yield some commercial success. But to truly disrupt software categories where proprietary vendors dominate (and to deliver large new leaps in customer value), the open core model currently stands alone in its opportunity to deliver community progress and commercial success.

I see little difference in the “open core” model and that of “proprietary vendors”. The code, unless forked, is still 100% controlled by one commercial entity with a business plan to make revenue on software licenses. If the business is to run well, then the needs of the community will ultimately be sacrificed to the needs of the corporation. Couldn’t a proprietary software company make the same argument? That if lots of people buy our software we’ll have money to make “large new leaps”?

If you like your users why not provide all of the features as open source? Red Hat does it, JBoss does it, OpenNMS does it. The answer will always be that their business model can’t survive unless they sell closed source software. In that aspect, I can see little difference between open core companies and Microsoft.

The key phrase that struck me here was “yield some commercial success”. Pure open source works, but just not fast enough and big enough. For whom? Why the investors in these open core companies, of course. They want commercial software-sized wins in a short amount of time, and thus they have to adopt a commercial software business model, using the term “open source” to market it.

The real weakness in the open core model is that, while it adopts a commercial software licensing model, it dilutes the intellectual property value behind it. Why should I consider acquiring an open core company when I can just take the open source pieces and add the most requested missing features for much less money?

Open core software is a fad. I have no doubt that it will make some individuals wealthy, but pure open source is catching up and will eventually disrupt both the pure proprietary and open core proprietary software business models.

Epic Support Win: Apple

Yesterday I wrote about my failing Macbook battery. While the Apple rep told me that it would take 4-6 days, a new battery was shipped FedEx Overnight and I got it this morning:

Talk about under-promising and over-delivering, this is great. And my battery stats are much better:

The best part was that in order to return my old battery, all I had to do was tear off the top part of the mailing label, which revealed a return label underneath, and drop my old battery back in the box.

Awesome.

Why Open Core Will Fail

Carlo Daffara has a well thought out post on open source business models that mirrors a lot of what I’ve been thinking, although Carlo writes his thoughts up more succinctly than I ever do. Money quote:

I believe that in the long term the market equilibrium will be based on a set of service-based companies (providing high specialization) and development consortia (providing core economies of scale).

It has been a plan of ours for some time to create The OpenNMS Foundation, a truly independent corporation to hold all of the OpenNMS IP, and then to focus even more of The OpenNMS Group’s efforts on providing high-value services. At the moment it is all I can do to keep up with the paperwork involved with one corporation much less another, and since the majority of our code is either contributed by The OpenNMS Group or by individuals, there hasn’t been a overwhelming need. Eventually I think this independent organization will be a requirement in order to get other large organizations to contribute to OpenNMS, and once we get a suitable amount of interest it will make sense to move forward with it.

This is something you’ll never see the open core software companies do. Their revenue models are too tied up in selling software licenses to allow the code to be fully open. I know I’ve said stuff like this before, but today I came across a great example of why the “open source” part of open core software is strictly a marketing term.

A person named Uniroca posted this on the Hyperic mailing list:

Tell me it ain’t so Joe! To evaluate the tool for my company’s systems, I’ve downloaded and installed 5 agents and the opensource server on 5 RH Linux hosts. The agents installed great, and the server installation was a breeze–100% easier than Nagios. However, I am running into wall–is there some way to apply an alert against mutilple resources? For instance, I want to put a 100% Full Filesystem Alert on all 5 hosts for each of their 10 filesystems. After working on it for a days, I am incredulous that the opensource tool does not appear to do this except for the admin to go through each filesystem on each host and create a new Alert. From an OS monitoring perspective, this is a complete showstopper. Unless there is a way, I am going to have to go back to Zenoss or Nagios (which I really don’t want to do).

A reply came from Mirko Pluhar:

This feature has been requested a thousand times (even one time last week) for the Open Source Edition and to put it in a nutshell: No, there is currently no way to add alerts against multiple resources.

If you read the following page http://www.hyperic.com/products/monitoring-comparison-chart.html there is a feature called “Global Alert Templates for Groups of Resources” which is exactly the feature you need and it is only available on HQ Enterprise Edition.

So, here is a feature that has been “requested a thousand times” but it is not in the “open source edition”. It is a feature that is necessary for a guy who is just trying to monitor five servers, much less hundreds or thousands.

Guess what? You won’t ever see this feature in the open source edition. It ain’t gonna happen. This is because Hyperic derives its revenue from selling the Enterprise Edition of its software which isn’t open source, and it is features just like these that drive people to buy it. Why would they want to threaten their business model by providing this feature?

In fact, even if someone in the community wrote this feature I doubt it would ever make it into the open source part of Hyperic. If they were willing to accept the contributed modification, why would they need to keep their version separate?

Before Andrew Lampitt coined the term “open core” I used to call it the “shareware” business model. Shareware was an acceptable way for smaller software firms to drive attention to their products. They would release a version with some sort of limitation, such as a timer that would only let you use the product for a certain amount of time or less features, and encourage people to share this limited application. The idea was that you could get a taste of the product before plunking down a bunch of money for it.

But the term “shareware” was often associated with lower quality software than, say, the commercial software you bought that came in a box. The term “open source” has a much greater cachet, which is why these companies adopted it.

There are some detractors of this model that go as far as to call it “crippleware”. A major complaint is that it isn’t the community that determines what features are added to the product, but instead it is the commercial software entity. This goes against every experience I’ve had with truly open software.

What really confuses me is that I don’t know why, outside of the marketing bump, these companies choose this model. Why not just go with a commercial software model with a really good API? Commercial software isn’t necessarily bad, it’s just that calling it open source is misleading. Plus, the open core model is so much more fragile because there is some code out there.

In the case above, what if someone forked Hyperic and added this feature. I doubt it would be that hard, probably much less development work than it would take to buy a commercial license for, say, 100 servers. And let’s say they went out and ranked the top ten features that drove people to buy the enterprise edition and added them as well. Just to use a round number let’s say I could do this for US$1 million. I’m not saying I can, but US$1 million could buy me 8-10 solid Java coders for a year and I bet a lot could be accomplished.

My assumption is that these open core companies want to be acquired. Let’s say the price is US$100 million or more. Why would I want to buy such a company if the revenue stream could be threatened by so much less money? In order to keep ahead I’d have to write even more code, but it would have to be closed source so I could sell it per my business model, which requires an investment in programmers, which leads to shrinking margins, and I’m still threatened by the possibility of a fork.

I, as an investor, would much rather invest in commercial software companies like Solarwinds or Nimsoft that have tight control over their IP which would be much, much harder to dilute.

With OpenNMS, if thousands of people request a feature, you can bet it goes to the top of the list. For the OpenNMS Group, we are a services company, so our IP is in our knowledge of solving management problems, in adding new people to our team quickly, and in community building – not in software. Our expertise is in forging solutions that can’t be met with off-the-shelf applications, and we can get paid a premium for delivering scalable solutions quickly and with a low total cost of ownership.

While that won’t make us a US$1 billion company anytime soon, I believe that has value.

Dance Card Status: Full

I read on Larry Augustin’s blog that this weekend is the annual Open Source Think Tank event in Napa. I have never been invited to one these things, but I believe that I would get an invitation if I asked him.

Unfortunately, I don’t have the time right now, which is a shame since I bet with enough notice I could get a reservation at the French Laundry, which is on my list.

I’m not sure how well someone like me would go over at an event like this, since my views are a little different than most of the commercial open source community, but I’ve never really been afraid to speak my mind so at least I would have some fun.

But in keeping with our mission statement of “Help Customers, Have Fun, Make Money” I’m on the road part of each of the next five weeks.

At the end of this week I’m heading up toward DC to help out one of our clients with a performance issue on Windows. The Windows software and the Linux software are exactly the same (OpenNMS is Java after all) so we can’t understand why they are experiencing performance issues on this huge machine they are using. I also lack the knowledge and the tools for diagnosing performance issues on Windows, so the plan is to install Red Hat Linux and see what happens.

Next week I’m spending a couple of days in Chicago doing a “Pimp My OpenNMS” project. We have a surprisingly large number of clients in Chicago so I like going up there, but my only wish is that we could do some of these engagements when it is not so darn cold.

The two weeks after that find me in Frankfurt for the first ever OpenNMS Users Conference, with a short side trip to visit a friend in Dresden after that. This conference definitely falls into the “fun” category and promises to be a great day. If you haven’t registered already, please do so soon since we are limited to the number of people we can fit into the rooms we have acquired and I’d hate to turn anyone away. We had hoped to repeat this in the US sometime this year, but due to the current economic climate that probably won’t happen, as our potential sponsor is having to cut back on the number of conferences they can host due to overall belt tightening.

Finally, I’m off to Portland, Oregon, for a couple of days the last week of the month to work with one of our larger clients on a migration to the latest code. If I didn’t live in God’s Own Earth I’d probably be living in the Pacific Northwest, so I always look forward to these trips. Plus the client is pretty cool.

In these uncertain times it is nice to be busy, especially doing something you enjoy.

Support Win: Apple

We use Macs in the office. When someone new joins the group they get a state of the art Macbook with an Apple Care contract, and they are told that they have to live with it for three years.

We’ve been pretty happy with them. My only complaint is that while there is an Apple Store nearby they really don’t have “business-level” turn-around times (I can’t be without my laptop for a week while it gets fixed).

I still have a year and a half left on my laptop and I’m considering going Ubuntu or Fedora on my next purchase, but there are certain little features in Mac OS X that I’ll miss.

One of those concerns battery power. When my battery gets low I get a dialog box that warns me of this. When I connect it to external power the dialog box goes away, without my having to click on any buttons.

I don’t know why that impresses me so much (and if it has been duplicated in a Linux distro I’d love to hear about it).

Anyway, lately I have been missing this little amusement because, without warning, my Mac just shuts off. No warning, no sleep or hibernate, just off.

Now I try not to bother support people without at least searching for a solution, so I ran some queries and tried out many of the suggestions, such as resetting the PRAM, which sounded reasonable, to repairing disk permissions, which didn’t but I didn’t think it would hurt anything.

This morning, bam, goodbye power.

I called Apple and was quickly connected with a support technician. Is it me or do all of the Apple support technicians sound alike? I always think I’m talking to some young, twenty-something, skinny white guy.

Now here is what I love about this support experience compared to others I suffer through. The guy did not treat me like an idiot. Once I told him that I’d reset the PRAM he didn’t insist that I do it again. Instead he just asked me for some battery statistics from the System Profiler, specifically the “Full charge capacity” and the “Cycle count”.

Once I told him the values he quickly determined that my battery was going bad and that they needed to send me another one. So a new battery is on its way and all I have to do is send the old one back (Note: I checked David’s Macbook and both of those numbers are doubled on his machine).

It’s service like this that will make it hard for me to switch. There are three main things that I took away from this exchange:

  1. He treated me like an intelligent adult.
  2. He knew exactly where to go and what to ask to for in order to diagnose the problem.
  3. He resolved the problem quickly with no added stress or wasted time.

Bad batteries are probably pretty common, so I don’t think this qualifies as “heroic effort,” but it was still a nice change from “do you realize your password is case sensitive” and “have you tried powering the unit off and back on” and other script drones with which I usually have to deal.

Thoughts on Service

I had a horrible customer service experience this weekend. Whenever I experience either exceptionally good or exceptionally poor service I tend to spend a lot of time thinking about how I can apply it to make the services we at OpenNMS provide even better.

The situation was this: my water heater started leaking. I was doing some work on the farm, went in to the garage to get some tools, and when I came back about an hour later there was a stream running across the garage and then outside.

My house is over 15 years old and my guess is that the water heater was just at the end of its life (I could see some places near the bottom where the paint had bubbled – probably from rust). Unfortunately, the cut off valve for the heater itself was frozen open, so I had to turn off the water main to get the stream to stop flowing.

I didn’t worry about it too much since I had a home warranty from American Home Shield, and this was definitely covered. The warranty originally came with the house and we’ve been making the premium payments once the first year was up (for over nine years now). I’ve had mixed results with the AHS service in the past, with the best service coming years ago when we first started with them and then steadily getting worse.

I called their toll free number, worked through the automated attendant, explained the problem and was told they’d have someone call me.

On Monday.

Since this was Saturday afternoon I wasn’t looking forward to spending the weekend without water, so I called back to see if I could get my total lack of water considered an “emergency”.

Now I used to work for NORTEL on ACD systems, so I have a bit of an interest in how these things work. Usually, pressing “zero” or saying “agent” will short circuit all of the “press/say one” crap, but on modern systems a healthy dose of swearing will work as well.

Voice: “If you are experiencing problems with your heating and air conditioning, say ‘HVAC’. If you are experiencing problems with an appliance such as a stove or a washer, say ‘appliance’. If you are …”

Me: “Agent”

Voice: “I’m sorry, your answer was not understood. If you are experiencing …”

Me: “Transfer me to a go****n f***ing agent right now!”

Voice: “Please hold while we transfer you to an agent.”

Once I reached a human, they told me that they would contact a plumber and I should hear back within the hour. An hour and a half later I called back, went through the same routine again and got the same answer – someone would call me.

Chances are if your service company doesn’t call you back on an emergency call within an hour, they ain’t calling back. But I waited another hour before taking matters into my own hands and deciding to get it fixed on my own. I figured it would be easier to get a service person out at 5pm on a Saturday than 9pm.

What was even more frustrating about the experience is that it was the weekend and I had stuff to do. Unfortunately the cordless wouldn’t reach to where I needed to work outside, so I was basically forced to wait inside by the phone.

It did give me time to surf the web for stories about American Home Shield and they aren’t pretty. I also had plenty of time to read my contract and I realized that I had until tomorrow (the 24th) to cancel my current contract for a full refund. Of course, if you want to cancel within your 30 day period, make sure you schedule it for a business day because they won’t cancel your contract on a weekend. I found this out when I called AHS back to cancel the service call and deal with it myself.

So, what does this have to do with open source? Well, ostensibly AHS is an insurance company, and to some degree what we provide is a form of insurance. So why do I think we got it so right and AHS got it so wrong?

The main difference I think is in motivation. It is the goal of AHS to maximize profit. There are two ways to do this: sell more or spend less. From what I’ve been able to read on the web, it seems that the focus of AHS is the latter. Since there is no pre-inspection there is no baseline for determining the state of your house. There is a clause in the contract that requires you to “maintain” your property, and it appears that AHS has refused to pay for services just by stating that the problem was due to a lack of maintenance.

Should they actually decide to address a claim, it also appears that their contracts with suppliers are pretty draconian, asking the supplier to take on a fairly high level of cost and risk. Thus they only attract the lowest common denominator of service company – such as those that won’t respond to an emergency page on a weekend. One can only imagine how they would handle a more important job such as an HVAC system.

At OpenNMS we try to do the opposite – increase revenues by selling more. Our plan for that is to deliver the best level of service possible so that our current clients will tell their friends how great we are. While our support services are described in a detailed Statement of Work, we often venture into the category of “out of scope” work in an attempt to insure our clients’ happiness.

We also hire talented, cheerful and qualified people. We provide premium services and charge accordingly, so you won’t get anyone whose major understanding of network management starts and ends with the ability to spell SNMP.

Maybe one last difference is that I think I would resign if anyone had anywhere close to the experience I had with American Home Shield with OpenNMS. At 9pm on Saturday, four hours after I cancelled the service call, AHS called the house to tell us that they just couldn’t find anyone to fix our problem. At that time it would have been hard for me to find someone, so luckily I got it fixed earlier.

I tried to be nice when I called to cancel my contract this morning, but it was hard. At OpenNMS we have lost a few customers over the last seven years, but never due to performance. While I hate losing any client, I’d much rather get a note like

We do not plan to continue to utilize a support contract with the OpenNMS Group as we have quite frankly not found a need to utilize support services on the product itself. Thanks.

or

We do want to acknowledge and thank you for outstanding support and superior responsiveness; on a scale of 1 to 10 I would rate your service at the highest level, at 9.99999, only reserving the 0.00001 as incentive for continued growth.

I can live with that.