What is Platform as a Product?
‘Platform as a Product’ is an engineering concept that recommends approaching and managing internal platforms the same way as customer-facing products.
Internal platforms are frameworks or core systems used within an organization to streamline and support its business processes, software development and operations. Their goal is to enhance efficiency, collaboration and productivity within the company. However, organizations often struggle to make these systems accessible, intuitive to use and scalable. As a result, internal users, like developers and Ops teams, often experience frustration and difficulties when using them, which impedes business processes and productivity.
Adopting a Platform as a Product approach shifts the focus from treating the platform merely as a technical fix to an internal business challenge, to viewing it as a holistic solution that serves business needs and helps meet business KPIs. As a result, broader considerations are incorporated into the platform’s development, including:
- User-Centric Design - Understanding and addressing the needs of the platform's users. This may be carried out by surveying the users to ask about their pain points and what the impact of solving these pain points could mean from a user and business perspective. The result could be the implementation of design choices such as self-service actions or providing guidance on how to use specific features.
- Lifecycle Management - Addressing various product phases, like planning, development, launch, growth and eventual retirement or evolution.
- Continuous Improvement - Regularly updating and improving the platform based on user feedback, new technology trends and business needs.
- Business Alignment - Ensuring that the platform aligns with and supports the broader business goals and strategies.
When treating internal platforms as products, the business enjoys increased efficiency, better user satisfaction, increased collaboration and accelerated time-to-market.
Why Adopt the Platform as a Product Approach?
Treating an internal platform as a product, rather than just a set of tools or infrastructure, brings several significant benefits to an organization. These include:
- Enhanced User Experience By focusing on the users of the platform, the platform can be optimized for their needs, requirements and preferences. This leads to increased satisfaction, and, ultimately, productivity.
- Increased User Adoption Linked to better user experience is increased user adoption. By openly communicating with users about the platform, addressing users’ key pain points and providing a native feel, users are more likely to adopt the platform and associated tools.
- Reduced Cognitive Load - Cognitive load refers to the total amount of mental effort being used by employees. A product approach to a platform reduces the cognitive load on developers and all users, since it provides them with only the information they need, while guiding them through the process they need to perform.
- Streamlined and Efficient Processes - Packaging all features and tools that users need in an intuitive and user-friendly way, while guiding users through the process, reduces friction and increases collaboration. This helps speed up internal processes and increase efficiency and productivity.
- Better Resource Utilization - Platforms that are managed as products tend to use resources more efficiently, whether it’s computing power, human resources, or financial investments. They are continually optimized and adjusted based on user feedback and performance data.
- Stronger Security Posture - Treating the platform as a product usually involves integrating security practices into the lifecycle of the platform, enhancing the overall security posture of the applications and services built on it.
- Data-Driven Decision Making - Platforms managed as products often incorporate analytics and performance metrics, enabling data-driven decision-making for improvements and investments, both in the short-term and the long-term.
Platform as a Product Best Practices
Adopting a "Platform as a Product" approach requires adapting customer-facing practices to the internal platform. Here are some key best practices for implementing effective platform product management:
- Prioritize the needs and feedback of the platform's users. Regularly collect feedback and iterate on the design to ensure it meets their needs effectively.
- When developing and deploying the product, assemble a diverse team with a mix of skills, including development (platform engineering - see below), operations, security, and UX/UI design, to ensure the platform addresses a wide range of requirements and perspectives.
- Employ agile methodologies for continuous improvement. This approach allows for adapting quickly to changing needs and incorporating feedback regularly.
- Design the platform with scalability in mind to handle growth and varying workloads. Ensure flexibility to adapt to new technologies and changing business needs.
- Integrate security practices from the beginning. Make sure the platform complies with relevant industry standards and regulations to protect data and operations.
- Continuously monitor the platform’s performance. Use analytics to gain insights into usage patterns, areas for improvement, and to make data-driven decisions.
- Provide comprehensive documentation and training resources. This helps users to understand and effectively utilize the platform, while reducing learning curves.
- Create an environment where users and developers are encouraged to suggest improvements or innovative features, fostering a sense of ownership and continuous evolution.
- Build in incentives that will encourage platform adoption by users. For example, golden paths that show what to do or gamification.
The Internal Developer Portal as a Product
An internal developer portal is a user-friendly interface to the internal developer platform, simplifying and abstracting the complexities involved in software development. It is an accessible interface to the tools developers need to build and develop software. For organizations taking a Platform as a Product approach, using a Portal makes sense as it caters to developers’ needs by providing them with the right abstractions and promoting golden paths.
An internal developer portal that takes a product approach comprises the following four key pillars:
- Developer Self-Service Actions - Allowing developers to perform various actions like deploying service versions, modifying feature flags, or spinning up environments without navigating through multiple platforms. Self-service simplifies processes and enhances developer autonomy. This will empower users to perform actions without waiting for assistance, implement automation for common tasks and make the platform straightforward to use. This approach enhances efficiency and reduces bottlenecks.
- Software Catalog - A centralized repository for all software-related information, including microservices, cloud resources, CI/CD data, and more. The catalog serves as a single point of access for developers to view and understand all software entities. It is kept up-to-date and acts as a source of truth.
- Scorecards -These are benchmarks for each element in the software catalog, measuring quality, production readiness, and developer productivity. Scorecards help set engineering standards, trigger alerts, and support strategic initiatives.
- Automation - Automation leverages the software catalog to increase efficiency and responsiveness. For example, it can be used for alerting on changes in scorecards or catalog entities, initiating actions like issue creation, and automating routine tasks like resource cleanup or incident escalation.
Portal as a Product Best Practices
- Identify the real needs of developers and understand what abstractions are required for them to be as productive as possible.
- Focus on driving end-to-end experiences for each use case rather than focusing on individual elements such as the software catalog or automations.
- Select a smaller subset of use cases that cover the real needs of the organization - similar to a minimal viable product (MVP) approach.
- Consider the managers’ needs with the same MVP approach.
- Use a ‘Jobs to be Done’ framework to identify, define, categorize and manage customer needs as a way to ensure the product adds value and will succeed in the market. Identify the jobs or tasks we want developers to accomplish based on their actual needs.
- Plan roadmaps and sprints, evaluate success metrics, and continuously refine the portal, just like a consumer-facing application.
- Comprehend the team structure within the organization to identify workflow interdependencies and tailor portal adoption strategies.
- Rather than using a big bang approach, customize the rollout to align with the goals and structures of your teams.