Building an effective and technical product team — Platform Engagement
At the USA TODAY NETWORK, underneath the software that thousands of journalists use to deliver the news to millions of monthly visitors is a cloud platform that our Platform Engineering teams are tasked with ensuring is reliable and scalable every day. Over the past couple of years, as our organization has changed and grown, we came to realize that we would need to make a big change to continue supporting our platform the way we need to.
2018 | What did Platform Engineering look like?
In January of 2018, the Platform Engineering team became part of the Product Technology division to better align with the products delivered on our platforms.
This transition enhanced our visibility into other teams’ projects and timelines. Quarterly planning improved, with the consolidation of our capacities to one place, and we benefited from better communication, collaboration and teamwork across the entire enterprise.
But the change from a self-service platform — where we relied on teams to create their own resources — to a product support platform came with challenges. Internal platform teams were unable to efficiently progress with their engineering efforts as they were too busy resolving support tickets. As the year came to an end, we knew we had to make a change.
We decided to form a brand new team.
November 2018 | Introducing the Platform Engagement team
The Platform Engagement team’s mission is to help solve customer support issues while providing guidance and support on new services to the platform team and to our customers. Knowing the breadth of questions and the level of support that was going to be necessary, we started the team with senior level team members.
Support
The engagement team handles intake for most incoming platform requests such as on-boarding, resource provisioning requests and troubleshooting questions.
On-boarding: A new developer needs access to various systems (e.g. NewRelic, GCP).
Our Platform Engagement team is responsible for setting up these new accounts, which is a manual process. We are looking into automating our backend procedures for provisioning new users.
Resource Provisioning Requests: A team needs a new cloud resource (e.g. GCS Bucket) for their project.
We have terraform repositories for Google Cloud resources, vault ACL policies, consul ACL policies, etc. Teams are expected to open pull requests to provision new resources, but sometimes they don’t know where to start. Platform Engagement has created documentation for many use cases, but people typically ask for help in our Slack channel.
Troubleshooting Questions:
The Platform Engagement team is responsible for monitoring our Slack support channel and starting the support process. Normally our team is able to help and come to a resolution over chat. If not, they will schedule a meeting or jump on a Zoom session with the user to help.
If the engagement team feels a question needs more expertise from Cloud Engineering or Site Reliability, we reach out to those teams to get further information for the customer. Generally, Platform Engagement continues with the customer until there is a resolution, but occasionally Cloud Engineering or Site Reliability will take over the request.
Engagements
One of the new platform services that Platform Engagement provides to platform customers is engagements. Development teams can request an engagement for various platform related initiatives such as: assistance with on-boarding to Google Kubernetes Engine (GKE), troubleshooting connectivity issues in development pipelines, on-boarding teams to Fastly’s edge dictionaries, and much more.
Our team of four typically handles two to three prioritized engagements per quarter, while also picking up smaller engagements (less than three days) throughout.
TPMs
Technical Product Management is a new responsibility for the Platform Engagement team.
Cloud Engineering is our largest platform team. They are responsible for GKE, vault, consul, Apigee, AWS, GCP, and so much more. They’ve been able to build out these amazing products and features without a project or product manager for a while now, but we felt there could be a stronger focus on a few key technologies. This is where our TPMs were born. Each member of the Platform Engagement team is responsible for representing as a TPM for a Cloud Engineering initiative. There are four TPM efforts the engagement team is working on:
- User Lifecycle Management: Every company has user provisioning. We’re working on more automation with new users.
- Resource Lifecycle Management: Terraform all the things! Resources provisioned for projects should have corresponding Hashicorp Terraform files so that we know what was provisioned and the current state. We do a good job when it comes to GCP resources, but we’re working to solidify these processes around our non-terraform environments.
- Vault: Vault is a secret management system developed by Hashicorp. Our current TPM efforts have us looking into things like making Vault HA, improving interactions with vault, and more.
- Consul: Consul is a service discovery and key/value store also developed by Hashicorp. We’re very strong users of the key/value stores but we’re looking at moving away from using Consul for service discovery.
First six months
When we first created the Platform Engagement team, we knew we were up against a backlog of support, documentation, and on-boarding tickets that our Cloud Engineering, Developer Solutions, and SRE teams had been unable to tackle. We helped recreate most of our platform documentation from various locations, moving it to a shared Confluence space, as we on-boarded multiple teams to the Google Cloud Platform as well as our container platform (GKE).
Our team today
It takes a remarkable engineer to understand the breadth of technical responsibility on the Platform Engagement team. Pair that with the TPM efforts, that engineer must also have an abundance of technical curiosity, a certain amount of organizational skills, and the ability to champion their initiatives.
Want to know more about our Platform Engagement team? Look for an interview series where we’ll chat with team members about why they joined the team, what they see as the most challenging aspect of their role, and where they see the team in the future.