Building a product platform
Designing for reusability, flexibility and extensibility
This month I am leveraging platform capabilities to launch a new product. Over the years I have developed the "Lemmid" platform, a set of building blocks that allow me to swiftly develop new products. Designing a platform takes some extra considerations, but if you follow some simple rules you can do it yourself!
What is a platform?
Simply put, a platform is something that you can build upon. The key thing that separates a platform from a simple product is that the platform can do (or become) other things that were not originally envisaged at the time of its initial design.
Modern smartphones with their hardware capabilities and respective app stores can be considered platforms. The platform enables all kinds of originally unforeseen functionality by enabling developers to use the platform's capabilities in novel ways and in new combinations.
Reusability, flexibility and extensibility
If you're designing a platform you must take special consideration for reusability, flexibility and extensibility. In a sense you're designing for an unknown future. To understand how to design a platform it is a good idea to have a look at Duplo bricks.
The simplicity of a Duplo brick is deceptive, yet the design is incredibly brilliant as it enables:
- Reusability: Take a brick, use it somewhere and when you're done, you can take it out and use it somewhere else.
- Flexibility: Even a single Duplo brick can be used in numerous ways, you can connect it to other bricks creating many different combinations.
- Extensibility: The standardised studs on Duplo bricks allow easy extensibility: new and future parts can connect to existing bricks if they incorporate the same "stud standard".
These three design principles enable the Duplo bricks to become a platform, enabling the creation of new things. If you're designing a platform you can think of these Duplo bricks. The components you create must support the "platform principle".
The best way to design a platform is to focus on a single brick. It will be the elementary piece of your platform, imagine how it can connect to other pieces and how you'll standardise that (inter)connection. If you get this right, you'll be amazed how easy it becomes to incorporate new and novel ideas.
Over the years I have developed the "Lemmid" platform, it is a set of digital building blocks that provide a foundation for pretty much any product I develop. This includes apps, websites, webshops and even games!
The platform is designed as a set of micro services that share a common interface and design principle. Each piece is "unaware" of its siblings in terms of design: they're locally scoped and as simple as possible. They can only connect to each other using a standardised protocol that I designed to be as simple as possible, too.
For instance, there is a "Lemmid Bill"-block that is capable of sending bills. To "whom and what" is unknown for this block, other pieces can use the "Bill"-block send digital invoices. It can be reused and it works for invoices with things on them that I haven't even imagined yet.
Another example is the "Lemmid Manager"-block that is capable of managing content. It is used in multiple ways by different products that I created. Sometimes it is used as a website content management system and sometimes it is used to manage a product catalog (driving webshops). It is capable of managing content for sites and apps that I haven't created yet!
Leveraging the platform's capabilities
The food ordering app, known as "Lemmid Store", that I created on top of the Lemmid platform leverages its capabilities by using the individual building blocks to:
- allow stores to be online: web server, domain name registration, dns links, etc.
- allow stores to be filled with products: managing texts, prices, product photos, product categories, etc.
- allow stores to accept orders: check capacity, accepting customer information, processing payments.
- allow the authentication of store owners: to secure store management.
- allow the commercialisation of the product by sending bills
- allow new customers to sign on
Take a moment to consider if you're building just a product or if it could become a platform by itself. If the latter is true, you may be wise to design for the future and embrace reusability, flexibility and extensibility.
"I love it when a plan comes together" is exactly what I think if I am able to leverage my platform's capabilities. Launching new products and being able to utilise the power of existing building bricks is "nice", to paraphrase the same Hannibal Smith from the A-team.
Did you enjoy this post?
If you found this content useful,
consider showing your appreciation
by buying me a coffee ❤️😋: