I recently had the opportunity to present a talk at the All Things Open conference. I shared about how we are adopting open-source practices at Discover® to get new developers up to speed faster and more efficiently. This blog post highlights the key points from my talk about Golden Paths, including why we think these paths can improve the developer experience at Discover and our use case for developing them with open-source collaboration in mind.
First, the problem
As we sought to create a first-class developer experience at Discover, we kept running into the same challenge: Newly hired developers spent too much time tracking down how to get their environments set up with the right permissions, tools, and access. The tribal knowledge about how to get these things done was not keeping up with the pace of hiring new developers. This resulted in wasted cycles for new developers who couldn't do what they were hired to do: code.
Now, the solution: Golden Paths
It might seem simple, but the answer to our problem was: good documentation. We call them Golden Paths and define them as step-by-step tutorials that walk a user through the opinionated and supported path to build something.
The Golden Paths are more than simple tutorials, though. They approach a specific developer-focused task and provide a singular path for developers to follow to accomplish that task. The singular view stitches together disparate setup guides, tutorials, and READMEs from across service groups in Discover, giving developers one place to go to find what they need.
Three goals of Golden Paths
The ultimate goal of a Golden Path is to make onboarding simpler for developers, so they can start adding value faster. Specifically, the three primary goals of Golden Paths are to:
- Abstract the complexity of the environment to minimize cognitive load. In other words, we want to simplify the process for engineers and developers, so they don't have to spend their cycles merely trying to get the right permissions and tools to work.
- Prioritize self-service over gatekeeping. Teams using Golden Paths are entirely self-sustainable and become self-responsible.
- Decrease fragmentation and inconsistencies. One of the main goals of creating these Golden Paths was to stop rumor-driven development, where the only way to find out how to do something is to ask a colleague. Creating a framework and standards for how to complete common development tasks using Discover best practices ensures that all development teams at Discover use these best practices and high standards in their development.
Our guiding principles
We quickly learned that we needed a few guiding principles to serve as a rubric for each path. For us, we decided that Golden Paths must:
1. Define the task step-by-step-by-step
It's important to note that Golden Paths are not aspirational — they are grounded in the reality of the present, so they must represent what's true and what is required in the present. We strive to include every single step in the process to complete a task.
2. Be extensible
We know that we won’t know the answer to everything, so we need to enable teams to add complementary capabilities that are not covered (yet). Our documentation and style/language guides ensure that teams are extending these paths in a consistent way.
3. Provide a clear way back
While we want these paths to be the opinionated way to complete a task at Discover, we understand that teams are constantly finding new ways to work, so must provide room to walk outside of the Golden Path. This helps us understand when and why a path is not being used and to amend ones that are out of date when teams and tools evolve.
With these goals and guiding principles in mind, we set out to create our first path.
Creating paths that scale
For each path we create, we clearly define the specific audience and their understanding level, and we determine the one thing we want them to be able to do. For us, this translates to: We want new developers to create something based on a technology discipline (such as frontend, backend, data pipeline, mobile client, analytics workload, etc.) in production.
After the audience and task were defined, we engaged the current developers who were doing that task to define the current steps, the gaps to fill in, and future opportunities. In practicality, this looks a lot like asking questions and scouring wikis, repositories, and internal files to find the right documentation.
Open-source principles drive our process
When creating Golden Paths, we are guided by the open-source principles of trust, transparency, and collaboration.
We need the community of developers at Discover to support and participate in the creation of these Golden Paths, so we lead with transparency. Without transparency it is hard to grow a community, so we work to provide meaningful context about where we are in the process, how we got here and where we are going. Having a consistent Golden Path that provides the information and materials necessary for a team to do its best work enables these teams to collaborate and build upon each other's ideas and discoveries. We can make more effective decisions and understand how decisions affect us, which leads to better paths.
As part of building this developer community, we want to empower developers to help themselves. This starts with following Golden Paths to complete tasks, realizing what doesn’t work, and submitting a fix to the process.
Finally, for each Golden Path, we are working to identify the “center of gravity” of community opinions. We want our Golden Paths to be supported by a consensus of members in the community, where we foster productive dialogue about the best way or tools to use to complete a task.
The Golden Paths we’re creating in collaboration with and to support the Discover developer community are being done in an open, collaborative way. They make it possible for new developers to get up to speed quicker and get back to coding and innovation.