1. Does the team have the right people, with the right skill sets, wearing the right hats? (e.g. BAs or PMs doing those actual jobs)
2. Does the team have self-motivated, high-performance people?
I have yet to see any process that can overcome "No and no."
Large tech org's knee-jerk response to failures is to increase the formalism of their agile frameworks, but that's just a bandaid over gangrene.
If they think the solution to bad people is more process, they've already lost.
- If you have unpredictably changing requirements, and a small-ish non-life-critical product to build, and a large fraction of good people on the team, you should use an agile process.
- If you have unchanging or predictably changing requirements, and a large fraction of not-so good people on the team, you should use a plan-driven process.
But what if you have unpredictably changing requirements and a large fraction of not-so good people on the team? No process can save you now.
So those skilled and motivated people are estimating piecemeal tickets, too micromanaged to be able to fix actual issues they clearly see around them. It is forced helplessness You can't overcome bad process and scrum is a bad process.
Scrum advocates always end up blaming the people on team. Even if that exact same team was performant and scrum literally killed 70% of what was good in it.
Of course process can't make bad programmers good.
But good process can dramatically improve the value delivered by a team of good programmers. People don't spontaneously self-organize in optimal patterns of internal communication and accountability and external communication, no matter how self-motivated and high-performance they are.
> I have never seen feedback from estimation to requirements.
Perhaps you work with perfect pms! jokes aside, usually all it takes is an estimation of 8 or 13 and something changes real fast.
The entire point of agile is that a PM can't do that. Large estimates force a PM to go back to stakeholders and revise the desired features to something that engineers have consensus that should be deliverable within the next sprint given their historical velocity.
If you're not doing that, then you're not even in any conversation about agile/scrum.
By saying 8pts the team is effectively saying it's probably a 2 sprint job and individual tickets are not supposed to be 2 sprints long meaning there's complexity that either needs to be broken apart or on the rarer case, team agrees the ticket is fine as-is then it'll take 2 sprints.
Anything 13 or greater is saying this ticket is so big we can't even begin to accurately estimate it - PM take it away from us! It's fun to see 21 or 34 pts... it's all a joke at that point.
They're supposed to represent a measure of complexity.
How much time that then takes depends on who does the work, the order in which tickets are implemented, how much distraction there is, luck (do you encounter any unforeseen problems), and so on.
They're then used to see how many issues will fit in a sprint, which is a measure of time. So everybody ends up treating them as representing time anyway...
But in reality it's ideal hours or ideal days.
The 8 and 13 come from the fibonacci sequence.
The meeting-centric focus of dogmatic Scrum team rhythms that attempt to create standardized estimation sizes in order to produce velocity metrics is obscenely slow and a largely a waste of time.
Measuring output metrics at all is worthless. Measuring the impact of delivering working code is all that matters.
In Scrum, estimation meetings usually result in follow-ups with stakeholders that can (and often do) radically change the stories themselves. Totally different code winds up getting delivered that increases actual value delivered, even if "lines of code written" slows.
That's the whole point of agile, to deliver value rather than code.