Leveraging Software Platforms
Software platforms can be powerful tools to grow a product portfolio and create new revenue streams. But successfully using them can be tricky. This article shares my tips to help you take advantage of your platform.
You can listen to the audio version of this article on Roman’s podcast.
Be Clear on What a Software Platform Is
Different people have suggested different definitions for the term software platform. Let me briefly share mine: I view such a platform as a collection of software assets that are used by several products, as the following picture illustrates.
In the picture above, product A, B, and C are built on the platform and use its assets. To put it differently, the platform serves three different products.
Let’s look at two examples of successful software platforms, syngo and Amazon Web Services (AWS). The former is a platform that standardises how medical images are read, stored, and shared across MRI and CT scanners as well as other Siemens Healthcare products; the latter offers cloud-based services on which other products can be built, for instance, Netflix’ video streaming. In both cases, a range of products take advantage of the services each platform offers.
Consider the Benefits and Drawbacks of a Software Platform
Platforms offer several benefits: They can help grow a product portfolio faster and cheaper and they can help increase revenue. Take a portfolio like Microsoft Office, for example. If the teams developing the different apps all created their own user-interface layers, there would be considerable code duplication, added development costs, and increased development time.
A software platform that standardises the user interaction and offers additional shared services, like saving and opening files, avoids these issues and allows the app development teams to focus on creating the app-specific functionality, rather than having to develop infrastructure code.
What’s more, opening up a platform to other companies, as, for instance, Amazon did with Amazon Marketplace, can create a new revenue source and help diversify the business. In Amazon’s case, the platform enables third-party sellers to sell products alongside Amazon’s offerings and Amazon collects a fee for each third-party sale.
But platforms come with potential drawbacks. I have seen software platforms that grew so big and powerful over time that they became a bottleneck and slowed down the rate at which the end-user facing products could offer new and enhanced features. I have also witnessed a brand-new platform being retired, as it was overly complicated to use and did not meet the needs of the development teams that should have used it.
As these examples show, it is worthwhile to carefully consider if a platform can benefit your business, thoughtfully building it, and carefully managing it.
Treat the Platform as a Product
While a software platform is a piece of technology, it is still beneficial in my experience to treat it as a product in its own right, albeit a technical one: It creates value for the product development teams by making it easier and faster to build their products and it generates value for the business by reducing cost, accelerating development, and increasing revenue. Consequently, a platform should have its own product strategy and roadmap, KPIs, product backlog, and well-designed software architecture that leverages the right technologies.
Make sure, though, that the platform decisions are guided by the needs of the products it serves. After all, a platform exists to help teams build better products faster and cheaper. In other words, the platform strategy and roadmap should be derived from the strategies and roadmaps of the products that are built on it, and its architecture should be designed to make it as easy as possible to use its services.
A software platform, therefore, is more than a set of APIs. It typically requires documentation that shows how the platform assets can be used. Additionally, it may require tools to allow teams to code against the platform APIs. At the time of writing, AWS comes with a cloud development kit that supports .NET and Java, integrates with different IDEs, and hence supports developers to develop AWS-based applications, for examples.
Assign a Platform Owner
If we regard the platform as a product in its own right, then there should be clear ownership and a platform owner, an individual who manages the platform and ensures that it creates the desired value, as the following picture illustrates.
As a software platform is a technical, supporting product, I recommend looking for a senior developer or software architect with a strong technical background who is able to talk to the members of the product development teams and understand their needs as well as empathise with the end users, depending on the nature of the software platform. (This is certainly true for platforms that offer end-user facing services.)
At the same time, the person should have the necessary product management skills to professionally manage the platform and ensure that it does a great job for the users — the product development teams who use its APIs — and the business. One of my clients, a games development company, successfully applied this approach to manage one of its key platform products.
Last but not least, a platform owner also has to work with the individuals who manage the products built on top of the platform — product owner A, B, and C in the picture above — to understand their strategies and roadmaps and discuss whose needs take priority in case of conflict.
Read On …
To read the rest of this article and access the remaining tips, please head over to my website: https://www.romanpichler.com/blog/leveraging-software-platforms/
Learn More
You can learn more about software platforms by attending my product strategy and roadmap training course and reading my book Strategize.
Source: https://www.romanpichler.com/blog/leveraging-software-platforms/