One of the biggest challenges working with agile development is the paradigm shift of how we view and handle scope management.
There are two completely different approaches towards handling a project’s scope. On one side you have the plan-driven approaches which work hard to prevent any changes in the scope. While, on the other side, having the value-driven approaches which are expecting and embracing scope change. Hence, as a result, the agile way is to fix resources and schedule, and then simply work to implement the highest value features defined by the customer. This way, the scope remains flexible. However, at the same time the traditional way is trying to define the features (scope) in detail, driving the cost and schedule estimates.
In summary: We need to seriously start understanding and re-considering our way of viewing and handling scope management within traditional projects. Fixed scope works fine as long as the requirements are fixed, but we know that the requirements will change and new requirements will emerge. Some still argue that we yet need to have a fixed scope for a project. However, those who argue this is often plan-driven and not value-driven. As illustrated above, we need to go from having fixed requirements (scope) to fixed resources and schedule, and thereby focus on the value instead of the plan!
What if you do not deliver all the expected functionality within a release? Well, first, you probably already have been able to delivery some value by this release (adding value to the customer). Second, embracing change and working in short intervals means that it will not be too long until you will have it in the next sprint or release!