Engineering platforms and golden paths: Building better developer experiences
Oct 19, 2023
auto_awesome
The podcast discusses the importance of engineering platforms in organizations. It explores various types of platforms and the concept of developer experience. The importance of defining missions for platform and infrastructure teams is emphasized. The benefits of being a product steward and aligning best practices are discussed. Measuring the outcome of achieving business objectives and the responsibility of developers in uptime management are also covered.
Building and maintaining a platform team can increase productivity, efficiency, and quality within an engineering organization.
Focusing on developer experience leads to increased productivity, improved code quality, and a smoother deployment process.
Deep dives
Defining a Platform Team and its Purpose
A platform team is a group of people within a company who are invested in delivering tools to help other teams perform their jobs more effectively. This centralization of certain aspects of a role is believed to be more beneficial than distributing it among multiple teams. The platform team's responsibility includes managing the cloud infrastructure, creating tools and processes for deploying and scaling code, and providing software engineers with the best tools to write, build, test, and deploy code. The success of the platform team contributes to increased productivity, efficiency, and quality within the engineering organization.
Different Types of Platforms
Platforms can be categorized into three general buckets: business platforms, API platforms, and infrastructure platforms. Business platforms focus on providing services like Uber, while API platforms offer a collection of services for others to use. Infrastructure platforms, which are the main focus of this discussion, involve deploying code and providing development teams with tools and processes to ensure the smooth operation of the software. The platform team's responsibility extends to the entire developer experience, including tools like the integrated development environment (IDE) that enhance productivity and simplify the development process.
Developer Experience and its Importance
Developer experience encompasses numerous aspects, including efficiency, satisfaction, and quality. A positive developer experience leads to increased productivity, improved code quality, and a smoother deployment process. Happiness is an aspect of developer experience, but it is not the sole measure. The developer experience is a key consideration when evaluating the success of a platform team. It involves providing engineers with effective tools, seamless workflows, and a smooth process of deploying and running code. Focusing on developer experience ensures engineers can focus on problem-solving, leading to satisfaction, productivity, and improved end-to-end software operation.
Defining Mission and Vision for a Platform Team
A platform team's mission and vision should align with the business objectives and the needs of end users. For instance, a platform team responsible for availability may define a mission focused on maintaining uptime and ensuring reliable services. The specific metrics and goals may vary depending on the context and the business's dependence on revenue generated through the platform. For example, measuring availability minutes and engineering efficiency can help track the team's success. It's crucial to involve the platform team's members in formulating the mission and quantifying its outcomes, creating a sense of ownership and driving continued improvement.
The concept of the developer platform and the discipline of platform engineering have been important in shaping how the industry thinks about enabling developers. But what does it mean to actually build and maintain a platform? How can you ensure it actually supports the people that need it?
In this episode of the Technology Podcast, hosts Ken Mugrage and Rebecca Parsons are joined by Chris Ford of Thoughtworks Spain and Aidan Donnelly, Director of Technology Platform at Personio, to discuss the importance of engineering platforms in organizations today.