Building software results in enabling other builders, or in providing a pre-built application to end users. But what if the application becomes extensible?
At a basic level, there is clear and distinct divide between a software application and a platform. But in other cases, each product can become a little bit of both and blur the lines. Let’s start with simple cases.
Defining traits of an application
An application, or app, is built for end users with a pre-defined purpose. Of course no app is ever complete in functionality. It may never be completely finished, and therefore, never be feature complete. For lack of perfection which does not exist, it can be feature-rich and complete by meeting the specifications that product owners create.
The documentation for an application covers installation, configuration, as well as steps to accomplish each task that it automates or enables.
Most of the time, the app creator defines the use cases. For example, a sales pipeline application fulfills the purpose of tracking open opportunities, and for teams to collaborate around their successful closing. But sometimes, customers use products in ways the creator did not anticipate. For example, the same sales application can be used for post-sale servicing. You can open a ticket using the opportunity object, and close the case in a similar fashion you would close a sale. Another example is for recruiting candidates. You can use the sales app to track the progression of candidates through the recruiting pipeline just as it did sales prospects. Close on the hire, close on the sale. Of course there are some nuances, and that’s why software companies can sometimes leverage much of an existing app they created, to create another one and target it to a different market.
Defining traits of a platform
On the other hand, a platform is built for developers, which extend it by creating applications. In economics, a platform is often referred to as a two-sided market. On the first side, you find customers. On the other side, you find application developers. In the brick and mortar physical world, a shopping mall is a platform, dealing with consumers on one side, and merchants or store owners on the other side.
The documentation for a software platform focuses on teaching developers how to build apps. It does not dictate specific use cases, which are for developers to invent.
In software platforms, the app developer invents the use case, that is, what problem(s) the software solves. It builds the workflow and the documentation for the layer they create (the end user documentation). Naturally, each platform tends to have its own orientation: Apple’s App Store is a platform for phone mobile apps, while Salesforce’s Appexchange is a platform for business applications delivered over the internet.
Sometimes, developers expose the underlying platform their app is built on. This is the case when they resell it, or lightly embed it in their product. Other times, the app embeds the platform at a deeper level, and end users are never exposed to it. An example from the database business is the deeply embedded OEM scenario: the database ships inside an appliance or a product, and the users of that appliance or product
Is an extensible app a platform?
An application can acquire platform-like features when it becomes extensive. For this to work, the points of extensibility must of course enable the publisher of the application to create extensions, but also third party developers. It is the latter group which constitutes a new side in the now two-sided market.
At this point, the extensions marketplace will turn into a platform, provided it enables a wide enough range of new use cases, functionality, and that the platform creator produces an effective documentation for developers.
The main difference with a standard platform, is that in this case the core application is required. As a result, it tends to narrow the range of innovation possible.