blog

How to build a culture of shipping

The best time to write is when you're excited about an idea. Strike when the iron is hot.

How to build a culture of shipping

Stripe’s a payment processor. A publisher of books about technology and progress. A purveyor of services to register a company, invoice customers, and raise capital.

And, to the folks who worked there, it’s perhaps best remembered for email.

For behind the scenes of the global payments giant, email is the common currency of productivity. “The vast majority of Stripe email remains publicly available throughout the company,” shared the team in 2014. That transparency was built around Google Groups-powered mailing lists around projects, operations, ideas, and more—enough that there were 2.6 email lists for every Stripe employee.

One list loomed above all: The Shipped list. Fueled by the high of a just-completed project, the shipped email helped the Stripe team maintain shipping momentum, celebrate accomplishments inside the team, and draft blog posts and presentations ahead of time.

It’s an email list your dev team might want to copy, and make part of your internal and external dev relations.

Epiphany, execution, email.

Stripe was known for rapidly releasing new stuff. Their changelog lists 95 new things shipped in the first quarter of 2024 alone, from new features and regional support to entirely new services.

“What I miss most about working there is the culture of shipping,” remarked @spudlyo on Hacker News. There’s a momentum of building then sending new things into the wild, a contagiousness to seeing other teams’ work that makes you want to wrap up and ship your own projects.

That spirit was spurred on with the shipped email list. You’d wrap up a project, open your email app, and address a new email to Stripe’s shipped@ Google Group.

“A project in the Atlas team was considered done when a Shipped email was sent,” wrote Zack Steinkamp of his experience at Stripe. But the email itself wasn’t done once it was sent.

“A lot of our blog posts start as [shipped] e-mails, like this one.” said @edwin on Hacker News. Blog posts weren’t the only end result for shipped emails. “Once I was invited to convert one of my shipped emails into a presentation for a company all-hands meeting,” said @spudlyo. “It was perhaps my favorite memory of my time at Stripe.”

The Anatomy of a Shipped Email

“You should send a shipped@ email when wrapping up a unit of work,” echoes Stripe’s Scaling Engineering Organizations guide from their internal defaults.

A shipped email, describes Steinkamp, “summarizes the problem and context around the problem, describes the solution approach (usually with screenshots or screen recordings), and quantifies the impact with metrics.” Those would be highlighted with the project’s background and motivation, how to use the new item, what didn’t ship and why, cool things to know about the process of getting this out the door, along with what’s next for the project. “It helps see the forest for the trees,” says Brie Wolfson of her personal OKR shipped list styled on Stripe’s emails.

That’s not all. Shipped emails also often included GIFs, along with extensive links to learn more, shared @spudlyo. And most emails would wrap up with “a ‘we haven't won yet...’ section where future phases or strategies may be laid out,” said Steinkamp.

You can see traces of the style in Stripe’s Online Migration post. It covers why this problem was important, how Stripe solved it, and unique challenges faced along the way.

Then the kudos would roll in. “That feeling you get when you finish a challenging project, write a great shipped email, and get a bunch of feedback from folks throughout the company is pretty amazing,” shared @spudlyo. And you’d be off to the next project, perhaps jumping into something outlined at the conclusion of your last shipped email. Perhaps, even, you’d kickstart the next project with a draft shipped email; “it's not uncommon for a project to begin with writing (but not sending!) the Shipped email, serving as a north star for understanding the scope and goals of a project,” mentioned Steinkamp.

How to build a shipped list in your team

Stripe’s shipped list relies on Google Groups—which can work if your team’s ok managing an onslaught of both shipped emails and replies.

Another option is to build an internal-facing email newsletter with a tool like Buttondown, which with a Professional plan lets multiple people send messages to your lists. Make an internal list, add each of your employees’ addresses to it, then start sending messages to the list every time something ships. Buttondown automatically saves an archive of your emails so your team can reference them later. With Buttondown’s Zapier integration, you could have your shipped emails automatically copied to Slack (as Stripe does) or any other team chat app you rely on.

That same setup could work for your public-facing developer relations. Edit the shipped email copy to remove any private data or internal references, and tweak the “we haven’t won yet” copy to be a positive hint at what’s coming next. Then send this to your company’s email list as a more human, exciting take on the changelog—with Buttondown’s archive serving as an easier-to-maintain developer blog.

Software isn’t the hardest part of starting a shipped list. Building a writing habit, team-wide, is both the challenge and reward of a shipped list. Start at the top, share interesting stuff in your internal and external-facing lists, then encourage team members throughout your company hierarchy to start sharing. One email at a time, with luck, your shipped list will turn into a new company tradition.

“I feel energized when someone I’ve sponsored sends an announcement that they’ve shipped their work,” said Stripe Payments Products Tech Lead Michelle Bu. Your shipped list might have those same knock-on effects, leading to a faster shipping cadence throughout your firm.

Writing emails as a productivity system

“Stripe is a celebration of the written word which happens to be incorporated in the state of Delaware,” wrote Patrick McKenzie, and it’s only partly a tongue-in-cheek joke when the company’s as well known for their documentation, startup guides, and books as they are for payment gateways. Yet they’re not alone in discovering the value of writing alongside their core product.

Jeff Bezos, famously, required Amazon staff to write 6-page memos detailing ideas instead of building slide decks, to in his words “create the context for what will then be a good discussion.” Y Combinator has portfolio founders write a weekly sprint update, something alum companies like Zapier have carried forward in Friday Updates. Stripe alums, as well, have taken the shipped list to their next startups. “At Retool we have a shipped email list. If you ship something, you'll always send to that,” mentioned then-Head of Product (and Stripe alum) Eeke de Milliano in a podcast.

Having a developer blog to announce new features and updates is modus operandi in the software world. But it’s far too easy for those blogs to become formulaic, one more task to check off that few will notice let alone read.

Launches—even the smallest of them—should instead be a chance to share you story. And perhaps, if they’re an email addressed to your team and followers, written right when the update just got pushed to main, when the excitement and challenges are still top of mind, they’ll be interesting enough to get people as excited about what you built as you are.

You might not need a dev blog at all. A shipped list might be all your developer team needs.

Published on

June 3, 2024

Filed under

Written by

Justin Duke

Justin Duke is a software engineer, lover of words, and the creator of Buttondown.

No credit card required. Only pay for what you use. Cancel anytime.