Nonsense about Open Source

Engineering | Rod Johnson | June 12, 2007 | ...

The production of nonsense on open source is a highly competitive field. However, I've just come across something that raises (lowers?) the bar: a post by an OpenLogic blogger entitled What's your time worth?

It's not a long piece, which is handy, as it makes it easier to deconstruct paragraph by paragraph. I'm focusing on enterprise Java, about which I can speak from experience.

The blogger gets to the point right away with a concise statement of why she doesn't understand open source in the enterprise:

Developers that work on open source software typically have day jobs that pay pretty well. So they work on open source software for free and write code during the day for big bucks.
Wow, I thought we'd got beyond this "hobbyist" idea years ago. Let me quote some statistics about Linux, from a 2004 article called Linux is now a Corporate Beast. The emphasis is mine:
Dispelling the perception that Linux is cobbled together by a large cadre of lone hackers working in isolation, the individual in charge of managing the Linux kernel said that most Linux improvements now come from corporations. "People's stereotype [of the typical Linux developer] is of a male computer geek working in his basement writing code in his spare time, purely for the love of his craft. Such people were a significant force up until about five years ago,” said Andrew Morton, whose role is maintaining the Linux kernel in its stable form. Morton said contributions from such enthusiasts, "is waning." Instead, most code is generated by programmers punching the corporate time clock. About 1,000 developers contribute changes to Linux on a regular basis, Morton said. Of those 1,000 developers, about 100 are paid to work on Linux by their employers. And those 100 have contributed about 37,000 of the last 38,000 changes made to the operating system.
That's 97% of commits coming from people paid to work on Linux. And that transformation has corresponded with the increasing penetration of Linux in the enterprise. Looking at the most successful complex projects in enterprise Java, such as Spring, Hibernate and JBoss, shows a similar picture. All of these are overwhelmingly written by developers who work for the companies behind them. Volunteerism plays little part. As a result, those products have exhibited rapid progress.

The post now moves onto economics--or, to be precise, an attempt to argue that the development of open source software is divorced from economics:

So does that mean if I get paid $50/hour at work I'd rather help the local school set up their network for free rather than take a job setting it up for $10/hour? As strange as it sounds, I think it's true. As a volunteer doing it for free I get more control (I can leave at any time), more prestige (I'm helping!), and more recognition (I'm not a lowly flunky, I'm a cool volunteer.)
This explains exactly why the model advanced in the blog doesn't make sense. If enterprise open source relied on volunteerism, developers would be prone to leave at any time. Let's suppose I'm a Top 10 bank. How would it make me feel imagining that the development and maintenance of my mission-critical software was tied to the enthusiasm of hobbyists? As for prestige and recognition: Sure, that is important. Most people who do outstanding things are motivated by recognition to some degree. And employees need recognition as well as salary. But if you make that the main motivation it's a recipe for disaster in the long term. What happens when something someone does is disappointing and gets rewritten? Does that person go off in a huff? What happens when the work isn't "cool," like writing documentation or reproducing an obscure bug on an esoteric environment? What happens when developers motivated by individual egos come into conflict--a likely situation if they are self-selected by ego size? There are numerous examples of projects that have fallen apart due to such conflicts. What happens if a developer has to stay up all night to help diagnose and resolve a Tier 1 production problem for a customer with a support contract? How do 24x7 SLAs work, without an investment in follow-the-sun support capability?

Developing high quality software requires an effective team of dedicated individuals. Those people need to stick around, and that requires a viable economic model. Developers need to pay for mortgages, school fees, gas and all the other costs of modern life, and it's naive (or worse) to try to duck that issue and leave it to the employers offering "day jobs." Few people will be able to make an open-ended commitment of personal time to support a project; they will want their work to have economic benefit to them. (And why shouldn't they: it provides economic benefit to users?) The reason that this matters so much is that the role of open source is becoming way too important to the enterprise to rely on pure volunteerism. As Entiva Group analyst Alex Fletcher writes, "Earlier this year, Gartner DataQuest reported that the compound annual growth rate (CAGR) of open source software (43%) between 2006 and 2011 will more than quintuple that of proprietary software (8%). The firm also projected open source software sales to reach $4.23 billion in 2007, and triple that figure by hitting $13.10 billion in 2010." Unless there's a sustainable model behind open source for the long term, that's an awful lot of potential flaky software.

While Gartner may crunch numbers, the blogger claims that working on open source is essentially outside the realm of economic activity:

As cheap skilled labor all I've done is lower my hourly worth. I've now said I'm only worth $10/hour - I'm working for peanuts instead of helping out someone who needs it
So ideally open source developers shouldn't be paid, because that would drop the hourly rates for their day jobs. We'll get to OpenLogic's payment model shortly, but it seems consistent with this viewpoint. While developers aren't supposed to think about money, naturally OpenLogic isn't outside the realm of economic activity.
I'm not saying this makes sense at all or that it's a good thing but I think it's a reality. What do you think?
I think it's fortunate that this is not a reality, because it makes no sense at all, is a Very Bad Thing and could potentially destroy the software industry.

The blog concludes that:

This is one of the reasons we worked hard to make sure our OpenLogic Expert Community compensates fairly.
So I followed the link to their "Expert Community" FAQ to understand exactly how this works in practice. The interesting answers are:
Do I get paid to be a part of the Expert Community? Yes, the OpenLogic Rewards program pays Expert Community members in points (redeemable for your choice of cash or rewards) upon successful resolution of an incident. OpenLogic charges enterprise for support. OpenLogic's internal technical support team resolves basic issues. OpenLogic, in turn, contracts with members of the community to resolve more complex issues.
Right, so it works like this. OpenLogic hope that enterprise customers will pay them money up front for support contracts. OpenLogic don't appear to believe in paying developers salaries, so they expect that they won't be able to handle complex support issues internally. So in that case they reach out to the "community," and pay only if an incident is resolved. That works like this:
What will I have to do as a Member of the Expert Community? As a member, you will have access to a list of customer incidents that we need help resolving. You can choose which incidents to work on by "grabbing" them from the Expert Community Member portal. Once you sign up for an incident, we ask you to work on it expeditiously until resolution. Most incidents will take less than 4 hours to resolve... Through the OpenLogic Reward program, you will receive 100 points per incident you resolve. If an incident takes an unusually long time to resolve, you can appeal for more points. Points can be traded in for cash (100 points = $100 dollars) or merchandise (such as an Xbox 360). You can also choose to donate your points as cash to your favorite open source project or one of the charities on our list.
So developers only get paid when there are incidents. Despite signing up, they get nothing unless OpenLogic get stuck themselves trying to resolve an issue. Then they get paid at a notional hourly rate of $25. Developers are incented to fix problems as quickly as possible, because they aren't paid to polish or refactor. (Often an incident may require significant rework to fix properly. This is unlikely to happen under this model.) Developers will naturally compete for incidents, as remuneration being targeted at individuals rather than a team can distort priorities. There is no reward for the kind of teamwork that forges and maintains in great software. There is also no real concept of a support team. In a real support team, managers not only consider geographical distribution and shift patterns to ensure that there's always coverage, but also ensure a balance of skills. For example, if there are only 2 developers with expertise in a particular area, there's likely to be a plan to skill up others, and in the meantime they are unlikely to be approved to take holidays at the same time. You can't say to a volunteer "sorry, you can't go on holiday until we backfill you--but of course we won't pay you unless we get a call".

A casual rate of $25/hr isn't a lot compared to developer salaries. However, it may not be so bad because it's possible to join the expert community when you're an open source developer on the make. It's not like you need to have made a big contribution to the project. My emphasis:

What are the qualifications needed to join the Expert Community? You'll need to fill out a brief Membership Application. We are looking for committers or contributors for over 200 open source projects that we support. If you are not a project committer, we will ask for a reference from one of the project committers to sponsor or vouch for you. OpenLogic's Expert Community program is a great way to boost your experience and contributions to a project.
That wouldn't inspire me with confidence if I was a customer. My "support" may be coming from non-committers. So OpenLogic can't guarantee to resolve issues strategically. Dependable support involves the ability to commit to the main tree--as well as, in some cases, branches maintained for a particular revision of customer. It also involves teams rather than potentially very junior individuals. It's unlikely that I will get to the people who actually wrote the code my incident might relate to.

So what's missing here? Let's leave aside the obvious question of fairness: OpenLogic are happy to take the fixed payment upfront from customers without giving the people who do most of the work security of income. (They leave that to the employers in the day jobs.)

There are many flaws in this model, but one huge problem that you can drive an SUV through. Developers get paid only to resolve incidents. No one gets paid to write the software. No one gets paid to innovate. No one gets paid to document. No one gets paid to refactor and improve design. So OpenLogic contributes a big fat zero to sustaining the projects they hope to profit from. From OpenLogic's point of view, that's fine: if one project falls apart they can move onto another one, as they provide similar "support" for all projects. But it could prove little short of disastrous from the perspective of enterprise customers, who may need to run the software they introduce today for years.

The key answer from the FAQ is this:

Can I make enough to do this full-time? At this point, we would not recommend that anyone quit their job to become a member of the Expert Community.
Exactly. We're talking about a rapidly growing part of the software industry that is mission critical. And this model does not give anyone the ability to make a living from developing great software. If the effect of open source is that people can't make a living from developing great software, everyone will end up suffering. You can't divorce the process of maintaining software from the process of creating software.

Perhaps there are areas in which this model makes sense. There are products (largely outside the enterprise space, or in simpler technologies) where volunteers do most of the work. But it makes no sense at all in enterprise Java. The problem is not the notion of aggregation--which can make sense if a company possesses the resources to invest and sustain projects, or partners with others that do--but the idea that an industry can be sustained in disregard of the laws of economics, and that motivating people with games consoles rather than security of income will provide a basis for enterprise quality support.

It's proven that the most scalable revenue around open source software (disregarding commercial add-ons) is in support. OpenLogic's model divorces that entirely from the creation of the software in the first place. That's not the future of enterprise open source -- unless open source has no future.

Get the Spring newsletter

Thank you!

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Spring Runtime offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all