OSBC, Portland and Walt Disney

Apparently I’ve missed another Open Source Business Conference. I should go to these things, if only for the humor factor, but since it doesn’t really fit into our mission statement of “Help Customers – Have Fun – Make Money” I skip it.

I did see a couple of trends come out of the blogosphere around the show. The first was that it seems that people are still trying to fit open source into traditional commercial software models.

I saw this on Matt Aslett’s Twitter feed from the conference:

RT @markdevisser: @jHammond states the Bazaar evolves to a Guild and then to a Shopping Mall, which attracts customers so vendors can thrive.

It sounds cute but on thinking about it, it started to piss me off. Who do you think comes to bazaars if not customers? I spent a day at the souk in Damascus and it was a more pleasant, crowded and exciting experience than any shopping mall I’ve ever seen. Why must software be put into little shrink-wrapped packages and sold on a shelf?

(sigh)

The implied statement is that the bazaar isn’t good enough and that open source somehow needs to be “fixed”. While I think that we have a long way to go in educating the market, we don’t have to fall back into the comfortable commercial software business models to do it.

My favorite posts were people claiming that so-and-so CEO of such-and-such company doesn’t care if software is open source or not, so “open source” doesn’t matter in the marketplace. These are usually the same people who work for companies that have the phrase “open source” plastered all over their web pages, press releases and marketing materials, along with information on their latest commercial software offering. If open source doesn’t matter then why do they use it to market their products? Seems a little hypocritical to me.

The last trend was a renewed call for a billion dollar open source company. Of course these people mean an open source “software” company, but I would consider both Google and Amazon to be billion dollar open source companies. Considering the mess that huge companies who were “too big to fail” have gotten us in to, I wouldn’t be so quick to claim big is better. The argument that big companies will only do business with other big companies, while containing a nugget of truth, fails in the long run. First off, a lot of big companies do business with OpenNMS, and we’re rather small. Second, I often tell potential clients that if you are not improving your operations by using open source, your competitors are, even if it means dealing with smaller companies.

So instead of going to the OBSC and choking on my own bile (grin) I decided to do something infinitely more fun: visit New Edge Networks. They are in Vancouver, Washington, across the river from Portland, Oregon, which is one of my favorite places.

New Edge (an Earthlink company) is a provider of bandwidth and networking services. They have been quite successful supplying private networks at a fraction of the cost a company would pay to do it on their own, and to back those networks with a high level of customer service. They use OpenNMS to monitor and collect performance data and to integrate that information with their internal customer portal (at this writing we are collecting well over a million data points every five minutes). They’ve been a customer for almost five years now.

They are very eager for the provisioning enhancements coming in OpenNMS 1.8 with provisiond, as this will give them a fine, granular control over what gets monitored, how it gets monitored as well as making adds/changes and deletes seamless. This meeting was to start the migration process from their current installation to the new version some time this summer.

I get to see a lot of companies, and the vibe I get at New Edge is that it is a great place to work. Their work environment dovetails nicely with our mission statement, since it is much easier to help customers if you are having fun doing it, and happy customers are more willing if not eager to pay for your services.

Speaking of money, I sometimes feel that I come across as if money isn’t important to me. That’s not true, but money isn’t the most important thing. I run a business, not a charity. This week on Daring Fireball I was reminded of a quote by Walt Disney:

We don’t make movies to make money, we make money to make more movies.

That sums up how I feel about OpenNMS. We have chosen a business plan that lets us continue on and to grow year after year, always making “more OpenNMS”. This means that we will always be chipping away at the commercial software offerings in our space, making it much harder for them to charge their huge license fees. Plus, we have fun doing it. It actually becomes easier year after year for us to increase revenue, until eventually we’ll have a company worth hundreds of millions of dollars.

But if we were to shift our focus away from our mission and on to just making money, we’d soon be out of business. I believe our customers know that our first priority is them, and that is the key to a winning business strategy.

I don’t need no conference to tell me that.

Pragmatism

I have been blogging about my experiences running a company around OpenNMS for over six years now. While I love the medium that is the “blog”, it is not exactly the best vehicle for having a detailed, complex and nuanced discussion. For that nothing beats being face to face, but in a pinch e-mail will do.

Over the last week or so I’ve exchanged some e-mails with Luke Kanies, the Puppet master. In those e-mails I went into a lot of detail over my ideas for open source business models, including (gasp) entertaining the possibility that it might be possible to combine both commercial software and an open source project, a la “open core“, although I don’t think any of the current vendors I’m aware of can pull it off.

The scenario I described was rather “detailed, complex and nuanced” and I know that if I posted it here it would just be taken out of context and I’d be labelled a hypocrite. Luke replied:

This wouldn’t make you look hypocritical in my eyes; it would just make you seem more pragmatic.

That comment really stuck in my head because, quite frankly, I don’t think it is possible for me to be more pragmatic.



At The OpenNMS Group we have no investors – no millions of dollars in VC money burning holes in our pockets. In order to survive we have to worship at the alter of pragmatism. Despite this lack of investment, in 6 years we’ve gone from just me in my attic to eight people in three countries. Gross revenues are up 2000%. The only way to do that is by being as practical as possible, focusing on our mission to “Help Customers, Have Fun and Make Money”.

To me, being practical doesn’t mean sacrificing your principles. If my goal was to make as much money as possible as quickly as possible, I would have done things differently, but I don’t think it is necessary to exploit every possible opportunity to be successful.

I think that many in the business world take the opposite viewpoint. They would rather take every opportunity, use every trick in the book, and gamble in hopes of the quick payoff, rather than take a longer approach that could yield more over time.

To me that is the very opposite of pragmatism.

WebUI's: Are They Worth the Trouble?

Back in my OpenView days I can remember when the first web-based user interface for Network Node Manager came out. People were pretty excited since you could then access OpenView from your desktop without having to use Hummingbird or ReflectionX. It wasn’t very good and didn’t have all the features but it was good enough for some tasks.

But I’ll make the claim that it never got better than the native X11 client.

Now granted, I haven’t really worked with OpenView for many years, and in that time both that product and web technologies have improved, but sometimes I have to wonder if writing a web-based user interface is worth it.

The OpenNMS webUI has long been a weak point for the OpenNMS product. Part of that has been philosophical – the idea is that people are busy and thus having a robust and powerful notification system is more important than a user interface that you put up on a big screen, but also part of that has been that good webUIs are hard to write.

Recently some people have been reporting errors in the webUI that we can’t reproduce. We finally nailed it down to Internet Explorer 7. Something changed and now some of our code breaks on that browser. It used to work, and it works on all the other major browsers, but something changed to break it. It’s hard to write to such a fluid platform.

Also, there is the question of state. Ultimately people navigate in a browser via URLs. Someone might go to a particular page in our webUI, bookmark it, exit the browser, upgrade, reboot, turn off the system, go on vacation and when they come back want to go to the same URL and get the same exact information. It is difficult, and sometimes impossible, to make that work all the time.

Another reason we’ve been thinking about the webUI recently is due to a project we are doing for a client in Italy. OpenNMS has proven itself able to monitor tens of thousands of interfaces, but now we have a client with tens of thousands of interfaces on a single device. It’s pretty crazy. In order to display that information on a node page we’ve started using Ext JS. Also, a lot of work went into making the code perform well (by tuning the database queries, for example) with all of those interfaces.

We’re trying to use it throughout the webUI, such as on the front page for the resource graph drop down.

But I keep asking myself why we bother. Why not just make a Java client? Using webstart we could download it through a browser, and now with JavaFX it is even more transparent since you can “easily drag-and-drop a JavaFX application from the browser to deploy to the desktop”.

The feature list for OpenNMS 2.0 has always been focused largely on the user interface, and I’m pretty certain that JavaFX will be the way to go. It will allow us to deliver a richer user experience with less complexity on the programming side. In order to get there we have been adding RESTful interfaces to all of daemons (via jersey) which will expose all of the information that OpenNMS has to pretty much any outside source, including the user interface.

We are sometimes criticized for writing OpenNMS in Java, but in our experience nothing else out there can provide the same level of scalability (think hundreds of thousands of managed objects) while minimizing the programming effort.

When I was in college I used to tinker with old Mercedes-Benz automobiles. I’d buy them for around US$1000 and rebuild them. I’d start with the engine, then the brakes, then the electrical system, etc. The last job of any restoration was the paint.

However, being in college, I would usually run out of money before I got to that stage and I’d have to sell the car. Having a poor paint job always made it harder to sell – people were not concerned that they could get in the car and drive it across the country – they saw dull paint and assumed it was worth less.

I think OpenNMS gets the same treatment. The mechanics of OpenNMS are solid and proven, but since the webUI isn’t flashy it gets dismissed.

With Sun’s new open source focus and tools like JavaFX we should be able to put a nice new coat of paint on the OpenNMS user interface.

Sometimes the Internet Sucks

We got about four inches (10cm) of snow last night.

What sucks is that since I have broadband at the house, it is still a work day.

Yea.

I remember watching the Brady Bunch when I was a kid, and Mr. Brady would come home from work complaining about a rush job project he had to work on that was due in six weeks. These days six weeks seems like an eternity.

Side note: This was the first show where I discovered a continuity problem. There was an episode where Greg, the oldest boy, wanted his own room. The parents were in bed talking about it when one of them suggested the attic, to which the other replied that it would only work if Greg were 3 feet tall.

However, later in the series, Greg and Marsha (the oldest girl) argue over who gets to move into the attic, which is shown to be rather large (well, for an attic).

I count bullets, too. I knew the “punk” in Dirty Harry wasn’t going to be lucky.

Does Open Source Lessen Risk?

It has been a rainy weekend, soon to turn to snow. If we do see a decent amount of accumulation it will be the second such storm this year, and much more normal than the last few years when we had almost no snow. Those years were also very dry so perhaps we’ll break out of this drought pattern.

So, I’ve been able to catch up on things a bit, and one of those involved an episode of CSI called “Deep Fried and Minty Fresh” [spoilers]. There is a small section of the episode about biodiesel.

In the show, the team arrives at a residence in the desert where a man is converting used fryer grease into biodiesel. The characters are portrayed as stereotypical hippies and tree huggers, which I thought was for comic relief, but one states “It only cost a couple of hundred bucks to convert my truck”. This is actually wrong – biodiesel runs fine in unmodified diesel engines – so I’m assuming the writers really didn’t do their homework and were just taking cheap shots at the long-haired weirdos.

Where I live there is a thriving biodiesel community. It’s rare that you can drive through downtown without seeing a diesel vehicle with a biodiesel sticker or homemade emblems like “bioTDI” on a Jetta or “bioturbodiesel” on a Mercedes. And while some of the people involved could easily be classified as hippies, none are as vacuous as the characters on that CSI episode.

When I asked some of them if they had seen the program I was reminded that most don’t have televisions. However, they do have computers so I wanted to take a clip from that show and send it to them, and while the episode is a couple of weeks old this was the first chance I had to edit it off of my DVR.

The character in the show that referenced modifying his truck was not talking about biodiesel but instead about Straight Vegetable Oil (SVO). It is possible to run a diesel vehicle on vegetable oil alone (biodiesel uses a chemical process called transesterification to actually change the used oil) but it does require a modification to the engine. Basically, a tank is added to the vehicle to hold the used and filtered oil, and the hot water line from the engine is routed through the tank to provide heat. The vehicle is started and run on “petrodiesel” (or “dinodiesel”, etc.) until the oil has a chance to be heated, and then a switch is thrown to send the now warmed and liquid oil into the engine. Before the end of the trip, you throw the switch back to clean everything out before stopping.

This actually might work well in the Nevada desert, but I know from the experiences of my friend Lyle Estill that it can suck around here. First of all, it gets too cold. Second, unless you take a lot of long trips you don’t have time for the “heat-run-clean” cycle. He tried it for a long time before getting tired of being left by the side of the road and he ripped the system out.

People might think that there is a world of difference between communities that have grown up around biodiesel and those around open source, but Lyle has purposely borrowed a lot of ideas from our experiences with OpenNMS. He has built a one million gallon a year plant in town to produce biofuel from waste streams, and he has shared a lot of his experiences through his Energy Blog. You can use his site and his book to learn more about the process, or you can just hire his team to consult with you about your ideas or to have them craft a reactor for your needs.

This is similar to OpenNMS. It’s free and you can download it, use it, modify it and share it, but if you need help there is a commercial organization behind it.

In thinking about these similarities I came to realize that communities, especially open communities, act to minimize risk. If I wanted to try to wean myself from a dependence on foreign oil for my transportation needs, I could look to the work that Lyle and his team have done and make decisions that would cost me far less than if I tried to explore it on my own. Heck, I can just drive down to town and purchase biodiesel directly from the co-op, and many people don’t have that option.

In much the same way, open source software helps mitigate the risk involved in choosing software. Not only can you “try it before you buy it”, you are free to modify it and you can leverage the experience of all the other users in the community to limit the problems you experience. Heck, if the organization behind the application ceased to exist you could still use and improve the product.

Commercial software doesn’t provide that value. Most of our current energy options don’t provide that value (Lyle’s group was able to provide fuel during Katrina when all the pipelines were shut down, for example). But it is possible to build communities that do.

This is really nothing new. The whole idea of “insurance” is usually based around having a big enough pool that those who use most of the resources are easily supported by the rest of the group, but I’m thinking that open communities create a much bigger pool than closed ones.

Just some more silly thoughts for a cold and rainy day.

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.

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.

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.

It's Pronounced "Duffle Tee See See"

I want to point out a post Alex Finger (OGP) wrote over the weekend.

It has been said that you can divide open source people up into three groups: Those who write open source code, those who pay for open source code and “free riders”. I think that is total crap, and Alex is one of the reasons why.

Alex doesn’t write much code, yet he has been a great contributor to OpenNMS over the years. His career is in IT management (as in managing people and solutions), and he’ll soon take a new position as a CIO. What he brings to the table is a view on open source from upper management.

It is no secret that OpenNMS is usually introduced into an organization from the bottom up (usually, but not always). We don’t have any full time sales people and most of our leads come from people who have already downloaded and installed the software. I don’t see anything wrong with that, but sometimes it is nice to be able to talk to the top people in charge, especially when you want a check written. In order to be successful when talking with those at the top of a management structure, it helps to understand them, as they process information much differently than the technical people I’m used to.

To me an open source community is a lot more than just who writes code. Everyone who uses the software can contribute. But until this weekend I did not have a good model for understanding the process of how one becomes a member of that community.

Alex has come up with something he is calling “the DUFLTCC Cycle”. It’s an acronym that stands for Download, Use, Fail, Learn, Teach, Change, Commit.

Check out his post for the full details. I especially like the “Fail” step. A lot of open source software requires a steeper learning curve than commercial off the shelf products, and usually everyone gets stuck at some point. It’s those that use those failures as a learning experience that, should they overcome them, tend to become some of the more vociferous proponents of the project.

I often paraphrase The Matrix when discussing my open source experience in that it is one thing to know the path and another thing to walk the path. Once you walk the path the use of open source seems to be a no-brainer. But how do you get that across to people who have never even seen the path in the first place? It’s ideas like Alex’s that help, and work like this is as important as any code in a community like ours.