If you've worked on a software team long enough, you've probably experienced this.

Sprint planning goes well. The team breaks down a feature into tasks, estimates each one, assigns owners, and everyone leaves the meeting feeling confident.

A few days later, reality hits.

A backend change requires a database migration nobody considered.

The frontend team is blocked because an API isn't ready.