Tuesday, April 3, 2007

Rod Johnson – Understanding Enterprise Java Open Source

A recap of Rod Johnson's Keynote

Although it’s still relatively new in this space, open source has developed unstoppable momentum and is having a big impact on enterprise-level Java. The question is whether it can be to work in the long-term enterprise picture.

For Rod Johnson, the father of Spring, the future viability of open source in enterprise-level Java hinges on two types of activities: consuming and sustaining. If the former becomes the predominant behavior, and many of the common myths surrounding open source are not squelched, open source could actually end up having a negative influence on the industry.

In his keynote address on Thursday, March 29, Johnson offered up two visions of the future. The more obvious vision, and one that is portrayed in many trade rags, is that of “Open Source Nirvana” – in which open source means free, reliable and easy to use enterprise software, and a continuing flow of innovation. The other vision, which he dubs “The Horror of the Open Source Zombies,” sees the open source industry never progressing or maturing. A lack of funding beyond the venture capital and hobbyist levels leads to a lack of competition in the market and, hence, a lack of innovation. Software quality degrades, and open source erodes value.

How could this happen? How did we get here? How should the market respond today to avoid such a bleak future? And what are the dangerous open source myths that must be vanquished?

According to Johnson, the evolution of enterprise Java open source is akin to the stages of life depicted in, of all things, Monty Python’s The Meaning of Life. Following the “Miracle of Birth” (useful, but not exciting) are the phases involving Growth & Learning (traction, innovation), the Teenage Years (getting attention, breaking barriers), Settling into the Job (party’s over, time to look forward). Johnson maintains that we’re just emerging from the teenage years, and to ensure long-term sustainability, we must make sure that the Teenage Years are just a phase.

Ultimately, the problem is rooted in capitalism. Today, the majority of open source projects continue to be funded by VCs, hobbyists, and large corporations. For an industry to succeed, however, it must be funded by customers. Despite popular belief, IBM, BEA, Oracle and other behemoths are not bottomless pits that can afford dabble in open source indefinitely. It’s an interesting space, and they should be there. But will they continue if there’s no profit to be made?

The flood of VC money in the market masks a flawed economic model – one that must be overhauled if open source is going to thrive. To ensure viability, we must understand the model behind open source in the enterprise and identify the misconceptions.

Myth 1: Open source is about commoditization – and the resulting products are inferior versions of “closed source” software.

Take a look at the Spring Framework, a new product category that created a new style of component model that could run in any environment. It brought Dependency Injection and AOP for enterprise services to the mainstream. Far from commodity. And that’s just one example.

Myth 2: Open source software is magically created by the community.

This one maintains that all you need is a lot of developers – much like, “If an unlimited number of monkeys bang away on an unlimited number of typewriters, eventually one of them will come up with the complete works of Shakespeare.” Sure, you might get volume, but zero innovation. Quality products require innovation, leadership and vision. The reality is that the work is not terribly exciting – and is often downright boring and unpleasant. Consider Linux. Ten years ago, it was largely the domain of hobbyists, but as it gained a foothold in the enterprise, the model behind it also changed. Today, most Linux code comes from large corporations, which are increasingly outsourcing and offshoring development efforts.

Myth 3: Developers code for fun.

Bottom line: enterprise software development is not a part-time job. Quality software for mission-critical apps comes from high quality coders. These coders are people – with lives, families and ambitions. They are also in demand, which means they can pick and choose their jobs. No one commits indefinitely for the pure satisfaction of coding.

Myth 4: Open source software is free.

Face it, nothing is free at the enterprise level. Market forces still apply. Viable projects must be supported by viable businesses with solid commercial underpinnings.

The key to the success and long-term viability of open source in enterprise Java is in the rewarding of intellectual property creation. Open source does not suspend the laws of capitalism. Bubbles come and go, but market forces always reassert themselves. So why would intellectual property creation go unrewarded in open source?

Johnson identifies three types of behavior that effective separate IP creation and monetization, which include:

  • Self Service – Customers who support themselves get inferior service, and are ultimately hurting the long-term potential of open source.
  • Exploitation – Companies bundle open source into projects without giving anything back – often competing with the creators of the IP they consume. “Copyleft” licensing – forcing those who make modifications to contribute them back – isn’t the right approach for most open source. The right approach involves partnerships and education.
  • Aggregation – Aggregators support multiple projects, but do not lead, contribute or sustain. They have no involvement in the open source communities, and are not involved with the leadership or roadmap of products they use. The aggregation model is based on the assumptions that open source is generated by hobbyists who don’t care about money, that open source is about integration and not IP creation, and that the creation of IP isn’t very difficult. Aggregation may work in commodity open source, but not for the type of highly innovative products found in the enterprise.

So how do we use the evolution of the market to help with long-term viability? Johnson encourages all to analyze activities surrounding open source in terms of consuming and sustaining. Sustaining activities include contributing documentation and patches, reporting issues, helping users in forums, evangelizing.

It also includes paying.

“Find companies that are driving your preferred products forward, and purchase support or training,” says Johnson. “Customers pay. Contribute or pay – but don’t think you can consume forever without giving back.”