This is a question I just got asked. And I'm honestly not sure. It would depend a bit on who that "someone" was. But here's a very general definition for agile software development (ignoring the application of agile to other disciplines such as marketing) that I think might be OK.
Agile is an approach to developing software that:
- Focuses on prioritizing the most valuable features first
- Organizes work into short (typically 2 – 4 week) chunks of time typically known as iterations
- Builds and tests one or more complete new features inside each iteration
- Shows and discusses what they accomplished with the customer at the end of each iteration allowing regular feedback and guiding of the effort
- Acknowledges that it is nearly impossible to figure out completely up front what people want from a software system, and that their opinions and business needs will change as they start to see it built.
- Relies on cross functional teams (developers, testers, whatever else is required)working as a self-organizing group to accomplish their goals. A good example of a self-organizing team outside software is a sports team, e.g. think how soccer players collaborate with the end objective of scoring goal(s).
- Employs a number of technical disciplines to allow incremental development, with a particular emphasis on the importance of regularly integrating and testing code with as high a degree of automation as is sensible