There is no shortage of articles about platforms and all other names it is called by (Business Platforms, Platformization, Innovation Platforms, etc.). I have even wrote about platforms in several blog posts:
There is no doubt that platforms will be the future of the software systems we will be using. There is a lot of discussion about what makes a good viable platform. Most of the discussion are around how open the platform is or the strategy of their API or even the viability of their technology stack. Even though all those are ingredients that are required to make a viable platform, I think there are two aspects which do not get discussed very often. The first is the strength of the developer community which builds on top of the platform and the other is the strength of the partners (sales/consulting/training/implementers) community.
Developer Community Ecosystem
Platforms are designed to be extended and this is (or should be) a first class citizen feature. If the platform cannot be easily built on top of, is it really a true platform? With a properly implemented platform, adding additional features or even streamlining a workflow for a specific market, industry or user is relatively easy.
For a platform to be easily extended it will require an API (Application Programing Interface) to allow developers to add additional functionality to solve a specific problem for a task. The API should provide controlled access to the underlying data model and to various actions from external applications built on top of it.
However, not all platforms are built the same. Some only provide a very small subset of APIs which can limit what can be extended. Also the APIs can be very convoluted and difficult to use which will increase the difficulty of something in the platform being extended.
The best way to measure the quality of the APIs and the right amount of openness of the platform is to look at the developer community. If there is a healthy developer community, then most likely the APIs are easy to use, have great training material, provide the right amount of access to internal data/processes and have many examples.
A good developer community that builds many extensions on the platform is the ultimate way to decide how successful the platform really is. It does not matter what is the strategy of the platform, the technology stack the platform uses or any other criteria we use to critique the platform. A successful platform has a healthy developer community and ecosystem.
Partner Community Ecosystem
The products we are creating these days are extremely complex and require us to take a systems engineering approach and leverage expertise from several domains throughout the lifecycle of our products. The software community is finally converging on the thought that there is no one software company that can solve all your challenges. This is one of the drivers why now most software companies are trying to create a platform instead of a monolithic closed system and why they are pushing the marketing message of “We are Open.”
Just as we realized that we need to use the best-of-breed approach and leverage multiple different software application from various vendors, we need to realize that any partner (seller of the software/Consultant/Implementer/Trainer) does not have all the expertise we will need to define, implement, train and maintain our system within our organization.
The strength of the partner community is often overlooked. However, I would argue that a significant amount of the failed implementations of software is because of the lack of skills of the partner and not the software or users.
I do not think a partner needs to have all the expertise you require in-house but they should be able to bring in other partners with expertise in areas where they lack. Obviously larger partners (bigger companies) may have more expertise in house; however, it does not negate the fact that in certain situations they would still need to leverage other partners.
A partner community which is collaborative and can work together is another important and overlooked area in determining a good platform. Just like software, if partners work together leveraging each other’s expertise the end result for their customer is significantly better. A better result for the users using the platform means the better the platform. This might sound crazy since most technology people think of the platform purely as technology. Even though the technology of a platform might be amazing, without a good partner ecosystem to support it, the platform never reaches its true potential.
Platforms are designed to be extended and built on top of. We can measure a good platform by looking at the technology details of the platform (API, language support, technology stack, delivery systems, messaging strategy, etc.) but I can guarantee that we will never agree on all those details.
Creating a successful platform is very difficult and require much more than just good technology. There is definitely a technology aspect to creating a platform; however, technology is only a portion of what makes a platform successful.
A successful platform will have:
- A good developer community ecosystem to add additional features and/or workflows to solve very specific challenges for users
- A good partner community ecosystem which leverages expertise in other partners to solve users challenges in the best possible way.
Creating ecosystems are very difficult and I have really only scratched the surface in this post. I would like to hear your thoughts on other important requirements that need to be considered for a platform.