What is a platform
There are many types of platforms. In this series we talk about a platform as a group of capabilities within a company, which enables the customer facing (feature) teams to deliver business value according to their customers needs. This is achieved by offering building blocks in a self service manner to those feature teams. All to gather user feedback faster. A platform is also often referred to as the foundation or infra.
When a company needs to be able to deliver their product much faster and microservices is the best suitable architectural form, the platform team should make it possible for teams to build, deploy and monitor the products created accordingly.
When there is a need to improve the overall quality and security of the company’s products, the platform team should deliver tools that make it possible to easily/automatically give insights and notify whenever a product quality is below the threshold.
Not only tools but a center of excellence
We would be wrong to consider a platform to be just a set of tools. Just like any other product, a platform is only successful and worth the money and effort when it helps the end users reach their objectives and they are satisfied with how it does that.
An extra attention point in regards to platform products is that it is only successful when customers are also using it the right way. Creating means for teams to improve the quality of products is one thing. Making sure that they correctly adhere to quality improving practices and principles is another. This takes guidance and leadership.
Creating awareness and guidance can be extremely effective when initiated and driven from the platform team. Especially since they will ‘eat their own dogfood’ while onboarding the development teams. They will encounter questions, difficulties and bugs first hand. This way they will gather the best possible feedback to improve products and services.
For this to be effective a platform team should be, and behave like, a center of excellence. High performing platform teams characterise themselves with being proactive, outgoing and behave like internal consultants and coaches.
Platform teams as driver of the DevOps maturity
The platform capabilities and the quality of the company’s agile and devops levels can go hand in hand. From a platform perspective it is possible to add new capabilities and quality gates in a very controlled way. We have to make sure however, that the added capabilities contribute to the levels that need improvement. The first step is to have a clear view from what improvements customers could benefit the most. Often these are a combination of speed, quality and security. The two examples I gave in the intro are examples you can think of. Secondly we could look at cost/effort reductions.
An approach that is often successfully used, is to create clarity on the current maturity levels of the continuous delivery processes and investigate which conventions, ways of working and techniques can contribute to the improvements of these levels**. Are there any possible platform tools that can facilitate all of the above? Those should be productised by the platform team. The roadmap of the platform team is steered by the organisational needs to improve.
*Continuous delivery is NOT the goal!
There is quite some risk in using continuous delivery maturity models whenever we do not determine what our customers really need. I mean zero touch deployments sound pretty nice but most companies are not in the position of doing this for numerous reasons. We shouldn’t be afraid to state that level 3 in some parts is exactly the balance that is needed. The models just provide us with some optional routes and best practices.
This article is part 2 in the Platform team are product team series. Part 1 can be found here: Platform teams are product teams – strategy.