Assumed Audience: People interested in software engineering effectiveness, developer productivity, and the like.
Epistemic Status: Exploratory, open-ended, all questions and no answers.
The gold standard for discussing developer productivity and engineering effectiveness is Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations, by Nicole Forsgren, Jez Humble, and Gene Kim. As far as I can tell, though, there isn’t even a silver or bronze standard for thinking about developer effectiveness beyond the criteria Accelerate explores. If you want to think about how to get an organization running in a DevOps mindset, you have a charter! If you want to think about when and how to invest in language adoption, or building editor tooling, or any number of things that are critical to the effectiveness of your engineering team but aren’t really connected at all to DevOps… good luck, you’re on your own.
That’s not in the least a dig at Forsgren, Humble, and Kim: Accelerate was groundbreaking, and it covered the territory it set out to cover admirably, by all accounts. It’s just that we need another book — or, more likely, several more books! — to cover territory they didn’t: there’s a lot of unmapped terrain out there when it comes to “engineering effectiveness” or “developer productivity.” The work to be done here is in some ways even murkier that the DevOps work was, too. We have decades of academic research on questions like “How do type systems impact developer productivity?” and those efforts have resulted in small amounts of progress, but not nearly as much as we might have hoped!
If you know of anything particularly helpful in this area — including academic papers, blog posts, conference talks, etc. — please send it my way. Even more: if you’re an academic who is interested in things like the impact of programming languages, tooling, and API design, I’d be particularly curious to talk to you! I am actively thinking about this space and will be sharing whatever I come across here, in the hopes that it will be helpful to others in engineering leadership. And of course, I will share thoughts of my own as I flesh them out as well!