At one time, most people thought of agile development as shown on the left. Determine the requirements up front. Then iterate on the analysis, design, and implementation.
Slowly, people began to realize that BUFR is often a bigger risk than BUFD. The new model of agile development is shown on the right. Iterate on the entire process: requirements, analysis, design, implementation, and testing.
This depiction of the new model is still somewhat crude and incomplete. Testing really occurs throughout the process. And when market research and strategy appear in the iterative loop, it turns into agile product management.