engineers hate it when you say it doesn't matter how good they are because a team will outcode them any day.
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."
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 writing a book you’ll wanna read (@Swizec) October 11, 2021
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.
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.
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.
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 writing a book you’ll wanna read (@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 😬
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?
Leave your email and get the Senior Mindset crash course - a series of emails on the mindset of a senior software engineer. What it takes to get there, what should you do when you're there, how to change the way you approach problems.
Get an email crash course on the mindset of a senior software engineer. What it takes to get there, what should you do when you're there, how to change the way you approach problems.
it describes my days in a way I have not read before.
This was a very enlightening article about being a senior engineer.
You write in a way that just makes sense. I found just about every idea valuable.
Senior Mindset Book
Get promoted, earn a bigger salary, work for top companiesLearn more
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
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
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️