Every organization constantly seeks ways to streamline its operations, enhance developer productivity, and deliver exceptional developer experiences. One crucial factor that can make or break these endeavors is the efficiency of their technological infrastructure. To make their technology stack efficient, many organizations have adopted Platform Engineering.
This article will start by discussing golden paths, what they are, their advantages and challenges, and how you can design golden paths with platform engineering. Ultimately, this article will share best practices for implementing golden paths.
The term golden paths has been referenced in software development as far back as 2009; it describes an opinionated and well-supported path to ‘build something’. Now, let's unpack the statement:
Golden paths are often established based on best practices, industry standards, and the accumulated knowledge and experience of software engineers in an organization. They are designed to minimize risks, ensure consistent results, and optimize the software development process.
Following a golden path generally improves quality, maintainability, software performance, and better developer experience. The advantages of golden paths in software development include the following:
While golden paths in software development offer several advantages, they also come with some challenges:
Seeing the challenges associated with golden paths, one may ask, “How can I design a golden path without it becoming a bottleneck in the near future?”. Well, the answer is to design golden paths with platform engineering.
Platform engineering is an aspect of software engineering that majored in designing and building toolchains of workflows that enable developer self-service functions for software engineering organizations in the cloud native era. Platform engineers build and deliver an integrated product, often called an “Internal Developer Platform”, which covers the operational necessities of the entire lifecycle of an application.
An Internal Developer Platform (IDP) encompasses a comprehensive set of tools, services, and infrastructure integrated under a single platform in a manner that reduces the cognitive load on developers while retaining essential context and underlying technologies.
The IDP reduces the cognitive load on developers by abstracting away infrastructure complexities, providing standardized workflows, and automating repetitive tasks. This allows developers to focus more on writing code, delivering features, and improving software quality rather than dealing with tools and infrastructure-related challenges.
Aside from reducing the cognitive load on developers, platform engineering, when done right, provides golden paths that match the preferred abstraction level of the individual developer, who interacts with the IDP layer. Also, improving collaboration and accelerating the software development process along the way.
Platform engineering, when done right, means the IDP should be the “one-stop shop” where developers can find all the tools, templates, and documentation they need with a high emphasis on the following:
Many companies are now adopting platform engineering to pave golden paths in their organizations. Among the first who started this journey, it is worth mentioning Spotify. Prior to 2016, as Spotify grew into a large startup, its agile engineering culture with autonomous teams became a bottleneck which caused fragmentation in their ecosystem developer tooling: this led to the creation of Backstage — An open platform for building developer portals.
Also in 2016, Mia-Platform was founded and become one of the very first product companies dedicated to platform engineering. Mia-Platform has now evolved into an international business that has at its core the creation of enterprise-ready and personalized Internal Developer Platforms.
Implementing golden paths with platform engineering and evolving into a Platform Company requires a deliberate and strategic approach. Also, it is a gradual process that requires reorganization on multiple levels.
From an architectural point of view, it is essential to go through a decoupling process that makes independent the fundamental elements that characterize the infrastructure serving a Platform Company. In addition to this, the following best practices ensure successful adoption and utilization. Here are some recommended practices for implementing golden paths:
Implement golden paths with platform engineering gradually rather than attempting a complete overhaul all at once. This approach allows for better understanding, adaptation, and gradual integration into existing workflows. By taking incremental steps, you can assess the impact and make adjustments as needed.
It's important to note that gradual implementation does not imply a slow or drawn-out process. The pace of implementation will depend on your organization's unique circumstances and objectives. While some organizations may choose to introduce changes incrementally over a longer period, others may opt for a more accelerated timeline. The key is to strike a balance that allows for effective implementation while considering your organization's capacity for change.
Educate and Communicate
Educate your development team about the rationale, benefits, and best practices associated with the golden paths. Clear communication and documentation are essential to ensure that everyone understands the purpose and guidelines. Providing training, workshops, and documentation that explains the principles and techniques involved helps foster a shared understanding and encourages adherence to the golden paths.
Documentation is key
Create clear, concise, and step-by-step guidelines, tutorials, or knowledge bases that outline the best practices and procedures associated with the path. Make this documentation easily accessible to the development team, ensuring that it is regularly updated as new insights or improvements emerge.
Feedback and Testing
Encourage feedback from the developer team and stakeholders throughout the implementation process. Regularly solicit input and listen to the experiences and suggestions of those following the golden paths. Collecting feedback helps identify pain points, areas for improvement, and potential roadblocks. Additionally, perform thorough testing and quality assurance to validate the effectiveness and suitability of the golden paths in real-world scenarios.
Embrace a mindset of continuous improvement and evolution of the golden paths. Actively seek opportunities to refine and enhance the established practices based on feedback, industry advancements, and emerging trends. Regularly review and update the guidelines to ensure their relevance and effectiveness over time. Encourage team members to contribute their ideas and insights for refining and improving the golden paths.
Ensure that the golden paths do not compromise the customer/user experience. While focusing on standardization and efficiency, it is crucial to prioritize the end users and their needs. Evaluate the impact of the golden paths on user experience and make necessary adjustments to avoid negatively affecting usability, accessibility, or overall satisfaction.
By following the above best practices, you can successfully implement golden paths while ensuring effective adoption, continuous improvement, and alignment with user needs. This approach promotes a collaborative and iterative development process that benefits both the development team and the end-users of the software.
This article discussed golden paths in software development, what they are, their advantages and challenges, and how you can design golden paths with platform engineering. Towards the end, this article shared with you the best practices to consider when implementing golden paths.
To truly harness the potential of platform engineering, organizations should invest in robust architecture, cutting-edge technologies, and cross-functional collaboration. From an architectural point of view, it is essential to go through a decoupling process that makes independent the fundamental elements that characterize the infrastructure serving a Platform Company.
To learn more, check out this white paper on Why and how to transform your company into a Platform Company.