A Working Definition of Platforms

Introduction

Whenever I have a discussion about platforms, the very first item to be discussed is “Well, what is your definition of Platform?” I have a lot I want to say about platforms and in order to do that I need some sort of definition. I’ve defined them many ways over the years and I have a working definition that I’m starting to like, and it is flexible enough to span both business and technology platforms. This definition of platforms comes down to two elements:

  • A platform is a system that allows you to build things and provide home for them

  • A platform captures or abstracts work from the user of the platform.

I’m going to explain this a bit more and show how it is useful to contrast with other ideas.

Building things and giving them a home

Our first criteria for a platform is that it allows you to build things and it provides a home for them. This is a broad definition on purpose because the concept of building and providing a home can be applied in so many ways. An automotive platform allows a manufacturer to create multiple car models that use the same basic chassis and share assembly lines. A container platform like Kubernetes allows a company to build applications and run them. A platform will necessarily allow for building certain types of things rather than being completely general in order to be worth actually using and that leads us to our other criteria.

Capturing and abstracting work

For a platform to be of any use, it needs to capture and abstract work from us, so that we can get on with our primary goal. Operating systems are a good example of this. Back when I was starting out as a sysadmin, it was very fashionable to ask very detailed, low level questions in interviews, like “What is an inode?” or “How does a machine boot?” While interesting (to me at least), these are not things you want to deal with all the time. Operating System Platforms take care of things for us:

  • Abstracting access to hardware resources

  • Abstracting security concerns

  • Capturing housekeeping like starting services at boot

Another example of a platform would be an ecommerce platform that:

  • Abstracts interfaces to payment processors

  • Captures the process of sending order updates

  • Abstracts using a database to create a product catalog

This abstraction and capturing of work is what makes platforms so useful for building and running things. Different platforms will of course take care of different concerns for you and that focus is necessary to keep things from getting too complex.

How does a platform compare to other types of systems?

It helps us because we can look at things like applications and services and decide whether they are platforms or more static things. For instance, a library catalog is an application which allows you to interact with the holdings in a library but you can’t put anything on it (unless you write a book, of course). At the same time, a game like Minecraft allows the user to create fairly arbitrary extensions, so it can be thought of as a special purpose platform. Applications and services can also be component parts of a platform. There might be a service in an operating system that takes care of video processing for other applications, for instance.

Fit for purpose

While there are many platforms to cover building many kinds of things, the fit of the platform to the problem is quite important. You wouldn’t try to build an auto factory inside of a residential home, for instance. The services of the platform, the ones that capture and abstract away our work need to fit properly too. Too broad and the expense of being able to do anything is a huge learning curve and less work captured in the system and more on you. Too narrow for a given purpose and you will be constantly fighting the system to try and get your application to fit. What you thought was going to capture work for you ends up having a high up-front cost. In addition, platforms come in layers.

Layers

A platform is not necessarily a monolithic implementation. You can layer together multiple components that are themselves built on platforms. Take the automotive platform example, the underlying components and manufacturing systems are likely made up from many underlying platforms provided by more specialized suppliers.

Why define things this way?

Starting from a set of basic definitions allows us to build on a solid foundation (a platform, if you will :-) when having discussions about platforms and their benefits. With some additional dimensions it is possible to have conversations about platform choices and the impacts a platform can have on business outcomes.

Summary

To summarize, I am proposing a working definition of platforms as systems that allow the user to build things and provide a home for them as well as abstracting and capturing work the user needs to perform. This definition can work for both technical and business platforms. Having this definition allows us to have a structured conversation about platforms, including their fitness and impact on business outcomes.

I’d love to hear feedback on this definition of platforms. What resonates, what doesn’t?

Previous
Previous

Keys to Success in Platform-as-a-Product: Roadmaps

Next
Next

Shifting Opinions: How Your Perspective Needs to Evolve as You Grow into Leadership