DEV Community

Alex
Alex

Posted on

Building a platform is not the same as a product

What software products do you use in your company? GMail for mail and Google Docs for documents, use Jira or another task tracker, Slack for messaging, Zoom or Google Meet for online calls, Miro for online whiteboards, Notion for internal documentation, github or gitlab for working with code, figma for design. Lots of different products and not always easy to integrate with each other. And it would be cool to draw a design in Figma and snap it right into Notion and write it into the team's working channel in slack.

There's a very cool article from HubSpot on how platforms differ from products. Here I'll give some basic thoughts on the difference between products and platforms with my reasoning and examples on Dodo IS.

A product is a set of tools from one company that comes in one generic package, solves 1-2-3 specific problems. When you have a large business, you probably have a lot of different products integrated with each other somehow. Sometimes a product has no integration with others at all and can only work "on its own," solving specific problems.

The key definition of a platform in the article is that a Platform is a set of software, an ecosystem of resources that works for business growth. A platform enables that growth by connecting third-party products and resources. The value of a platform grows as its capabilities and the ability to use a particular product within the platform grows.

Image description

Connecting External Resources

There is one important detail in this definition. It's not just about connected products, but resources in general. It can be outsourced or outstaffed, temporary or permanent, for a specific small project or a big job for years. A good platform is distinguished from a bad platform by the simplicity of this connection, the ability to work independently in your environment, interacting with the platform via APIs.

I'll explain with the example of Dodo IS, a long-implemented example with cash register plugins. Every time we go to a new country, we integrate with local check printers, cash registers, tax office. For the PoS terminal does not matter what country it is in, a check is a check in Africa. But the details of how this check is printed, what information is on it is different. We have created a system of plug-ins and now any such integration can be done independently of Dodo IS, interacting with it through the API contract. We can outsource any number of teams to implement country specific integration. This is how the platform works.

External product connectivity and flexibility

If the platform is the foundation of your business ecosystem, you don't need to be limited to one set of products - you can add and remove new applications and tools as your business grows and changes, without having to start from scratch or deal with complex migrations.

You're not limited to who develops the specific end products. You can do something yourself today and take a ready-made tool from the marketplace tomorrow. Or vice versa, start growing with a tool that is ready and available on the market, and then gradually move into creating your own product, which is better adapted directly to your business.

Dodo has examples of both approaches. The heart of the Dodo IS system is tracking. A system that tells pizza makers what pizzas to make, what ingredients should be removed or added. Tracking we have always developed ourselves, customizing it for Coffee and Doner, but it should be treated as a separate final product. Today it's part of the Dodo IS platform, but it's also a separate end product in the platform that can look like this today and change tomorrow or be replaced by another.

What does it take to make that flexibility work?

In order for it to really work, it's important to keep two key focuses in platform development:

API everywhere. Any interaction between platform products is done through APIs.
Data availability. Decision-making is built on data, the data that one product generates can be used by a dozen other products within the platform. Whether you give this access through the data platform or just expose the API with the data outward is your choice.

Top comments (0)