Campaigns, Breaking Apart Monoliths, and Sustainable Changes
Hello!
It's been a little while. I have not written a newsletter in nearly a year.
2020 threw a wrench into all of our plans. My wife and I tried to make the most out of last year. We spent some time in Europe visiting her family, we moved to Seattle, and we bought a house. As if the year wasn’t already eventful enough!
Here’s some of the writing done since the last newsletter.
Campaigns
My most recent blog post is covers something I’m calling a “Campaign.”
A Campaign is a long-running effort to enact global change safely within a sociotechnical system. It’s a technical project with a lot of moving pieces.
Usually a Campaign is something like “Introduce a request timeout” or “Reduce our global request timeout to 5 seconds.” These efforts are funny because they only take a one-line change in a configuration file. But getting to the point of being able to make that change safely is difficult.
Throughout my 4+ years at Gusto (time flies!), I’ve found myself starting or leading several projects that fit these molds.
This post is a generalization of lessons learned. I hope it helps you in your growing engineering organizations.
Breaking Apart Rails Monoliths
My most popular post of 2020 was on breaking apart Rails monoliths.
We are a few years into decomposing our monolith at Gusto, and the work continues. (Hint: It’s never really done.) We’ve gotten better about answering questions like “Should we use a local gem or just a folder?” or “Should we use a Rails engine or a separate application entirely?”
The post lays out how to punt on the important questions for as long as possible, while you wait for a good design to emerge. Usually that happens as you and your team learn more about the domain.
Sustainable Changes
In the vein of inventing new language for existing concepts, I’ve got another: “sustainable changes.”
This is a term designed to capture the long-term and systemic considerations of a decision.
Improving the design of a core component that isn’t going away is likely a sustainable change. Increasing the size of your database because of growing data needs is not. (Eventually, Amazon or Heroku will stop selling you bigger databases.)
This term is designed to give us a short-hand for “Let’s think about the long-term, while considering the realm of knowns and unknowns.”
What I’ve Been Reading
I played a lot of DOTA 2 in 2020, but I still managed to sneak in a few books here and there. There are a few newsletters that I’m enjoying reading as well.
Newsletters:
- Morning Brew
- The Speedshop Newsletter by Nate Berkopec
- Adventures in Typography by Robin Rendle
- Computer Things by Hillel Wayne
Books:
- The Death and Life of Great American Cities by Jane Jacobs
- The Rise and Fall of American Growth by Robert J. Gordon
- Thinking in Systems: A Primer by Donella H. Meadows
- The Fifth Risk: Undoing Democracy by Michael Lewis
- Linked: How Everything Is Connected to Everything Else and What It Means for Business, Science, and Everyday Life by Albert-László Barabási
- Thinking: Fast and Slow by Daniel Kahneman
Until next time!