Top 10 Lessons I Learned as a Developer Manager (The Hard Way)
So, you got promoted to Engineering Manager. Congratulations! Your reward for being good at writing code is... not writing code anymore. Welcome to the circus, friend. Here's a survival guide based on my spectacular mistakes and occasional accidental wins.
1. "Quick Question" is Never Quick
The Lie: "Hey, got a quick question?"
The Reality: You're about to enter a 45-minute deep-dive into a merge conflict that somehow involves Docker, a database migration from 2019, and Steve's code from before he left the company (Steve who? Exactly.).
I used to foolishly believe people when they said "quick question." Now I block out 30 minutes minimum and practice my surprised face for when it inevitably becomes a multi-hour debugging session.
Pro tip: If someone says they have a "quick question" about their local environment, clear your afternoon. You're going on an adventure through dependency hell, and there are no shortcuts.
2. The Mystical "2-Week Sprint" Actually Takes 4 Weeks (Minimum)
Physics might have constants, but software development has one absolute truth: multiply all estimates by 2. Or 3. Or π. Whatever feels right.
I learned this after confidently telling our CEO that the new feature would take "two weeks, tops!" Six weeks later, we're still adding "just one more thing" and debugging why it works on everyone's machine except production (spoiler: it's always DNS or timezones).
The actual timeline:
- Week 1: Understanding the requirements that changed three times during planning
- Week 2: Writing code
- Week 3: "Why is the staging environment on fire?"
- Week 4: Code review comments that require rewriting everything
- Week 5-6: "It works on my machine" investigations
- Week 7: Actually shipping it
- Week 8: Hotfixes because users do the weirdest things
Now I just tell stakeholders "a month" for everything and look like a hero when we deliver in five weeks.
3. Developers Are Not Fungible Resources (Despite What That Spreadsheet Says)
Oh, the naivety. I once thought: "We have 5 developers. Each task takes 1 week. Therefore, we can do 5 tasks per week!"
LOL. ROFL. LMAO, even.
What actually happens:
- Developer A is the only one who understands the legacy Python monolith
- Developer B refuses to touch anything JavaScript-related (based)
- Developer C is brilliant but needs 3 days to context-switch
- Developer D is great at everything but in 7 meetings daily
- Developer E just joined and is still figuring out why we have three different authentication systems
Turns out humans aren't Docker containers you can spin up and down. Who knew?
4. The Best Code is No Code (But Try Telling That to a Senior Dev)
Me, a wise manager: "Can we use an existing library for this?"
Senior Dev: "Sure, but I could write it better in 2 hours."
Narrator: It was not 2 hours.
Three weeks later, we have a custom solution that's "more flexible" but also breaks every time someone looks at it funny. Meanwhile, the boring NPM package I suggested has 50k stars and actual documentation.
Lesson learned: Sometimes the best code is npm install
and moving on with your life. Your clever custom solution is someone else's technical debt.
5. "Let's Hop on a Quick Call" is the New "Reply All"
I schedule calls the way some people collect Pokemon - gotta catch 'em all! Except instead of feeling accomplished, everyone ends up tired and wondering what we actually decided.
Meeting red flags:
- No agenda = Extended chat about nothing
- "Quick sync" = Someone wants to avoid writing documentation
- "Brainstorming session" = No one prepared anything
- "Important discussion" = Could've been an email, Karen
Now I have a rule: If you can't explain why you need a meeting in one sentence, you don't need a meeting. You need to write stuff down.
Exception: "The production database is on fire" - that's meeting-worthy.
6. Your Calendar is Everyone's Free Real Estate
Remember when you could code for 4 hours straight? Those were the days.
Now my calendar looks like Tetris designed by someone having a mental breakdown. Meeting, meeting, 15-minute gap (perfect for... nothing), meeting, "lunch" (working lunch meeting), meeting, meeting, coffee break (SACRED), meeting.
My survival strategy:
- "Focus time" blocks that I defend like a dragon guarding treasure
- "Meeting-free Fridays" (gets violated by "urgent" meetings at least twice a month)
- Learning to say "No" (still working on this one)
- Accepting that I code at 9 PM now (this is fine everything is fine)
7. The Worst Technical Decision You Ever Made Will Haunt You Forever
Five years ago, we decided to build our own custom framework because "the existing options didn't quite fit our needs."
That framework is now called The Legacy System. We refer to it in hushed, fearful tones. New developers cry when they see it. We've rewritten it three times, and it's somehow worse each iteration.
Every technical decision is a horror movie sequel waiting to happen. That "temporary" solution? Still in production. That database schema you copied from Stack Overflow? Now processing millions of transactions. That Python script you wrote in 20 minutes? It's somehow critical infrastructure.
Current status: We're planning to migrate away from The Framework™ any day now. (It's been "any day now" for 2 years.)
8. "We Need Better Documentation" (Narrator: They Did Not Write Better Documentation)
What everyone says in retrospectives: "We really need to improve our documentation."
What actually happens: Nothing. Absolutely nothing. The wiki remains a graveyard of outdated instructions and broken links.
I tried everything:
- Dedicated doc days (people wrote code anyway)
- Making it part of the definition of done (people check the box and move on)
- Hiring a technical writer (they quit after seeing our codebase)
- Leading by example (my docs were ignored)
The truth? The best documentation is code that's so obvious it doesn't need documentation. The second best is comprehensive tests. Actual documentation is a distant third that no one reads.
Plot twist: The only docs people read are the ones explaining how to expense their lunch.
9. Your Team's Communication Style Will Drive You Insane
Every team develops its own unique communication dysfunction:
Slack channels you'll encounter:
- #general: Where important announcements go to die
- #random: 90% GIFs, 10% actual conversation
- #engineering: Surprisingly, not about engineering
- #that-one-project: Has 47 members but only 3 people talk
- #incidents: Pure chaos and panic, beautifully documented
Then there's Bob who writes essays in Slack, Sarah who only communicates in emojis (🔥 means production is down, 👍 means "I'll look at it in 3 business days"), and Mike who replies "k" to everything, including critical security vulnerabilities.
My coping mechanism: Overcommunicate everything. Then communicate it again. Then put it in the calendar invite. Then mention it in standup. Someone will still say, "Wait, we're launching today?"
10. You're Not a Developer Anymore (And That's Okay... Sort Of... Maybe... Help)
The hardest lesson? I'm not a "real developer" anymore. My PRs get rarer. My knowledge of the codebase gets rustier. My terminal is lonely.
Stages of grief:
- Denial: "I'll still code 50% of my time!"
- Anger: "Why am I in another meeting about meetings?!"
- Bargaining: "What if I just code on weekends?"
- Depression: stares at calendar full of 1-on-1s
- Acceptance: "My code now is people"
The weird part? Helping someone overcome imposter syndrome, or watching a junior dev's face light up when they finally understand that concept, or seeing the team ship something amazing together - these moments hit different.
I still code. Just less. And usually at weird hours. And mostly to prove to myself I still can. And to review PRs where I pretend I understand the fancy new framework everyone's using.
Bonus Lesson: Coffee is a Food Group Now
Forget what nutrition scientists say. When you're a dev manager, coffee becomes essential for survival. I have a coffee before meetings about coffee. My blood type is now "Espresso Positive."
My coffee progression:
- Week 1 as manager: 1 cup/day
- Month 1: 2 cups/day
- Month 3: Coffee IV drip
- Month 6: Is this shaking from the caffeine or existential dread?
- Year 1: Coffee is love, coffee is life
The Real Talk
Being a developer manager is weird. You're not quite in the trenches anymore, but you're not in the ivory tower either. You're in this strange middle zone where you're responsible for everything but directly control nothing.
Some days I miss being an IC. I miss deep work. I miss that flow state. I miss having concrete things I built with my own hands (well, keyboard).
But then my team ships something incredible, or someone tells me that 1-on-1 actually helped, or we solve some gnarly problem together, and I think, "Yeah, okay, this is pretty cool too."
The secret? The best managers are the ones who remember what it's like to be a developer. Who understand that "just adding a button" is never just adding a button. Who protect their team's focus time like it's made of gold. Who know that technical debt isn't just a metaphor - it's a very real monster that lives in your codebase and eats sprints for breakfast.
Conclusion
If you're about to become a dev manager, here's my advice: Lower your expectations. Raise your coffee budget. Keep your coding skills sharp. Learn to communicate like a human. Protect your team from nonsense. And remember - you're not just managing projects, you're managing people, and people are wonderfully, frustratingly, magnificently complicated.
Also, everything will take longer than you think. Even reading this blog post probably took longer than you expected.
Now if you'll excuse me, I have a "quick call" that will definitely take 2 hours, followed by debugging why production is slightly on fire (just a small fire, it's fine), and then pretending to understand the new frontend framework the team wants to use.
Welcome to management. The coffee's hot and the deploy's broken. Again.
P.S.: If you're a dev manager and you've never had an existential crisis at 3 PM on a Tuesday wondering if you made a mistake leaving IC work, you're either lying or you're doing it wrong. We're all winging it. Some of us just have better coffee.
P.P.S.: Yes, I know this blog post should have been in a wiki somewhere, but we both know no one would read it there.
Top comments (0)