I’m new to agile development, so I’m going to try to explain what I understand.
Agile development is a methodology for breaking down big projects into smaller, manageable tasks, or stories. These tasks are prioritized by the client, and estimated by the developers. In a short period of time, sometimes called a sprint or iteration (1-3 weeks), a working project is expected. If something doesn’t work, it’s not done. This means that for the first version, or maybe the first sprint, it’s okay for some features to be simplistic, as long as they work. They can be enhanced later, but functionality is obviously more important than bells and whistles.
Of course, things may not always go as planned. With Agile, the development team is expected to adapt to changing requirements, learn whatever is not know to get the job done. These changes may not be part of the original plan. My guess is that this idea of adapting to changes is why this methodology is called “Agile,” but that’s just my guess.