“We are a platform company” — VC pitch
Whenever I hear this utterance I get curious to understand what this person thinks that means. Sometimes it ends up being related to wanting to be a platform company, but that is besides the point. If you really do end up being a platform company, then one key aspect of a great one is patience.
If you are fortunate enough to grow a business that has success, you now have producers and consumers working with you (I will switch to developers and users because I think about developer platforms :). Congrats! Just one small thing though….. it may start to feel like you are driving a boat vs. racing a Ferrari, and you need to account for that.
Hopefully you got into this situation carefully and have plans for keeping momentum and moving the ecosystem.
I once got stuck in a boat off of the Florida Keys. Everyone had forgotten that it was a full moon, and the tide came out quickly. This meant that we had a boat sitting on shale, and we had to slowly push it as fast as we could to catch up to the water.
The tides are always moving in your business too, and you need to make sure that you have a way to keep moving ahead of them. You could also argue that your role as a platform is to be the ocean, and thus you need to keep the tide moving, nudging the boats in the right direction.
To do this nudging correctly you need to be able to:
Communicate the vision of the platform
Where are you going? Why?
Keep the vision updated and get into the rhythm of “we are going over there!”, “remember when we said we were going over there? that time is coming!”, “we have made the change so you can go there, but haven’t broken you yet, but really…. time is running out!”, “ok, it’s really painful for you to not have made this change…. the warning signs are flashing”, “done.”
Have a connection to developers
How well connected are you to your developers. If you have an important message to get out to them, how many of them get it? Far too often a platform is shooting out UDP messages that get missed, and developers don’t even have the information to do the right thing for them and our users.
This can be really tricky. We have many ways to communicate, and most of them are lossy in some way, or don’t reach the right people on the other end. You can broadcast to email, or you can put messages in consoles, but do they reach a general “admin” account?
Knowing that you have a lossy protocol is important, and puts the burden on you to re-try across the board, and capture when there has been real action. There are plenty of basics to get right such as having the same messages reach the various touch points. E.g. can the central console messages reach developers in the tooling that they live in each and every day? Do the various tools even get the same message across? Often the answer is…. sub-optimal.
Have a connection to users
Do you have good control over the platform that the user actually has? Can you update it and secure it? Just as the connection to developers is key, so is this.
By moving the developers you keep upgrading the experience for users.
By moving the users you give reason for developers to prioritize.
By moving them both, everyone progresses, hopefully leading to much success for all
The patience part
Once you have a plan on how to keep momentum, you still need to acknowledge that you will probably have to be patient. Your platform priorities may not always totally align with those of developers and users.
With both, there are incremental updates which can work nicely (smaller changes) unless they are too small to prioritize.
With larger efforts you are reaching a new level, and you may find yourself running into a natural cycle. E.g. it’s been a few years and there is enough value to be had that the product team is ready to rewrite a large part of the system, giving them a chance to jump to the next level.
Now, building the next generation of primitives (and tools and ….) takes a long time.
A great example of this is the recent upgrade of web primitives. Alex Russell gave a talk on the multi-year journey, which is a great example of looking to the future and plotting all of the dots that will get you to a new location whilst bringing incremental value along the way.
It is fascinating to think back to some of the individual items and how the community has gone from “nah we don’t need that” to “man, it is so much more fun to build on the Web now with these primitives!” — I am looking at your ES2015!.
The larger you get as a platform, the more wrinkles you get, and you run into Hyrum’s Law:
“With a sufficient number of users of an API, it does not matter what you promise in the contract, all observable behaviors of your system will be depended on by somebody.” — Hyrum
This is where you can run into the feeling of momentum slowing, but you have to press on.
Sometimes this slowness is partially an issue of perception. When you are small you can see big movements in percentage terms, and you get excited (and ignore the small base). When larger the percentages can feel smaller, but the absolute change can be massive. A momentum change for a huge mass is a huge change, but it may not feel it, and there is always so much that you want to do.
We see perception issues with new platforms too. We humans are awful eye witnesses, and we are dreadful and remembering time periods. When a new computing model pops up, we forgot how long the last one took to really take and we want instant success. We see how obvious it is “we knew this would happen, because Star Trek!” and rush. Instead we need to remember that it takes time to truly bake in something new, and instead of rushing for “fake” adoption we need to nail use cases that add true value and build from there.
We also like to simplify and think in linear terms. Platform A begets Platform B begets Platform C. In reality platforms often evolve and, importantly, work together. This means that new paradigms are often accessories and amplifiers of current platforms….. and that is OK! Having and vs. or isn’t a bad thing.
Have the vision, have communication in place, measure the right thing, and be patient.