A strong partnership with product is key to an enjoyable engineering life.
Weak partnership feels like "Ugh, I'm working in a widget factory. Somebody tells me what to do, I grab a story from the board, write the code, grab the next story, yawn"
Strong partnership feels like "I deeply understand why we're building the thing, have strong input on the roadmap, and work on what feels most important"
On a team that has this strong partnership, product is accountable for why and what, engineering is accountable for when and how.
You co-own the why as a team, those are your Objectives. Product is accountable for making sure your objectives make sense, ladder up to broader business objectives, and keeping track of progress. They raise alarms ahead of time, if need be.
You collaborate on the what, those are your Key Results. Product is accountable for making sure the features you build make sense, have a good thesis for how they'll drive Objectives, and measuring the results. You have to keep them honest, make sure the "what" is buildable within budget, and help massage ideas into a version you can build.
You collaborate on the when, that's your roadmap. Engineering is accountable for estimates and execution. You say how long it'll take and what sequencing makes the most sense from an engineering perspective. No point in painting the walls before you run the electricals.
You own the how, that's your implementation details. A technical product person may have input and helpful suggestions, but they likely don't know enough details. You're close to the code and know what it needs. You'll maintain what you build so whatever works for you goes.
In practice, this looks and feels messy. That's a good thing.
You never throw things over the wall. Product doesn't sit in their ivory tower, invent perfect visions, write incredibly detailed stories, throw them over to the engineering peasants, then wait for implementation. None of that.
You talk constantly. You get stories that look like half a hallucinated idea. You dig in and get your hands dirty. You discuss and debate and negotiate a balance between idea and reality.
Then you write the stories together. A record of your agreement so you don't forget. The stories may change during implementation! You'll find a big rock and need to route around. That's okay. Making those adjustments is your job.
You build the roadmap together too! The product owner knows where you are and where you want to go. But you know what the road looks like. You have to help them design the route. 3 small stories may get you there faster than 1 big story.
You can even break down or join stories while building. You own the when and how.
But if there's a rainstorm and the costs change, the product owner may adjust the what. That too is important. Going all the way may not be worth it, if stopping halfway there will do the trick.
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?
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.
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 ❤️