Code review is the first bottleneck that stories encounter. You go from 1 engineer flowing and vibing with the code to many engineers bickering over details.
You can improve the flow with a small change in culture: Leave comments and approve anyway. Let the author decide what's right.
I still remember the first time this happened to me. I don't remember the code, or the feature, not even the repository this was in. But I remember who said "I trust you" and how that made me feel. The code was irrelevant but the gesture was everything.
How trust feels
It was mid 2020 and I had just joined a startup poised to hockeystick. New team, new field, new codebase, same basic consumer web architecture. My role was to be the subject matter expert on modern web technologies and bring React into the company.
The team gave me lots of space. I had a playground, an API that returned data, and room to explore. My job was to build the new world until we have a first feature ready for production. Everyone else would keep the wolves at bay to let me work.
Not like I'd know how to help with regular feature work or with production outages. Back then something blew up almost every day. That's what happens when your prototype starts to grow fast.
I rolled up my sleeves and got to work.
After years of being the person who knows where the bodies are buried in a previous startup, coding all day was a nice change of pace. No slacks, no "Hey quick question", no emergencies, just code. That's the beauty of being new.
Frontend pull requests were easy.
The team looked at them, mostly the future lead architect did, said "Yep looks good, Swiz knows what he's doing", and hit approve. Sometimes they'd ask a question to better understand the new tech.
Eventually I had to start making backend changes. A tweak here and there to make the API return what the client needed. Or to fix a bug I'd found when things didn't fit together.
These were hard.
The backend at the time was a distributed monolith sprawling across several repositories and a million lines of untyped JavaScript. Quite challenging for a newcomer to understand. Lots of code in there I still have never seen.
The first time I wrote a substantial backend PR, the future lead architect had a bunch of comments. This code looks wrong. You could've reused that function over there. Looks like this test doesn't test what you think it does. Everything's in the wrong place.
But he approved the PR. All those comments and a green checkmark! I was floored.
"You can do that!?"
The culture I had come from was one of endless nitpicking. Of infinite debates fiercely protecting the codebase from any misplaced comma or whitespace character. It all had to be perfect before your code was blessed enough to merge.
And here was this high priest of the code giving me a bunch of feedback and saying "I trust you. Do what's right. You're closest to this code, you know best."
My jaw was on the floor. I've been paying it forward ever since.
Cheers,
~Swizec
PS: this is from a book I'm writing
Continue reading about Approve with comment
Semantically similar articles hand-picked by GPT-4
- Keeping a high engineering culture, tips from the field
- The art of the cowboy merge 🤠
- Why great engineers hack The Process
- Coordinating at the end is too late
- Better is good
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 ❤️