Eclipse has been very successful in developing a common platform for development tools integration. In fact, I believe one of the strengths of Eclipse is the large ecosystems of vendors, individuals and organizations that are building on top of the Eclipse platform. However, Eclipse is not unique in creating this type of platform, for example Microsoft Windows, eBay, Linux, are all considered platforms with strong ecosystems. I think it is interesting to observe why Eclipse and these other platforms have become so pervasive and successful. Can we also learn from these success and begin to create micro-platforms that enable smaller focused ecosystems.
In this, rather long post, I layout some ideas about what it means to be a platform, characteristics of a successful platform, the dynamics of the ecosystem around a platform and finish with how people could develop micro-platforms. I’d be interested in people’s comments and thoughts on the content.
What is a platform?
First, what is a platform? I would define a platform as a technology that dramatically increases in end user value as the number of different participants (suppliers) develops new and interesting content and applications for the platform. For example, MS Windows by itself is not very interesting but add in all of the applications you can get to run on Windows and that is the real value. Similarly, eBay with no sellers makes a pretty boring auction site. The important point is that a wide variety of different suppliers of content and applications contribute to the overall value of Windows and eBay.
Eclipse is example of a platform for developer tools. At the core is a component model based on OSGi but by itself is not very interesting. However, millions of developers are using the Eclipse platform and the gain increase value from the vast ecosystem of developer tools plug-ins that are available.
Characteristics of a Platform
Every technology will not become a platform or even should aspire to be a platform. However, there are some characteristics that indicate their potential success.
1. Commodity / Standard
In most cases the platform is often an implementation of technology that the end consumer realizes very little direct value. In the case of Windows, a desktop operating system is not very useful to end consumers if there are no applications. An eBay auction site with no seller is of little use to the buyers. Similarly, the Eclipse plug-in model is of no use to the developers if no plug-ins are available.
In essence the opportunity to differentiate between different implementations is often low. Therefore, organizations can derive little profit from competing with different implementations.
2. Significant Potential for Downstream Suppliers
A key component of a platform is that significant value is created by downstream suppliers of content and applications. Therefore, the platform must be enabling a community of suppliers that see the opportunity to add their unique value. If the platform is too specialized or presents to the end user a complete solution, the supplier community will not see the opportunity.
3. Exemplary Application
A platform needs to capture a significant portion of the population to appeal to the supplier community. To encourage user adoption, the platform needs to provide a ‘killer application’. Eclipse has gained pervasive adoption in the Java community by providing a Java IDE. Microsoft Windows has Office. Linux has LAMP.
The Ecosystem of a Platform
We can think of three main actors in a platform: platform provider, user/consumers and suppliers. The interaction and relationship between the actors is what defines the ecosystem for the platform. Each actor has a role in the ecosystem and a natural tension between the actors will dictate the health and growth of the ecosystem and platform. Understanding and managing the actors and the dynamics is critical to the success of a platform.
Role of the Platform Provider
The platform provider is the organization that governs the based platform technology. The behavior of the platform provider in relations to the other actors will establish the success of failure of the platform. There are two of key characteristics that a successful platform provider follows:
1. Encourages a profitable ecosystem. The Platform Provider needs to create an environment that allows for suppliers to be profitable. If the Platform provider extracts too much profit, ex. in terms of royalties or license fees, the supplier community will not flourished. Similarly, if the Platform Provider begins to compete, in terms of functionality, with its supplier community, then the health of the ecosystem will be damaged.
Ebay is a good example that has achieved a balanced between reasonable selling fees and a profit model to satisfy its shareholders. Eclipse and other open source communities, ex Linux and Apache, has the advantage of providing royalty free software.
2. An Architecture of participation.
Tim O’Reily coined the term ‘Architecture of Participation’ and described it as:
“architecture of participation” that includes low barriers to entry by newcomers, and some mechanism for isolating the cathedral from the bazaar. This architecture of participation allows for a real free market of ideas, in which anyone can put forward a proposed solution to a problem; it becomes adopted, if at all, by acclamation and the organic spread of its usefulness.
A platform provider must enable an architecture of participation. This is from a technology and governance perspective. If the platform provider is determined to exercise too much control, then the ecosystem will not develop. In my opinion, this has been one of the challenges the Mac community has experienced, when compared to Windows.
In the architecture of participation, you win by letting go. The platform provider gives up control of who participates, what gets built and how it is sold. In place of a vendor controlled strategy, a market economy and ecosystem develops based on the user community wants and needs.
Users / Consumers
For the most part, users or consumers view the platform as being a means to access the content and applications. Initially what attracts the users is a ‘ killer app’. However, overtime they begin to appreciate the value the platform brings in terms of integrating different applications from different suppliers. They also begin to realize the value of choice of suppliers supporting the platform. For instance, the vast number of Eclipse plug-ins for code management system allows individual developers to chose the one the best suits their requirements.
The more sophisticated users also see the potential of actually extending the platform to add value themselves. I can imagine many e-Bay buyers turn into eBay sellers. Similarly, a lot of Eclipse JDT users create their own plug-ins and some find their way back into the community.
To be successful a platform needs to be pervasive with a user community. In fact, I would suggest a platform needs to have more than 50% of a user community before a vibrant ecosystem emerges. The reason being is that until this threshold is meant, the supplier community will remain fragmented.
Suppliers
The Suppliers are who create the incremental value and thus create the healthy ecosystem. The suppliers typically view the platform from different perspectives:
1) A market opportunity based on gaining access to the user community.
2) A mechanism to reduce their development costs by leveraging the investment in the platform.
3) Simplifying their product configurations. Let’s face it; many ISVs appreciate just providing support for Windows, since it reduces their R&D costs.
4) An integration point with other vendors that participate in the platform
The critical success of any platform is the diversity and number suppliers. A successful platform will rally a vendor community. For instance, what Eclipse has done in the Java tools market and the embedded tools market or Windows has done for the desktop market. The diversity is important since it gives the user choice and hence increased value.
Creating Micro-Platforms and Ecosystems
Platforms do not need to be technology that is deployed to millions of users or developers. The concepts and benefits are applicable to other areas, such as large enterprise development organizations, vertical market industries and other functional technology areas. In fact the idea of creating, micro-platforms is becoming easier due to a better understanding of building extensible architectures using SOA and web services and specifications like OSGi. Also, better collaboration tools and open source communities are making it easier to understand how groups can collaborate to build micro-platforms.
It is important to first understand the benefits of building micro-platforms. From a consumer perspective the benefit seems to be choice and integration. They are able to select the content and applications that best meet their requirements from an ecosystem of different suppliers. From a supplier perspective, the main benefit seems to be efficiency of resources; efficiency in terms of supporting just one platform, reusing common implementations and ease of integration with other suppliers. The benefits to the micro-platform provider will depend on the type of organization creating the platform.
1. Micro-Platforms for an Enterprise
Large enterprise IT development organizations have often struggled with how to improve the efficiency of their organizations and integrate different applications that are created by different teams. For example NASA is working on an internal framework, called Ensemble, to share common implementations and integrate applications across the operations team for the Mars Rover command and control system. To me this appears to have some characteristics of a micro-platform.
2. Micro-Platforms for an ISV
Large ISVs often have the problem of delivering to their customers, different products and functionality developed by different development teams. By developing a micro-platform for the product suite, the ISV could reuse common components but more importantly provide common platform that allows their customers to integrate the different products. In addition, the platform can be used to allow third party business partners to integrate with the product suite, enabling a wider ecosystem.
IBM is adopting this strategy for their IBM Rational tools and SAS is adopting a similar strategy for their product line.
3. Functional Micro-Platforms
At Eclipse, a number of ‘functional’ micro-platforms are emerging. Consider the Eclipse Business Intelligence and Reporting Tools (BIRT) project, it is providing a framework for building reports but more importantly allow others to extend and customize the report, via templates. It is still very early stages but you can envision an ecosystem of template suppliers emerging around BIRT. Similarly the TPTP project, enabling testing and profiling tools to integrate around a common platform for managing test cases.
4. Industry Vertical Micro-Platforms
Probably the most exciting area to me is the potential of creating micro-platforms for industry verticals. In fact we are starting to see the emergence of vertical micro-platforms. Gumtree is an open source project that is creating a micro-platform for scientific experiments. It aims ‘to create a highly Integrated Scientific Experiment Environment (ISEE), allowing interconnectivity and data sharing between different distributed components such as motors, detectors, user proposal database and data analysis server.’ Bioeclipse is visual platform for chemo- and bioinformatics.
Micro-platforms for vertical industry may provide an efficient way for organizations, governments, etc to collaborate and innovate around specific industry standards. At a minimum, it seems to be a more efficient way of building vertical applications.
Conclusion
I believe platform and micro-platforms is an interesting perspective of how the software industry is changing. They are a number of large well established macro-platforms, such as eBay, Windows, Linux and Eclipse. The next step seems to be the creation of micro-platforms. I believe the technology and organizational structure to make micro-platforms a reality are in place.
Btw, a lot of the ideas and concepts about platforms have been written about in a variety of publications. Some good ones include a book called ‘The Keystone Advantage’, that provides an interesting perspective of platform providers. An excellent blog post on the success of Microsoft as a platform.