Building a Successful Platform
Following from Scaling your business with platform thinking by Thoughtworks, I got a nice list-based set of "tenets" for how to build a successful platform inside an organisation. They resonated strongly with my own observations and experience so I have added those to the tenets as laid out by Thoughtworks here.
See also Platform Pitfalls and Myths.
1. Clear vision and value hypothesis
The first tenet is to have a clear vision of what that platform is to achieve. Additionally, that goal should be aligned with outcomes the overall business wants or focused on delivering value to its customers.
2. Coherent digital platform strategy
Following from the clear vision, we should be able to define the value the platform will provide, measure it and seek to maximise it.
3. Product thinking
A key approach is to treat a platform as any customer-facing product. That is, we should be able to start with early iterations and allow it to evolve based on emergent need.
Where this has not been folllowed we can see:
- time sunk into used features;
- poor design decisions causing blockers later on; and
- potentially a platform nobody actually asked for nor needs (see "Build it and they will come" in Platform Pitfalls and Myths).
Once we avoid the "build it and they will come" mentality -- as would be the case for any customer-facing product -- we are forced to build a platform that unlocks clear value early on, makes people want to use it (avoiding the mandate pitfall) and is resilient to change over time.
A clear change I've seen in successful platforms and tools is the ability to scale back capabilities now available from open source or commercial vendors (where there weren't before). For example, if you provide some CI capabilities that are now available as Jenkins plugins or as features of AWS CodeBuild.
This is key in particular with cloud engineering as many things you need to build as an internal platform are likely to become features of cloud vendors later. I've seen similar with services like Github providing capabilities I've previously built in-house.
4. Team Structures
The emergence of platforms in an organisation might lead to a need to change ways of working across multiple disciplines and teams.
As with Agile transformations, organisations with cross-functional teams benefit the most, particularly when the new ways of working are adopted across all disciplines. Neither Agile nor platform thinking are limited to engineers.
5. Careful with change management
It is a significant change to move an organisation to one that adopts platform thinking. Without proper change management to help buy into the platform and adapt workflows to it, expect adoption not to get off the ground and the value of the platform is never unlocked.