Product thinking and platform engineering
2 May, 2024
Platform engineering is the practice of building and maintaining internal platforms and infrastructure to enable product teams. Platform teams act as enablers, providing self-service tools and capabilities to empower other teams. These teams consist of individuals with deep expertise in cloud technologies and infrastructure. For platform teams to be truly effective, they must adopt a customer-centric, product-oriented mindset. This means understanding the needs and pain points of their internal "customers" – the development teams they serve. By focusing on user experience, self-service capabilities, and continuous improvement, platform teams can better align their efforts with the goals and challenges of the teams they support.
Developers are the Customers
From the perspective of a platform team, development teams are their primary customers. While the end-users are the customers of the business, the platform team's purpose is to uplift and accelerate development teams, enabling them to deliver value to those end-users more efficiently. The platform team's role is to provide the tools, infrastructure, and enablement necessary for development teams to excel at their jobs.
Golden Paths and Paved Roads
Golden paths, as described in Google's Site Reliability Engineering book, are the documented, recommended approaches for accomplishing specific tasks or meeting particular requirements. These paths are thoroughly tested, secure, and optimised for efficiency and reliability.
Paved roads, on the other hand, are a broader set of guidelines and best practices that allow for more flexibility and customisation. While not as prescriptive as golden paths, paved roads provide guardrails and direction to ensure consistency and adherence to certain standards.
Effective platform teams strike a balance between golden paths and paved roads, providing clear, well-documented examples and templates (golden paths) while also allowing for controlled flexibility and customisation (paved roads). Platform teams can provide these templates via git repositories, libraries via internal package managers, or self-service systems which automate the provisioning and/or deployment of pre-built products. Documentation and real-world examples are essential for enabling self-service and ensuring that teams can effectively navigate and utilise the platform.
Guardrails
Platform teams should work closely with security teams to ensure that the artefacts and templates they provide are secure by default. The goal should be to achieve templated repeatability, where secure, compliant configurations are baked into the platform from the outset.
Security is a shared responsibility, and platform teams play a crucial role in embedding security best practices into the very fabric of the platform. By collaborating with security experts and incorporating security principles into the platform's design and implementation, platform teams can help development teams build secure applications more easily.
Key Principles of Product Thinking for Platform Teams
To truly embrace a product mindset, platform teams should adhere to the following principles:
-
Understand your users (internal product teams):
- Conduct user research, gather feedback, and develop user personas to better understand the needs and challenges of development teams.
- Prioritise features and enhancements based on user needs, rather than technology preferences or assumptions.
-
Deliver value incrementally:
- Release new platform capabilities frequently and iterate based on feedback, rather than pursuing big-bang releases.
- Focus on solving immediate user problems, delivering value quickly, and refining the platform over time.
-
Measure and optimise:
- Establish key metrics to track platform adoption, usage, and success.
- Continuously improve the platform based on data and user feedback, rather than relying solely on assumptions or opinions.
Building a Product-Centric Platform Team
To successfully implement a product mindset within a platform team, organisations should:
-
Hire for the right skills and mindset:
- Look for talent with experience in product management, user experience (UX), and engineering.
- Foster a culture of user-centricity and continuous improvement, where feedback and iteration are valued.
-
Establish product management practices:
- Define a clear product roadmap and backlog for the platform, prioritised based on user needs and business goals.
- Conduct regular retrospectives and planning sessions to continuously improve and align the platform with evolving needs.
-
Collaborate closely with platform consumers:
- Maintain open communication and feedback loops with development teams.
- Treat development teams as customers and partners, not just consumers of the platform.
- Involve development teams in the planning and prioritisation of platform features and enhancements.
By embracing a product mindset and fostering a culture of user-centricity and continuous improvement, platform teams can better support the needs of their internal customers and drive greater efficiency and innovation across the entire organisation.
Photo by Lorenzo Herrera on Unsplash