What is Agile, Exactly?
The dictionary defines agility as the ability to move fast, with flexibility. Agile project management and software development principles exist to help companies rapidly respond to change. There are many types of agile practices - Scrum, XP, Lean, FDD, DSDM - to name a few.
Agile projects make progress in a series of iterations. The team focuses on delivering the highest quality product increment by the end of each iteration so that business stakeholders and ideally, customers, may give feedback about what's been delivered. A designated person, the Product Owner, will assess the product's market-readiness along the way, comparing what's been delivered to what customers and/or users need. This is generally how agile works. The mechanics, or practices, if you will.
What are the values and principles behind such a way of working? Agile is way more than just a set of do-this, do-that practices. The Agile Manifesto was created in 2001 by a bunch of brilliant technologists who tried to distill agile values into four main points. You can read them here.
Basically agile teams/programs/people want to deliver what the customer wants. Sounds so simple, right?! Yet, many organizations are buried beneath heaps of process, up-front conjecture about product needs, and resistance to change. And they want to be agile! Well, the straight answer is that business must change in these cases in order to achieve agility.
Agile teams pride themselves in periodically reflecting on how to improve their practices. Since this is done iteration after iteration, one way we could think of agile is as a manifestation of the Deming Cycle. Of course, there are many other very important principles and schools of thought that form the foundation of agile practices.
These agile development teams are supported by two specific individuals: a ScrumMaster and and a product owner. The ScrumMaster can be thought of as a coach for the team, helping team members use the Scrum framework to perform at their highest level. The product owner represents the business, customers or users and guides the team toward building the right product.