I've never been fully able to answer this question, and from a lot of searching I haven't been able to get the right keywords to find anyone who's asked this question in the way I mean it.
Say that there are two user stories, A and B. In order for either of them to be completed, some backend work C must be done.
How do we estimate the work for stories A and B? We have attempted a few approaches:
- Estimate them both assuming that C needs to be done in both, meaning that A and B have some "overlap" in their point estimates. This doesn't feel right because when you add A and B up, it includes C twice, which feels unrepresentative of the work needed
- Estimate one higher than the other, and lump C's work into specifically one of the tickets, the one with the highest priority. That way you know C will be done, but it means that B is relying on work from the A ticket, and so it basically requires us to work in serial if we're not careful about it
- Create another ticket specifically for C, and prioritize it above A and B. This is the best approach we've found, but it breaks some idea of vertically slicing the tickets, as C can end up being hard to see/reason about backend work, and so delivering it doesn't really provide notable value if we don't have A or B to accompany it
Tangentially related is one final question: If we have stories (Most likely bugs) A and B that we believe are separate, and we bring A onto the sprint, finish it, and realise that B is actually completed as a result of doing A, what do we do with points? Again this references overlap of tickets. We've had some arguments back and forth on whether the estimated points for A and B are put into Done and counted as completed by the team, but that feels wrong because we put no extra work or effort into it, it was basically a planning/understanding mistake that they were separate tickets with individual point values. What is a good approach to take for this situation?