Pave Golden Paths with Platform Engineering
Tags: platformengineering, devops, productivity, softwaredevelopment
Published: 2023-08-03 07:28:49

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.

 

## What are Golden Paths?

The term golden paths has been referenced in software development [as far back as 2009](https://fudge.org/archive/whats-golden-path/); it describes an **opinionated and well-supported path to ‘build something’**. Now, let's unpack the statement:

- **Opinionated**: Golden paths are not meant to be one-size-fits-all solutions. Generally, they are designed to reflect your organization's specific needs and goals.
- **Supported**: Golden paths should be supported by documentation, an array of tools, and training. This will help developers to understand and follow the golden path.
- **Path to ‘build something’**: these paths are not just about the technical aspects of software development. They also include the business requirements and the overall goals of the project.

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.

 

## Advantages of Golden Paths

Following a golden path generally improves quality, maintainability, software performance, and better [developer experience](https://blog.mia-platform.eu/en/how-a-frictionless-developer-experience-improves-software-development). The advantages of golden paths in software development include the following:

- **Consistency across the codebase**: Golden paths provide a standardized approach to development, ensuring that all team members follow the same guidelines and practices. This promotes consistency in coding styles, architecture, and implementation, making the codebase easier to understand, maintain, and collaborate on.
- **Knowledge sharing and onboarding process**: Golden paths serve as a knowledge-sharing mechanism within an organization. Establishing standardized practices facilitates the transfer of knowledge and expertise among team members. New developers joining the team can quickly familiarize themselves with the established supported path, reducing the learning curve and enabling them to contribute effectively from the beginning. The shared understanding of the golden path promotes effective collaboration and enables smoother onboarding processes.
- **Improved quality and reduced risk over time**: Paved roads are established based on best practices and accumulated knowledge, considering lessons learned from previous projects. Following these paved paths allows developers to produce higher-quality, more robust, reliable, and maintainable code. This leads to fewer bugs, easier debugging, and a more stable software product.
- **Better Developer Experience**: “Developer Productivity + Developer Impact + Developer Satisfaction = Developer Experience.” — [GitHub Blog](https://github.blog/2023-06-08-developer-experience-what-is-it-and-why-should-you-care/). With consistency across the codebase and proper knowledge-sharing, developer productivity will increase, impacting the existing software positively, leading to developer satisfaction and an overall improvement in the developer experience.
- **Reduced costs**: The expense associated with hiring can surpass [$40,000 per employee](https://www.forbes.com/sites/jasonhesse/2014/10/30/here-is-the-true-cost-of-hiring-an-employee/). While some of this cost can be attributed to training and decreased productivity during the onboarding phase, a significant portion is incurred during recruitment. When developers of an organization are happy and see the impact of what they build, they will stay long-term and grow, avoiding hiring costs. Aside from retaining developers, the reduced time spent dealing with bugs and security also contributes to lower costs.
 

## Challenges of Golden Paths

While golden paths in software development offer several advantages, they also come with some challenges:

1. **Ever-Changing Best Practices**: The software development landscape constantly evolves, and what constitutes best practices can change over time. The golden path established at one point may become outdated or less effective as new technologies and approaches emerge. Regular evaluation and updates are required to ensure that the golden path remains relevant and aligned with the current industry standards.
2. **Balancing Innovation and Standardization**: Golden paths aim to provide consistency and reliability, but they can sometimes hinder innovation. Developers may feel limited by predefined guidelines, preventing them from exploring new ideas or adopting cutting-edge technologies. Finding the right balance between standardization and allowing for innovation can be challenging, requiring ongoing discussions and adjustments.
3. **Compatibility and Integration**: Golden paths often recommend specific technologies, frameworks, or libraries that work well together. However, integrating these components with existing systems or third-party tools may present compatibility challenges. Careful consideration and testing are necessary to ensure smooth integration and minimize potential conflicts or issues.
 

## Designing Golden Paths with Platform Engineering

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](https://blog.mia-platform.eu/en/platform-engineering-101-all-you-need-to-know-to-get-started) 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](https://blog.mia-platform.eu/en/seven-core-components-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:

- **Streamlined developer onboarding experience**: The IDP should simplify the developer onboarding experience by providing them with the right delivery setup or linking them directly to an external one.
- **Collaborative work environment**: The IDP should support [composability, reuse](https://blog.mia-platform.eu/en/better-governance-through-composability-reuse), sharing, and collaboration among teams and assets. All these features improve cooperation, visibility, and ownership using [innersource practices](https://blog.mia-platform.eu/en/golden-paths-platform-engineering).
- **Self-service workflow**: The IDP should enable the developers to self-serve assets and resources. This includes access to preapproved software packages, CI/CD tools, test and development environments, and end-to-end visibility.

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](https://engineering.atspotify.com/2020/08/how-we-use-golden-paths-to-solve-fragmentation-in-our-software-ecosystem/). 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](https://backstage.io/) — 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.

 

## Best Practices for Implementing Golden Paths

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:

 

**Gradual Implementation**
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.

 

**Continuous Improvement**
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.

 

**User-Centric Approach**
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.

 

## Conclusion

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](https://resources.mia-platform.eu/en/white-paper-why-and-how-to-evolve-into-a-platform-company).

---

This article was written by [Michel Murabito](https://www.linkedin.com/in/mich-murabito/), Developer Advocate at Mia‑Platform.