In this part of our series, we will jump into the structure and makeup of a well-rounded platform engineering team. If you’re joining us now, be sure also to check out the previous entries:
Part 1: The State of Cloud-Native Development
Part 2: Platform Engineering as a Solution to Cloud-Native Complexity
Part 3: Getting Started With Platform Engineering
Part 4: The Anatomy of an Internal Developer Platform
But before we jump into the roles, responsibilities, and skills needed to build a platform engineering team, we should provide some framing of the underlying principles that define high-performing teams. Let’s jump right in.
Platform Teams Are Product Teams In platform engineering, we often get wrapped up in the technological intricacies - the architectures, the tooling, and the cutting-edge methodologies. While these elements are critical, they're just a part of the puzzle when building a high-performing platform team.
One strategic component that often gets overlooked but proves instrumental to success is treating your platform team similarly to a product team. This isn't just overlapping workflows or shared tools; it's about embodying the DNA, structure, and mindset that make product teams successful and applying it to your platform team.
Developer-as-Customer Mindset: Like a product team, a platform team needs to focus on its users - in this case, developers. Deliver a platform that solves their problems, not one that showcases tech prowess. It's about making their lives easier.
Cross-functionality: Your platform engineering team should be as diverse as a product team, with a mix of skills - DevOps, SREs, Security, UI/UX for developer portals, and even Product Management for roadmap planning.
Lifecycle Ownership: Like product teams owning the end-to-end lifecycle of their product, platform teams must own their platform's lifecycle, from design to deployment to iteration. This creates a sense of responsibility and fosters accountability.
Feedback Loops: Product teams live by user feedback. Similarly, platform teams need to crave developer feedback. It's not about building it and letting it loose; it's about continuous iteration to meet evolving developer needs.
Metric-Driven: Product teams have KPIs to measure success. Likewise, platform teams must keep a pulse on developer engagement, platform usage, and performance metrics. Know what success looks like and measure it relentlessly.
Now, there are nuances. Unlike product teams dealing with external customers, platform teams work with internal customers - developers. Thus, they must focus on the external-facing components (APIs, CLI, developer portal) and the internal platform mechanisms.
Also, while feature development can be a big win for product teams, it's often about stability and reliability for platform teams. Downtime isn't just a hiccup; it can bring your devs to a standstill.
In essence, thinking of your platform team as a product team creates a disciplined, user-focused approach - an absolute necessity when building a successful IDP.
What Roles Make a Platform Team? Setting up a platform team is akin to bootstrapping a product team. You have a blend of roles aimed at delivering a singular, high-performing product: your IDP. Let's break it down:
Platform Engineering Lead (PEL) - They act as the Product Manager for your platform. Responsible for aligning the platform's vision with organizational goals, the PEL guides the team, prioritizes development tasks, and ensures smooth operations.Platform Engineers - Your team's developers who build and maintain the platform. Depending on your IDP complexity, you might want specialists (CI/CD, Kubernetes, Security, etc.) or generalists adept at juggling multiple responsibilities. They're your foot soldiers.Site Reliability Engineers (SREs) - They're your guardians. SREs ensure the IDP is highly available, reliable, and efficient. They contribute to building and maintaining automation tools for system health, performance monitoring, and disaster recovery.DevOps Engineers - These folks are your link between Platform Engineers and SREs. They streamline the software delivery process by developing CI/CD pipelines, managing infra-as-code, and liaising with development and operations.UX/UI Designers - Yes, even in platform teams! They ensure the IDP is intuitive and user-friendly, primarily focusing on your end-users, i.e., your developers. They work on crafting a seamless DevEx.Technical Writers - Often overlooked but essential. They document your platform, onboard new users, and inform your existing ones about updates and best practices.Like a product team, a successful platform team needs a balance of vision and execution. It's all about delivering value to your customers - in this case, your developers. Each role is a cog in the machine, ensuring your IDP is robust, efficient, and user-friendly.
What Is a Platform Engineer?
A Platform Engineer is a developer's wingman, their best tool in the toolbox, and a silent superhero in the shadows. They're the ones who get their hands dirty with the nuts and bolts of the organization's infrastructure, paving the way for developers to focus on their core, high-value tasks - creating features and solving business problems.
Technically adept, these engineers are masters of a varied skill set. They are well-versed in cloud services, comfortable scripting in languages like Python or Go, have a strong understanding of network and server architecture, and are proficient in automation and configuration management tools like Terraform or Ansible. They are adept at container orchestration (think Kubernetes) and are hands-on with CI/CD pipelines, version control systems, and monitoring tools.
The role of a Platform Engineer extends beyond technical competencies. They are stewards of the internal systems, responsible for defining, implementing, and maintaining the platform that allows the development team to thrive. They are the mediators between the code that developers write and the infrastructure that code runs on, ensuring a smooth journey from development to deployment.
Mindset-wise, a Platform Engineer adopts a product-centric viewpoint. They see the platform as their product and the developers as their customers, striving to enhance the developer experience. They are proactive, always identifying areas for improvement, automation, and optimization. They think in terms of scalability and reliability, planning for a future where the organization's needs can differ drastically from today.
In short, a Platform Engineer isn't just a role - it's a mindset, a set of skills, and a crucial part of any organization aiming to boost its efficiency and development velocity. These engineers are key to building a strong, resilient IDP, facilitating collaboration and productivity across the organization.
Things to Consider When Hiring Platform Engineers Hiring the right people is arguably the most critical part of building a successful platform team. While the role of a platform engineer may seem straightforward on paper, finding individuals who genuinely fit the bill can be a steep challenge. Before you start your hunt for platform engineers, there are a few things you should consider or be aware of.
Supply-Demand Gap : The platform engineering discipline is young, born from the DevOps and SRE fields, which are already competitive talent markets. This translates into a tougher hiring environment for platform engineers. In your talent acquisition strategy, factor in a longer hiring timeline, higher salaries, and potentially wider search geographies.
Skill Transformation : Platform engineers often transition from being DevOps engineers or SREs. Look for candidates who can evolve from an operations mindset to a product mindset. They should exhibit solid experience in infrastructure but also a keen understanding of the developer's needs and workflows.
Holistic View : Unlike their DevOps and SRE predecessors, successful platform engineers have a panoramic perspective of the tech landscape. They can dive into code, debug infrastructure, design APIs, and empathize with developers. During interviews, test for this mix of skills and perspectives.
Hard Skills : Typical hard skills for platform engineers include experience with Kubernetes, Docker, Terraform, CI/CD pipelines, cloud services, and programming languages like Go, Python, or Ruby. Ensure you have technically adept interviewers who can assess these skills.
Soft Skills : Don't overlook the soft skills. Given the cross-functional nature of the role, communication, empathy, problem-solving, and leadership skills are critical. Incorporate behavioral interview techniques to evaluate these.
When hiring platform engineers, don't just look for a list of tech skills. Seek out those rare unicorns who can span the developer-infrastructure divide, and you'll have the foundation for a strong platform team.
Up Next: When Is the Right Time to Implement an IDP So far, we’ve covered most of the theory behind platform engineering and how to go about it. One key question remains: When is the right time to actually consider implementing an IDP?
In the next part of our series, we will get into the weeds and give you pointers on what signals to look for that indicate the need for a platform.