The “10x engineer:" 50 years ago and nowHow has parts of the classic book on software engineering, ‘The Mythical Man Month,’ aged with time, and is it still relevant half a century on – or does it belong in a museum, alongside floppy discs?👋 Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover topics related to Big Tech and startups through the lens of engineering managers and senior engineers. In this article, we cover one out of five topics from today’s subscriber-only article What Changed in 50 Years of Computing. If you’re been forwarded this email, you can subscribe here. ‘The Mythical Man Month’ by Frederick P. Books, Jr. is a bona fide classic in the software industry. First published in 1975, and with an updated edition in 1995, the text is almost 50 years old. Lots of time has passed, yet the book is still relevant. The title of the book takes aim at the “myth” that software development can be measured in “man months,” which Brooks disproves in the pages that follow:
I’ve been making my way through this book from software’s earliest days and taking notes of what’s remained the same in the 50 years since Mythical Man Month came out, which predictions the book got right or wrong, and what’s different about engineering today. Chapter 3 is “The Surgical Team,” and contains what might be one of the very first mentions of the “10x engineer” concept. This is how Brooks put it:
Brooks agrees with this observation, and suggests a radical solution: have as few senior programmers as possible, and build a team around each one – a bit like how a hospital surgeon leads a whole team. Brooks suggests the set up below, borrowed from Harlan Mills, could work well:
Here’s what this “surgical team” built around a very productive programmer looks like: My sense is this team setup was aspirational. The roles certainly made sense at the time, but why would any business leader sign off to hire 9 other people to support one developer? In 1975, I assume the answer was very few. In 2024, there is no need for most of Brooks’ proposed roles, and the “surgical team” has transformed thanks to advancements in tooling and how we work: It’s fascinating how much tooling has improved in 50 years. Tools and approaches at our disposal, which didn’t exist in 1975, or were not widespread in 1995, include:
Progress has changed what used to be a 10-person team supporting a lead developer, into a set of tools — as well as a couple of centralized platform teams, at larger companies. The concept of “hierarchical programming” feels dated. One thing that strikes me about Brooks’s model is that it’s hierarchical. The “chief programmer” acts as an architect and does all planning, most direction setting, and some coding, while everyone else works well-defined, supporting roles. The copilot is described as:
This setup made sense when access to computers was more limited because machine time was expensive, but, today, it would be wasteful to not have even an entry-level engineer writing production code. What didn’t exist back then was source code control and code reviews to stop poorly written code making it to production. It’s a good reminder that tooling changes a team’s social dynamics. Thanks to better tooling, we are able to reject overly hierarchical team structures these days. Brooks’ “toolsmith” concept is still valid, but different. I am intrigued by the role for a dedicated developer to build better debugging tools and utilities, and also by an addition to it:
Brooks was convinced that even with a central tooling team – which we’d call a platform team, today – there was still plenty of value in a team-specific tools specialist. But this need has vanished almost entirely because tools, developer environments, build tools, and more, can be configured in detailed ways. All teams at a company use the same CI/CD tools, but they might change the configurations slightly. It’s true that within an engineering team, there’s usually one or two engineers who enjoy tweaking build systems and shared environments more than others do. However, with central platform/infrastructure teams, there’s no need for an “embedded” platform engineer in teams. This has to do with how much developer tools have evolved in the 50 years since the book came out. The “10x engineer” has always been a source of debate and contention. We’ve all seen developers who seem to be a lot more productive than others. CTOs and CEOs catch on to this as well, and some label standout folks as “10x developers.” However, there’s a lot of nuance:
You see where this leads. “10x developer” behavior can actually be undetected toxic behavior under a different label. Meanwhile, others could have the advantage of a specific context that cannot be replicated. It’s certainly a complex topic, and one we haven’t stopped thinking and arguing about for more than 50 years, across the industry. This was one out of the five topics covered in the article What Changed in 50 Years of Computing. The full article additionally covers:
Featured Pragmatic Engineer Jobs
See more senior engineer and leadership roles with solid engineering cultures on The Pragmatic Engineer Job board - or post your own. Hire Faster With The Pragmatic Engineer Talent CollectiveIf you’re hiring software engineers or engineering leaders, join The Pragmatic Engineer Talent Collective. It’s the #1 talent collective for software engineers and engineering managers. Get weekly drops of outstanding software engineers and engineering leaders open to new opportunities. I vet every software engineer and manager - and add a note on why they are a standout profile. Companies like Linear use this collective to hire better, and faster. Read what companies hiring say. And if you’re hiring, apply here: You’re on the free list for The Pragmatic Engineer. For the full experience, become a paying subscriber. Many readers expense this newsletter within their company’s training/learning/development budget. This post is public, so feel free to share and forward it. |
This week’s system design refresher: Top 9 Most Popular API Protocols (Youtube video) What is a deadlock? What’s the difference between Session-based authentication and JWTs? Top 6 ElasticSearch Use Cases Top 9 Cases Behind 100% CPU Usage SPONSOR US ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ...




Comments
Post a Comment