"Freedom and responsibility" is great for platform engineering.

Jonathan Schneider
|
January 9, 2023
Be free!

Key Takeaways

In the weeks leading up to joining Netflix as a member of the Engineering Tools team in 2014 (thanks again, Mike), I wasn't sure whether to believe the Netflix culture deck, specifically as it related to "freedom and responsibility."

Regarding engineering (specifically, the source code), I'd only ever seen centrally initiated efforts backed by executive sponsorship defeating successive waves of organizational resistance through sheer force of will.

That's the only way, right?

The best solutions emerge when centrally forced change is anti-cultural.

"Freedom and responsibility" allows platform teams to test the value of solutions without the effectiveness bias that being able to force a solution causes.

I saw this first-hand when I unwittingly stepped into a migration engineering role. How do we get teams from Java 6 to 8? Gradle 2 to 5? Framework version 1 to 2?

Diffusion of responsibility causes mass communication as a tool to falter.

I could only imagine code search and reporting. The problem seemed to be one of visibility and communication; the solution was to have more of both.

Some of my colleagues went so far as to create a hack day project that discovered when an engineer made a breaking API change and discovered what other teams would be impacted. They automated the production of one-off videos that began with the title "Here's Who You Hurt Today," followed by a series of profile pictures of engineers on impacted teams, with background music by Sarah McLachlan singing about angels.

All the communication in the world generated minimal action. Why? The diffusion of responsibility leaves nobody with a sense of urgency, which is why we experience internal resistance, even in top-down organizations.

"Do it for me, and I'll accept your suggestion."

Being required to negotiate ("beg" might be a better word?) with product engineers for a change, I heard the same refrain: "Do it for me, and I'm happy to accept the change." But how can I, as a small team member, "do the work" for everyone else?

It led me to an entirely different solution, one I wouldn't have imagined without "freedom and responsibility." It led to mass automated refactoring first with OpenRewrite, which some years later grew into a completely independent company Moderne.

How could other platform engineering functions similarly benefit from this crucible?

Colorful, semi-transparent Moderne symbol breaking apart like a puzzleColorful, semi-transparent Moderne symbol breaking apart like a puzzleColorful, semi-transparent Moderne symbol breaking apart like a puzzle

Back to Blog

Colorful, semi-transparent Moderne symbol breaking apart like a puzzleColorful, semi-transparent Moderne symbol breaking apart like a puzzleColorful, semi-transparent Moderne symbol breaking apart like a puzzle

Back to Engineering Blog