What is a software development golden path? How to get started.

Today, IT teams have access to more tools than ever before, many of which are very similar (or exactly the same thing). Fragmented tooling within an organization can present real problems. Onboarding new team members without a “standard” toolkit can lead to slow ramp up times and add drag to your deliverables. Even with your current staff, tool fragmentation can negatively impact the team’s ability to share knowledge and an individual’s ability to move from project to project quickly. This is where the “Golden Path” comes in. 

According to Spotify, the creators of the Golden Path concept, a Golden Path in software development is: “the ‘opinionated and supported’ path to ‘build something.’” 1

As we continue in this article, think of a Golden Path as a tutorial, leading a developer through the process of building and delivering software. Not how to code, but rather which tools to choose to accomplish their task.

Core principles of a software development Golden Path

Consistency and repeatability in software development

Golden paths are geared to provide better consistency as your team grows. Building new projects and onboarding developers into your organization is difficult enough. Having a standard toolset with which to start, limits the number of decisions to make and takes the guesswork out of the process.

Automated testing and continuous integration practices 

Deciding ahead of time to implement testing and CI practices removes the temptation to “save time” by skipping them. Having these already built into the process makes for better code and faster throughput in the long run.

Deployment pipelines and release management 

Standard deployment pipelines makes for a more succinct deployment story across your organization. With deployment already accounted for, new projects can get started solving business objectives sooner. Also with deployment pipelines and release management taken care of, developer toil caused by manual code releases is virtually eliminated.

Collaboration and communication among teams 

Golden paths allow teams to share knowledge of tools and platforms. With each sub-team, or even each developer, using a different toolset, when someone runs into trouble, they are on their own to solve it. This is lessened with the Golden Path. Team members are able to  help each other when these issues do arise.

Key Benefits of Adopting the Golden Path

Enhanced Software Quality 

Reducing tooling fragmentation encourages consistent and repeatable development practices. When you allow the developers to focus on creating, rather than fiddling with tools, it can lead to fewer defects and better code. With automated testing and continuous integration already baked in before the project gets started, more bugs are found and squashed before making it into a deployment.

Accelerated Time-to-Market 

Efficient deployment pipelines enable faster release cycles. When developers don’t have to reinvent the wheel on each project, they are free to code and release features faster. Further reducing time and effort are streamlined release management processes, which again, are built into the project before any code is written.

Eliminate waste and reduce costs

In a “perfect” world every tool would be open-source, have incredible support, and be free of costs. That is not the world we live in. Depending on the size of your organization, you may be paying licensing costs for tools that have the same function. With a Golden Path, these can be reduced or eliminated.

Implementing the Golden Path in Enterprise IT Environments 

Assessing the readiness of the existing software development practices

Now is the time to look at your own organization and understand how complex your development tooling and practices are. Gather your lead engineers and send out polls to your team to find out what tools are currently being used and for what. It’s one thing to say “my team uses Python” but that isn’t deep enough. To really get a grip on your current state you need to know not only “what language” but:

  • Development environments (IDE)
  • Linters
  • Frameworks
  • CI/CD pipelines
  • Automated testing frameworks
  • Cloud resources
  • Collaboration tools
  • Communication channels
  • Version control systems (GitHub, SVN, etc.)

These questions may yield very different answers from different teams or developers. That’s alright, at this point the goal is to get as much data as possible.

Identifying the core components to establish a Golden Path 

Once you have a handle on the complexity of your environment, you can begin to establish the beginnings of a Golden Path. Start small and with a narrow focus. Spotify chose to narrow their focus to new-hires, with the goal of getting them up to speed as quickly as possible. 

After you decide what you want to focus on, you can begin to establish which components are required to see an individual project through to completion. Be thorough and very specific, leaving nothing out. Document these instructions step-by-step, in a way that leads a person through the configuration process of each component. 

You may be thinking “this sounds like a lot of work!” Well, it is. However, paying for people to sit around guessing on their next steps will cost you more in the long run. If you don’t have the time or the expertise to handle the interviews and write a Golden Path, you could hire a consultant

Leveraging automation tools and technologies to streamline the Golden Path

Now that you have established a few Golden Paths, how do you deliver them? Well, in the beginning of this process you may just want to publish your Golden Path in a central place. Maybe you have an internal site where you point your developers to and they can reference it as they build new projects. That may work for smaller teams (1-30 members), but for larger teams this is going to become cumbersome to maintain. Managing multiple Golden Paths that serve your developers, rather than burden them, will become increasingly difficult to manage as time goes on. 

Enter the “Internal Developer Portal.”

An internal developer portal is an interactive, centralized location where you can store a catalog of your software and the documentation that goes with it. Spotify uses a tool they developed called Backstage. Here you can organize your Golden Paths, documentation, tutorials, and even automation in a way that is easily discoverable by your developers. An internal developer portal allows you to easily update and pivot as technology rapidly evolves.

Overcoming Challenges

Change is hard and there will be some who are resistant to it. This is why it’s important to start small. Small changes over time are easier to digest for your developers. It’s also important to note that the Golden Paths are not prescriptive but are the recommended path. They are the path that is supported. Developers are free to go off script but will lose support or funding for divergent tools, forcing them to make a good business case for leaving the path.

Adopting golden paths is a cultural change as much as it is a technological one. Clear, effective communication about the problems you’re trying to solve can help some resistant developers get on board. Explain the advantages to them and the benefits that their support will bring to the company. You are not trying to take their favorite tools from them but rather support them with all the tools they need to do their job. 

Conclusion 

Golden paths are a great way to organize and standardize. They help build better quality software faster and are a path of least resistance to your developers. When focused around business objectives, they can reduce costs and time to market, helping your organization keep up with changing requirements.

Incorporating the Golden Paths concept into your organization will take time and effort. The result will be developers who understand where they’re going and how to get there. It gives them confidence that they will have the tools to do their job and removes the guesswork from delivering software.

With the many benefits, it’s hard to ignore what Golden Paths might be able to do for your organization. Start with a small proof-of-concept and see how your organization might benefit. 

Footnotes

1 How We Use Golden Paths to Solve Fragmentation in Our Software Ecosystem