Agile vs traditional project management – part 3

In Agile project management, time and cost are constants while scope is variable.
So in agile, you agree with the client on high level requirements and objectives and we agree on time and cost to fulfill those objectives.
During the project, it is a common practice that the customer can add, delete or change any of the requirements.
For this to work right, the estimation process is of high value. the team tries to estimate the amount of work needed to fulfill the project. the project is divided into features or what is known in Agile as “Stories”
The estimate is done usually using any unit other than time (estimating using time has proven to have many disadvantages). “Story Points” or “Ideal days” are common units where the team tries to estimate the amount of work needed. many techniques can be used to get a correct estimate of the “size” of the project, techniques like “poker planning”, affinity analysis”, “Delphi techniques” are most used ones.
So let’s assume the project is estimated to be 1000 story points. History analysis of the team might indicate that the team usually deliver 10 points per week, so we will need 100 weeks to deliver the project. Also the company usually charge for 30$ per story point, then the project will cost 30000$.
The features/stories are prioritized in a list called “product backlog”. With each customer change request to the product , the list is re-prioritized.
The total number of the story points to be developed should be the same, so if the customer wants to add a 10 story point feature, then if the place of this new feature is in the middle of the product backlog then another 10 story point feature(s) that has been shifted to the end of the backlog will be removed from the product. Unless the customer decides to keep both features then the customer should provide extra cost/time to the project to fulfill the change.
of course during the project, more information is obtained regarding specific stories, hence those stories will be estimated.
Each iteration, we choose the highest items in the product backlog to be developed.