Working with product

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"

Accountability

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.

What this looks like in practice

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.

Cheers,
~Swizec