engineers hate it when you say it doesn't matter how good they are because a team will outcode them any day.
"It doesn't matter how good of an engineer or a coder you are, a team of five people is always going to outcode you no matter what" - @Swizec on the Junior to Senior podcast: https://t.co/06sR5gIzmE
β David Guttman (@davidguttman) October 9, 2021
They like to cite The Mythical Man Month in their outrage. "Two women can't make a baby faster than 9 months" ... "Adding people to a late software project makes it even later"
You can tell they never read the book. Brooks starts with "Communication introduces overhead, but it would take a single programmer 50 years to build something like an operating system."
A soloist can move fast
We started chatting about the response to our Junior to Senior podcast episode with David and he emailed this example:
I've built a lot of cool stuff I don't think many of the devs I oversee could do (e.g. rambly.app, robotvj.com, generative art, etc...). And just now over the weekend, I built videodownloadtool.io, and I did it in about a day. I spent a few hours at night and then another few the next morning. I showed the demo to one of my managers and asked how long it would take for 5 of his devs to build it, and his estimate was 10 days
David is right, you can get a stupid amount of work done when you get in the zone and bang out code uninterrupted for a few hours. And it's fun!
I've written before Why Senior Engineers Get Nothing Done β they don't get the chance! It's all tiny spurts of coding between other obligations.
Senior engineer achievement unlocked π fixed bug in 20min between meetings pic.twitter.com/wdFJtxj9Oq
β Swizec Teller (@Swizec) October 11, 2021
David continues:
At the end of that single day, I did not have something that resembled a public-facing product. If both I and the team of 5 started from that demo/prototype and we raced each other to get to a "finished product" I'm sure I would lose. After my initial prototype is working, most of the work is time consuming and doesn't benefit from my unique Node.js/ffmpeg/streaming/UI skills anymore, and I'm not going to be much faster than "normal" devs.
A-ha!
That's the rub. You can bang out a prototype to test an idea or play with your special skillset. That's the first 90% of the work. Now you're left with the second 90% and that shit is a slog.
Teams excel at that part.
Surgical teams do best
David ends his observation with a question:
was my real value "coding" or could I just have told the team how I wanted to approach the problem and saved myself a day of coding and them a week and half of figuring out the best way to do it?
David can't write code any faster than you or I. Typing is typing. What he can do is write the right code. His value is the expertise.
You could even say writing the code himself was a waste of time. Rather than a whole day of typing code, he could Own the project like a senior engineer:
- Grab a team
- Explain the correct solution
- Ensure everyone understands
- Oversee the execution
- Validate the result
And while everyone's busy building something David could build in his sleep, he can focus on solving (or finding) the next gnarly problem.
That way he can be the engineer who sells their expertise instead of their hands and increases the leverage on his time. 1 hour of solving a gnarly problem instead of 12 hours executing the solution.
And the best part π Others can now maintain and understand this code, even build from scratch next time a similar problem comes up. David can thus move on to bigger and better problems.
Being special is fun, but let others play lest you get stuck.
Cheers,
~Swizec
PS: in a "true" team, the surgicalness is fluid. Sometimes you're the expert, sometimes you're the code monkey. That way everyone helps everyone and you're all getting better.
Sometimes I feel like the last ~6 years of silicon valley reshaped my brain. This was the goal, but it's also hard to communicate
β Swizec Teller (@Swizec) October 12, 2021
You say something obvious βΒ teams can outbuild a soloist βΒ and hordes of people show up to call you dumb.
but they've never worked on a real team π¬
Continue reading about What's more productive, a team or a talented soloist?
Semantically similar articles hand-picked by GPT-4
- 4 years of coding in San Francisco, lessons learned
- What I learned from Software Engineering at Google
- WorkInProgress kills your progress
- You can't side-quest a product
- The code is not the goal
Become a *true* Senior Engineer
Get promoted, earn a bigger salary, work for top companies
Getting that senior title is easy. Just stick around. Being a true senior takes a new way of thinking. Do you have it?
The Senior Minset email crash course
Get a free chapter from the Senior Engineer Mindset book and a sample audiobook chapter, followed by a Senior Mindset 101 email course.
You'll get insights to apply at your work right away.
Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.
Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.
Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help π swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.
Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers π ServerlessHandbook.dev
Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization
Want to get my best emails on JavaScript, React, Serverless, Fullstack Web, or Indie Hacking? Check out swizec.com/collections
Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog
Want to brush up on your modern JavaScript syntax? Check out my interactive cheatsheet: es6cheatsheet.com
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are β€οΈ