For example, in software projects, if we give the same task to 10 programmers, we might get 10 different solutions.
Where in traditional project management, everything is very well known and predefined, like building a bridge, if we ask 10 workers to build a wall, it’ll always be the same output.
So in Agile, we mainly depend on the creativity of the project team where we have to put into consideration how to integrate the various outputs of different project tasks and consider the multiple trials to get something done as it might not be correct from the first time.
So Agile projects is all about iterations. In each iteration, we implement few requirements from the long list of needed requirements, the output of each iteration will be presented to the customer and according to the feedback of the customer, we can decide what is needed to be done the next iteration.
Also Agile projects are good when there is uncertainty about the requirements. the customer might not know exactly what he wants or what might solve his problem or when we are doing a research and development project where we don’t know if we ever get a result or not.
PMBOK indicates 3 types of project life cycles: Predictive, iterative and Adaptive.
Predictive is where we know exactly what need to be done.
Iterative is where we know high level requirements but we don’t know details of each high level requirement. so we do iterations, and each iteration we get more details help us build the product (progressive elaboration).
Adaptive is where we don’t even know high level requirements.
Agile might be used in iterative life cycle but must be used in adaptive life cycles.
One project can have one phase adaptive like designing a bridge and the next cycle predictive like building a bridge.