Customers usually ask: how much? and how soon?
It is inevitable to have answers for those questions. Especially when bidding for projects, Project Managers usually need to estimate even when they have no complete requirements document and no signed-off specifications.
Even for internal projects, it is usually hard to get senior management commitment without having at least an order of magnitude estimation for time and cost.
Can Agile answer those questions? Can Scrum?
I believe not.
Are they supposed to?
I believe not either!
As stated by different bodies concerned with Agile and Scrum¹, Agile and its variations are “product management framework for incremental product development”. This means that Agile is not a project management methodology where the main concern is to keep the project within the constraints triangle. Agile is not, and should not be concerned with the total cost or estimation to deliver.
Again whether you like it or not, the client, internal or external, wont accept the argument of performing some iteration before giving the last estimation.
Does this mean that Agile is not really realistic and cannot be applied on products developed as projects for a third-party?
Not at all, as giving project estimations is outside its scope. Agile can work side by side with project management methodologies like Prince2. Project cost and time estimations is the responsibility of the project management.
Here were the Project Manager, as well as the team, experience kicks in to give estimation based on their experiences.
Then as the project progresses, the project manager evaluates and forecasts the progress based on the team velocity. Agile can be of great help in providing progress reporting and continuously getting feedback. Based on the progress forecasts the project manager decides on the required adjustments to keep the project on track and to deliver within the constraints triangle.
This way the Project manager keeps every thing in control and can make both ends meets, Agile to develop the product and a Project Management methodology to deliver within constraints.
Finally, keep in mind that estimating is estimating. it’s challenging and most of the time is wrong! Experienced project manager knows how to give estimation, how to manage the product development and how to make the two ends meet.
1 this definition is from scrumalliance.org