A lot of people have been asking the question “What is Agile Software Development?” and invariably they get a different definition depending on who they ask. Many people will correctly say that agile software development conforms to the values and principles of the Agile Manifesto, and those sites are clearly great resources. But, if you’re looking for a “sound bite” definition of agile software development, that’s a little harder to come by. Furthermore, the definition that you get might not promote the level of maturity, or perhaps discipline is a better word, that you’re hoping to achieve. Here’s a definition that I think is pretty good (the layout of the points may be important) which I hope you find useful. Agile software development is:
An iterative and incremental (evolutionary) approach to software development
which is performed in a highly collaborative and evolving manner
by self-organizing teams within an effective governance framework
with “just enough” ceremony
that produces high quality solutions
in a cost effective and timely manner
which meets the changing needs of its stakeholders.