You're reading Simpler Machines, a weekly newsletter about the human side of software development. This is probably the second-to-last last issue until the new year. (Next week's will be an interview with Ignition Works.)
In the meantime, I'm sending out a more playful newsletter once or twice a week called If I Could Give It No Stars, I Would, where I review Google Maps reviews for things like grocery stores and cemeteries.
I'll also be spending that time thinking about what I want to do with "season two" for this newsletter, so this would be a good time to send me some feedback to chew on. What have your favorite issues been? What would you like to see me focus on more next year? Send me an e-mail!
Remember when programmers were supposed to have “an office with a door that closes?” I remember. Pepperidge Farm remembers.
I finally have one. I make myself a pot of tea and I go downstairs and I work. When I’m done, when I can’t work anymore, I go back upstairs, and I stop.
This has been my dream since I read about it in On Writing, and then again since Joel on Software. Quiet! Focus! A physical space that no one else gets to fuck with! My creative and imaginative sanctuary.
I’d more-or-less given up on that dream, after five years in tech. The company I worked for didn’t even give VPs offices. VPs had to do their typing out on the open floor with the rest of us schmucks. They were never going to give me one.
Then March 2020 rolled around. I started working from home. My partner moved in. We started talking about moving to a place that was big enough for both of us. I realized — I could get an office. An office with a door that closes.
I did. It’s great.
It completely turned me around on remote work. Before the pandemic, before I had an office, remote work meant awkward typing on my couch. Remote work meant no cheese at retro. Remote work meant lag and crouching over screens and fussing with cables and eating lunch alone.
Now remote work means "an office with a door that closes."
I don’t know if I’m a better or a worse engineer working remotely than physically present with my team. This isn’t about whether open offices or private offices are more “effective.”
I used to think a lot about whether I was being "effective" and about how to make the teams I was on more effective. I lived and breathed Process and Technique and Collaboration and Method. I learned TDD and I learned how to pair and I learned how to prioritize tech debt and fix tests and set up CI and maximize velocity and talk about my feelings and build high performing teams and deliver excellent work.
It, frankly, was exhausting and miserable. I was wired and anxious and so, so insecure. It was never enough. I was never enough. There were always more improvements to make, more efficiencies to wring out.
And not everyone agreed with me about what would make the team "effective." What I saw as useful collaboration, another team member might see as too many meetings, not enough time coding. I'd get into fights with people about keeping the build green. (I got into a lot of fights.)
Meanwhile, my company had crammed me into a big, loud, bright box where I got interrupted all the time, because the big, loud, bright box was relatively cheap and made it easy to move furniture around when they changed the size of a team. And this was a company that put a lot more thought than most into making its programmers productive.
But I was still putting way more effort into optimizing my team's "effectiveness" than the company. I was putting more into that than the company had asked for, or was even capable of noticing. I'd been optimizing something that was available to optimize, not something that I'd been asked to optimize. And I was optimizing a tiny, tiny part of the system – one engineering team out of hundreds – just because it was close. There was no particular reason to believe that my choices about my team affected any customer outcome whatsoever.
Getting an office with a door that closes made me realize: I could optimize for my own personal comfort. My own personal happiness. Does it make me more productive? Maybe! Who cares!
I write tests first because writing tests first makes me happy and comfortable. I write Ruby and Elixir because I like them. I pair, a bit, because it makes me happy and challenged-in-a-good way. I stop pairing when I get tired.
These are good enough reasons to do things. I don't need to win an argument with anyone, even with myself, about whether the thing that makes me happy and comfortable also makes me more productive.
The Galaxy's Hottest Dad
Dune is fantastic. Great acting. Gorgeous cinematography. Understands the key fact that Duke Leto is a Great Boss and a Great (and very hot) Dad.
I've seen it twice, and plan on seeing it in theaters at least one more time. I worried at first that it relied too heavily on having read the book, but the handful of folks I've talked to who watched it without having read the book reported no trouble following it. Mostly, it seems to make people want to read Dune.
This makes me happy. Dune is one of my favorite novels ever, up there with things like Catch-22 and A Confederacy of Dunces. It was one of the first things I read about systems thinking.
A major controversy has resurfaced. How many Dunes to read? Lots of people say to stop after the first, or the second, or the third. These people are cowards.
Do you love witches? Especially space witches? Do you wish war in the future was mostly between space witches, and people who seduce space witches? Start reading Dune and never stop.
If you get at least to God Emperor of Dune you will begin to understand why I started laughing hysterically when I found out they'd cast [redacted] as [redacted] but the fun really begins around book five or so.
A former colleague was recently hired as a Director of Engineering at Fountain. If you're looking for a job shortening allll the feedback loops, check it out.