From starting as a DVD rental service in 1997, Netflix has fundamentally changed how we consume content. With close to 240 Million paid subscribers and an ever-growing library of original content, Netflix’s success doesn’t just lie in offering movies and series but also in decoding viewer preferences.
They are constantly improving personalized recommendations and producing binge-worthy content because they are building around the philosophy of user-centricity. This is a great example of having a product mindset - a mindset that treats software as an ever-evolving, customer-centric product.
In this blog post, we will see how to apply this product mindset to platforms and treat your platform as a product. We’ll see how this approach can change the way organizations build and manage internal developer platforms (IDP).
Understanding the Product Mindset
The way we approach building and managing tools and platforms has a profound impact on the outcomes. There are two fundamental mindsets when it comes to building things, the Project mindset and the Product mindset.
The Project mindset has long been the default approach to developing software. It treats each software as a project with clear start and end times. The goal is to deliver a specific set of features within a defined timeline and budget. Once the project is complete, the team often moves on to the next project leaving little room for maintenance and innovation.
For a long time, DevOps implementation, like setting up CI/CD pipelines and Infrastructure as Code, was also done with a project mindset. Teams would assemble to perform these tasks with a fixed deadline, finish it, and move to the next one. This led to different teams working in silos, each with their own DevOps project. This fragmented approach, where each of these projects worked in isolation, lacked a unified vision. A vision to create a reliable and efficient software delivery system.
The Product mindset sees software not as a one-time project but as an ever-evolving, customer-centric product. This shift in perspective has revolutionized the way we build and maintain software, putting the spotlight on constantly delivering value to customers.
Instead, one could adopt the product mindset with a vision for a flexible and automated pipeline bringing all the tools together. By taking such a holistic approach, you can build a seamless, user-centric software delivery system that can continuously adapt to the changing demands.
Key Principles of Product Mindset
There are some foundational beliefs and guidelines that drive successful product development. These are at the core of the product mindset that helps deliver value continuously to users. Below are a few key principles that shape the development, evolution, and success of a product.
The product mindset focuses on crafting a customer-centric experience. It shifts the perspective from inside-out to outside-in, prioritizing understanding customer needs before product development. For instance, Adobe regularly updates its applications suite based on user feedback, integrating new features and improvements that align with how creative professionals use these applications.
“Customers are generally not skilled at discussing problem space; they are better at telling you what they like and dislike about a particular solution” - “The Lean Product Playbook” by Dan Olsen
Unlike the traditional waterfall approach, iterative development involves releasing MVPs and evolving products based on user feedback. Consider Amazon’s product recommendation algorithms, instead of periodic massive overhauls, they use machine learning (ML) techniques to push small, regular updates based on user interaction and feedback to provide more personalized recommendations.
This principle emphasizes actively listening to user feedback and using data to understand their needs and make decisions. Netflix uses this technique to tailor its content suggestions. It analyzes what users watch, how they rate content (like or dislike), their viewing history, and offers content that aligns with their viewers.
“As customers use your product to make their lives better, they will face new challenges and desire new goals and outcomes” - “When Coffee and Kale Compete: Become Great at Making Products People Will Buy” by Alan Klement.
In the product mindset, cross-functional collaboration is critical for delivering a well-rounded, complete product. Teams with varied expertise work together to enhance the product. Netflix fosters collaboration between UI designers, developers, and user experience researchers and combines design expertise with technical insight and user feedback to create an intuitive and user-friendly streaming interface.
Ultimately, these and other principles of product mindset empower product development teams to create, adapt, and innovate, driving user satisfaction and loyalty.
Platform as a Product
In this section, we explore the fusion of the product mindset with platform development and its relevance. Treating platforms as products shifts our focus from tooling to user-centric experiences.
Benefits of treating the platform as a product
Treating a platform as a product right from the start helps build a platform that is efficient and effective. Below are some of the benefits of treating the platform as a product.
Enhanced developer productivity
By putting developers at the center of your platform, you provide them with tools and features tailored to their needs. This approach results in improved developer productivity, making them more efficient. For instance, adding an AI-based code review assistant can boost developer productivity by automating the code review process and allowing developers to focus on building features and writing high-quality code.
Treating platforms as products streamlines development and ensures quicker delivery of features. This reduces development cycle times and enables quicker responses to changing requirements. Your platform can provide your developers with pre-built templates, libraries, and cloud integrations, reducing the time it takes to launch an application.
Continuous improvement through iterative development
A product mindset encourages iterative development, which allows your developers to use a platform that is constantly improving by providing them with new features and enhancements. For example, your platform can provide new frameworks or integrations with different tools with each update allowing your developers to be equipped with the latest advancements.
Streamlined feedback loop
A product-focused philosophy results in a more efficient feedback loop. Developers can provide feedback relevant to their needs that is promptly addressed. This results in a platform that is more closely aligned with the developer’s expectations. For instance, your development team can request improved integration with version control systems, and your platform team can take this and provide integration with the tools that developers need.
By treating platforms as products, your developers reap the benefits of tailored tools, efficient workflows, faster development cycles, and feedback-driven platform evolution.
However, there are a few considerations that you need to consider to treat your platform as a product. We discuss those in the following section.
Considerations for Platform as a Product
Treating your platform as a product is not a one-time solution, it involves careful consideration of various factors that ensure long-term success. Just as LinkedIn continually refines its recommendation algorithm to ensure users receive relevant connections and job updates, we will look at some considerations toward the development, maintenance, and evolution of platforms as products.
Prioritize the development of a user-friendly and intuitive platform interface that resonates with the workflow and preferences of the developers who will be using it. For instance, if your development team builds mobile applications, the platform can offer a mobile emulator and testing environment to streamline the development process.
Create a robust feedback mechanism for developers to submit suggestions and report issues. This empowers developers to actively participate in shaping the platform’s features and improvements. For instance, when developers report a bottleneck in the platform’s build pipeline, platform engineers can address this by optimizing build processes and reducing waiting times.
Build the platform with scalability in mind, ensuring it can easily accommodate the growth and evolving needs of your development teams. For example, as the number of development projects increases, the platform should seamlessly scale to provide the best experience to your developers.
Documentation and training resources
Have comprehensive documentation and training material in place that help developers to effectively use the platform’s features. For instance, provide developers with detailed documentation on using the platform’s CI/CD integration service in their code repository.
Create a channel where developers can engage with a community for issue resolution and knowledge sharing. An example could be a platform’s Slack channel where developers discuss best practices, troubleshoot issues, and exchange tips for optimizing performance.
Regular updates and releases
Chalk out a clear product roadmap and regularly communicate release updates with new features and improvements based on the evolving needs and preferences of developers. Just as software libraries release new versions with enhanced capabilities, your platform should adapt to provide developers with the tools and technologies they need
Keeping these considerations in mind helps build a robust foundation that focuses on developer productivity, collaboration, and satisfaction.
Let us now look at a few success stories of some platforms that were envisioned as products and have now become the gold standard for platforms.
There are a lot of organizations that have built platforms for their teams, however, there are a few that used the platform as a product philosophy. These platforms have not only redefined the way we look at developing platforms but have also set high standards for platforms.
Netflix Platform as a Service
Netflix has many services providing a suite of functionality. While most of them are deployed onto a JVM, the end-users (developers) are not familiar with this. Further, they observed that engineers sometimes copy-pasted code snippets which led to version incompatibility.
After careful consideration, they came up with a Netflix PaaS that provides functionality for critical elements such as Remote Procedure Calling (RPC), service discovery, application runtime, and tooling. These are “paved roads” or “golden paths” that offer standardized components, automation, and tooling, eliminating version incompatibilities and missing components to name a few.
By considering the developer experience as a core component, Netflix’s PaaS not only optimizes technical aspects but also champions a culture of empowerment, innovation, and shared responsibility among development teams. Read more about Netflix PaaS.
Backstage at Spotify
The team at Spotify surveyed their developers and they realized that their onboarding process was too lengthy, with new engineers taking over 60 days to make their tenth pull request. Recognizing that their developers were their customers, they prioritized understanding and addressing their needs.
They realized that lack of documentation led to inefficiency for new joiners, and there were a multitude of similar services, each tailored to different needs leading to confusion. This research led them to build Backstage, their internal developer platform. They quickly recognized that their developers were their customers, so they prioritized understanding and addressing their needs.
Today, Backstage internally is used by over 250 teams to manage more than 2000 services and 300 websites. Moreover, the internal evangelism and inner sourcing have led to over 200 engineers contributing to Backstage by building more than 120 plugins. This underscores the importance of understanding and catering to the needs of internal users in treating a platform as a product. Read more about the Backstage story.
By adopting the product mindset and treating your platform as a product, organizations can enhance user satisfaction, accelerate time-to-market, foster iterative development, and create a more responsive feedback loop. This shift in mindset enables organizations to prioritize user-centricity, streamline development processes, and achieve more efficient and effective results in platform development.
Having built platforms for customers in various domains, we truly understand how to build a platform with the correct mindset, tools, and technologies. Reach out to our platform engineering experts, and let’s explore how we can create a platform that truly serves your goals.
Exploring Platform Engineering? Read the other blogs from our Platform Engineering series:
Building a Platform? Download our free Platform Engineering OSS Reference Architecture eBook!
Also, do share your thoughts on this blog post and platform engineering in general with me. Connect with me on LinkedIn or Twitter.
References from books