I recently met with Rod Johnson, the CEO of Interface21 and the original creator of what has come to be the highly popular Spring Framework for enterprise Java application development.
Rod was on his way to his now-annual Users’ Conference, The Spring Experience 2006, which is being held in Hollywood, Florida starting today, December 7th. This year, more than 400 developers and architects from more than 20 countries convened for three days of 60 technical sessions. These customers (developers and IT architects who use the Spring framework as applications infrastructure for their applications) are, for the most part, developers of large-scale enterprise and commercial applications in many of the world’s biggest firms.
The open source Spring Framework is now in version 2.1. More than one million copies of the code have been downloaded from SourceForge.
The continuing evolution of the Spring development framework is a great example of customer-led innovation, as well as a good indicator of how to “cross the chasm” from lead users to mainstream users as your customer co-designed solutions hit the mainstream market.
The Origins of Spring
In the early days of enterprise Java application development--1999 through 2002--it was difficult to find good examples of success stories, particularly those with best practices you could implement. Rod Johnson describes that time as “a period of spectacularly bad results.” Rod is an IT architect, practitioner, and consultant who wrote a well-timed book, Expert One-on-One J2EE Design and Development, which was published by Wrox in its Programmer-to-Programmer series in October 2002. The book was well received because it hit a chord among developers who had run into many of the issues that Rod was describing and for which he offered pragmatic solutions. Rod’s audience included experienced object-oriented developers, distributed object architects, and J2EE developers who had wrestled with many of the same implementation issues and trade-offs that Rod was describing. His advice was to avoid falling prey to “purist” J2EE solutions, in favor of adopting simple approaches that work.
To accompany the book, Rod provided about 30,000 lines of code to illustrate the points he was making. It was this code that caught the attention of the “lead users”--experienced enterprise IT architects--who read the book. They found a lot of value in the practical framework and examples that Rod provided. As part of its publishing model, Wrox provides an online community forum (P2P). A number of experienced enterprise architects contacted Rod through the P2P forum and asked if they could use and extend his sample code to create an enterprise framework they could use in practice. They wanted the code provided under an open source license. Rod was happy to comply.
Lead Users Co-Designed the Spring Development Framework. The small team of about 20 lead users who helped to bring the Spring Framework to life included experienced architects and developers from a financial services firm in New York to a software house in Austria to a systems integrator in the Netherlands, along with developers from Australia, India, and China. All of the contributors had experience trying to develop enterprise-class Java applications by kluging together their own approaches and frameworks. They liked Rod Johnson’s pragmatic approach and agreed to contribute their own code to a shared framework that embodied the key principles that made a difference in practice, including the core concepts in Spring, such as “Inversion of Control” and “Aspect-oriented programming,” among others.
Johnson Formed Interface21 to Provide Support for the Spring Framework. Rod recruited a few of his co-developers to join him in the business venture to support and enhance the Spring Framework. Interface21’s core developers retain the authority to determine what code is added to each build of the framework and its modules. They make the Spring base code available under a GPL license and the entire framework available under a commercially-friendly Apache license (e.g., contributors don’t have to make all extensions available to all comers). Recently both BEA Systems and Oracle have licensed the Spring Framework for inclusion in their commercial products.
Interface21 is in business to leverage and grow the intellectual capital that its lead user community helps to improve, enhance, and extend. Now there is a core team of about 20 developers (many of them employed full- or part-time by Interface21) whose job it is to enhance and extend the framework.
Lead Users Now Have the Solution They Need to Do Their Jobs. Most of the enterprise developers who now use Spring as the infrastructure for the enterprise transaction systems they’re developing and maintaining no longer have spare time in their busy schedules to contribute to the evolution of the code, according to Rod. They trust Rod’s team to keep up the quality and to continue to evolve the framework. The result is that the solution has reached a level of maturity where lead users are no longer the driving force in the co-design of the product, but they contribute their requirements to the evolution of the product.
New Developers Need More Prescriptive Solutions. As the Spring framework matures and gets more and more mindshare and uptake around the world, it is being used not only by the seasoned architects and distributed object developers who found Spring useful in 2002 to 2005, but also by a new generation of developers.
Rod explains that, for this current generation of developers, Java is their first programming language. They didn’t cut their teeth on LISP or Smalltalk or any of the early object-oriented environments that the 40- to-50-year-old software architects did. Many of the current generation of developers need more prescriptive solutions, Rod explains. “They need architectural enforcement of best practices.” They need help doing the “right thing”–writing application code that adheres to best practices--not just what you learn in a book, but what works in practice, including some of the more simple and subtle principles that make applications written on top of Spring so robust and scalable.
New Business Opportunity in Best Practices Enforcement. “Companies are happy to pay for enforcement of best practices,” Rod explains. “We’ll be offering subscription-based solutions that will provide more prescriptive solutions and enforce those prescriptions.” For a consulting and training firm like Interface21, “consulting in a box” or as a subscription service is a natural evolution.
Additional “Up the Stack” Offerings. Rod Johnson wants to get input from his customers before productizing a new set of value-added solutions on top of the open source Spring Framework. However, he points to a number of requests he knows will bear fruit in the coming year. These include:
- Providing packaged enterprise solutions with the most popular plug-ins.
- Working with system integrators (like cohesiveFT) to provide vertical market bundles.
- Integrating Spring with grid computing architectures and sharing the revenue stream with the grid vendors.
- Providing subscriptions to Quality of Service monitoring.
We’ll be checking back with Rod to find out what he has discovered from his user community--both the lead users and the mainstream users.