TL; DR
Initial duration is defined by estimating the initial Product Backlog. Like all projects, this duration can vary over time based on scope and velocity, and needs to be constantly updated and re-assessed. Termination by the Product Owner is the explicit control for preventing undesirable scope creep or infinite schedule slippage.
Project Goals Are Defined By Stakeholders
The Product Owner is responsible for working with stakeholders to identify project goals. Generally, this involves devising themes and epics, and then filtering them using some sort of consensus-building framework.
Some common tools for building and prioritizing the initial Product Backlog include:
The tools aren't what's important, though. It's really about defining an initial scope so that the schedule can be estimated.
Initial Product Backlog is Estimated by the Scrum Team
Once the initial Product Backlog has been defined, the Product Owner takes it to the rest of the Scrum Team, along with any shipping dates or project milestones defined by the stakeholders. The Team then estimates as much of the Product Backlog as they can within the planning time-box, and works with the Product Owner to identify what epics are likely to fit within the planned schedule.
Note that this is a cooperative endeavor. The Product Owner provides scope and optional deadlines, and the rest of the Scrum Team provides the Product Owner with enough feedback about the Product Backlog to give the stakeholders an initial project schedule.
Project Termination
The project ends whenever any of the following happen:
- The Product Owner terminates the project because it delivered sufficient value.
- The Product Owner terminates the project because its goals will not be achieved.
- The Product Owner terminates the project because stakeholders have withdrawn funding or shifted organizational priorities to other projects.
- The Product Backlog is emptied, and no new stories will be added.
Scrum projects expect change requests and scope creep, so they generally require an explicit termination. This may or may not coincide with the original scheduling estimate, but termination by the Product Owner is the explicit control for preventing undesirable scope creep or infinite schedule slippage.