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

rw-book-cover

URL: https://engineering.atspotify.com/2020/08/how-we-use-golden-paths-to-solve-fragmentation-in-our-software-ecosystem/
Author: Gary Niemen

Summary

“His spice-induced visions show him a myriad of possible futures where humanity has become extinct and only one where humanity survives. He names this future ‘The Golden Path’ and resolves to bring it to fruition.” The above is a snippet taken from a Fandom summary of Frank Herbert’s 1976 science fiction novel, Children of Dune. [...]

Highlights Added July 17, 2024 at 11:02 AM

Rolling back six or so years, Spotify was (and still is) committed to an agile engineering culture with autonomous teams. With all the advantages that brings, it also brought forth complexities, including a fragmented ecosystem of developer tooling where the only way to find out how to do something was to ask your colleague. ‘Rumour-driven development’, we endearingly called it. ([View Highlight] (https://read.readwise.io/read/01h7184p8knscw3wsygq4b80am))

The Golden Path — as we define it today — is the ‘opinionated and supported’ path to ‘build something’ (for example, build a backend service, put up a website, create a data pipeline). The Golden Path tutorial is a step-by-step tutorial that walks you through this opinionated and supported path ([View Highlight] (https://read.readwise.io/read/01h71879zj4bc1k617zs7kengp))

The ‘blessed’ tools — those on the Golden Path — are visualized in the Explore section of our internal developer portal, Backstage. Filtering is available per discipline.
([View Highlight] (https://read.readwise.io/read/01h71882qgm4hgzkjrk6za52p5))

Clearly defined audience
We write the tutorials with a clear target audience in mind: new engineers at Spotify. This lets us assume a certain knowledge level and informs how we explain things ([View Highlight] (https://read.readwise.io/read/01h718a0sa0xmnddk3fn37377z))

It is really important to know and communicate the purpose of the tutorials. One of the mistakes that we made was losing sight of this purpose. Engineers (and me and my team for that matter) started to ask: What are they? Are they a how-to guide? Are they to show best practice? Are they for education? Are they a reference? Are they all of the above? ([View Highlight] (https://read.readwise.io/read/01h718ekbyqxgx04zg591gsjne))

It is really important to know and communicate the purpose of the tutorials. One of the mistakes that we made was losing sight of this purpose. Engineers (and me and my team for that matter) started to ask: What are they? Are they a how-to guide? Are they to show best practice? Are they for education? Are they a reference? Are they all of the above? ([View Highlight] (https://read.readwise.io/read/01h718ekc7qm88w7jv2v4f8pk3))

The Golden Path is the opinionated and supported path to build your system and the Golden Path tutorial walks you through this path ([View Highlight] (https://read.readwise.io/read/01h718mardz26za53mp4n5x9s8))

The tutorial is a step-by-step guide. We are careful to include every step — click here, press enter, and so on — even if doing so can be tedious for the writer and appear cumbersome for the reader. The alternative would be to miss steps and, if you think about it, that’s much more likely to cause confusion. Also, step-by-step is a good way to get clear sight on how long your actual Golden Path is. ([View Highlight] (https://read.readwise.io/read/01h718n3774pskznkyyqhakjez))

A complaint that we often get is that the tutorials are too long. I am not the combative type, but my response is always the same: The tutorials just reflect the actual Golden Path. That’s what we need to shorten. In other words, as a Platform organization, we need to make the actual Golden Path easier to follow and with fewer steps ([View Highlight] (https://read.readwise.io/read/01h718p9kqhc39dbt8865433mw))

As mentioned above, we have one Golden Path tutorial per engineering discipline.
([View Highlight] (https://read.readwise.io/read/01h718q2bxa9e19s3bz8v4cvs9))