Software is a team game. Enterprise software application development ‘shops’ (the cute name that engineers like to sometimes use to refer to the programming and supporting operations department) are composed of a number of professionals, all with their own specialisms and areas of excellence.
Even when so-called hobbyist software is built by individuals, many developers working in these environments will engage with online user groups, special interest project collectives or indeed open source software zones and repositories where the community factor is the team itself.
As we know, in the age of cloud and the era of massive datacenters, software is often getting more complex and more convoluted, hence the rise of so many orchestration specialists and observation technology vendors these days. This means a move one (or perhaps several) rungs lower, down to the platform used to power and drive the applications being built – and now we’re forming teams that are focused on working in this space as a dedicated function.
This is the rise of the software platform team.
Looking at what the software platform team does, how its workflows are functioning, where is can be effective and how it should serve the wider elements of the IT stack is a core activity and interest for infrastructure automation company Puppet.
The company’s latest DevOps (developers and operations teams working together) analysis actually comes as a special Platform Engineering Edition. Having passed up the chance to publish a special Christmas edition or some other form of a commemorative New Year report, Puppet has instead opted to attempt to showcase what’s happening in platform departments.
Officially known as Puppet by Perforce (Perforce acquired Puppet in the spring of last year), the company suggests that as long as IT leaders invest in their platform team and refine their product mindset, platform engineering will help them unlock the chance to speed up software deliveries and reduce development pressure. We’ve looked at platform engineering before now and noted that this sector of the IT stack is focused on areas such as serverless computing and automated provisioning – additionally, we are talking about programmable infrastructures and Infrastructure-as-Code (IaC), so what does Puppet think we need to focus on in terms of platform team dynamics?
This research explores the rising popularity of platform engineering and its benefits, with 93% of respondents reporting that platform team adoption is a step in the right direction. The company has previously suggested that a platform team approach is an increasingly successful path to DevOps success at scale. It makes logical enough sense ie scaling a software system is all about vertical growth, horizontal expansion and 360-degree elevation in all directions – it would be unwise to approach any scale boosting project without knowing what your foundations are like… and that’s what the platform engineering team is there for.
What is platform engineering?
The company defines platform engineering as the technology discipline of designing and building self-service capabilities to minimize cognitive load for developers and to enable fast-flow software delivery. Platform teams deliver shared infrastructure platforms to internal users responsible for delivering a value stream – typically software developers and engineers who treat their platform as a product for their users, not just an IT project.
There are several core attributes of a modern platform engineering approach. The most overarching one is having a product mindset, by which we mean that a platform is treated as a set of self-service products that continually evolve to meet developer needs. The platform aims to reduce developer cognitive load and enables the fast-flow of software delivery, where the teams responsible for building value streams can deliver value to their consumers without requiring direct interaction with other teams.
For IT platforms, this approach begins with delivering underlying infrastructure services as a self-service product that are consumed by developer (or ‘value stream’) teams. The design and evolution of the platform should be informed by collaborative organizational learning practices and the usage of the platform internally should be driven by internal evangelism, not via a top-down mandate.
Beefing up the platform stock
“[Our analysis work here] shows that platform engineering can produce meaningful benefits across an entire organization and unlock DevOps success for the enterprise. However, leadership must continuously invest in the platform team, ensure functional feedback loops with users and evolve product management skills in the team, to ensure fast flow delivery and an ongoing reduction in cognitive load for developers,” said Nigel Kersten, CTO, Puppet by Persevere. “As firms beef up hiring for platform teams, they must prioritize product management skills, not just core engineering.”
Overall then, we can infer that an enterprise organization doesn’t necessarily ‘have’ to have a platform engineering team, but if that business wants to be able to grow its IT stack with an effective (collaborative, unifying, efficient) DevOps team that can securely support an IT scaling project… then it kind of does.
“The emergence of platform engineering is a topic we’ve been following with multiple teams and organizations through our Women in DevOps community,” said Sabrina Battiston, community lead, Women in DevOps “We are looking forward to following the trends discussed [here]specifically around how Platform teams are taking ownership of DevOps practices and enabling development teams – and reporting the findings back to our community who can then take it to their respective organizations.”
The platform engineering team doesn’t worry so much about the realm of users’ Graphical User Interfaces (GUIs) and whether or not a web service is usable across Android, Apple iOS and Linux or Windows in a seamless manner – although good DNA at the platform level typically makes that ‘last mile’ of the application or digital service more likely to succeed – instead, there’s rather more focus on areas like system reliability, developer productivity and total software cycle delivery speed.
Platform, it’s a big ask
The platform team needs to have development, operations, product management and product marketing skills, no matter the actual job titles within the team. Undeniably, it’s a big ask.
In what might be a relatively significant mindset shift for many enterprises, the platform team needs to have IT operations expertise, but they do not operate the applications on the platform itself. They are responsible for delivering a reliable and resilient platform that empowers value stream teams to build, release and operate their own applications.
As we build the next 7-years worth of enterprise technology between now and the end of this decade, platform play will be increasingly important. Platform games might have started with Donkey Kong & Super Mario Brothers, but they certainly end up in the cloud datacenter now.
Thank you, Mario, your quest is over – for now at least.