Agile
Agile, like Lean, is more of a culture than a process. Agile is defined by 4 values and 12 principles, telling what the 17 authors of the manifesto have discovered to be important when it comes to effective software development. In short, you could say it's about getting fast feedback and being technically and mentally prepared for changing direction. Some describe this in a negative tone as "you never know what you will get". We would say that it's more correct to say that we never know from the beginning what the user or customer needs so we have to use a process that makes it possible to learn and adjust along the way. Agile is a way of minimizing risk, the risk that the customers do no longer want what we originally thought they wanted.
When talking about risk handling, the risk of delivering the wrong product or feature is one of the more important. When starting a project, we can guess what the customers need, but it's only when the customer starts using the output of the project that we know for sure if we delivered a high value product or not. To make it even more complicated, the right product could quickly become the wrong one when time passes since customers' needs and expectations change quickly. To minimize the risk of building the wrong things, Lean and Agile values quick feedback by getting features in a testable or sellable state as quick as possible. Lean and Agile values small releases often instead of big bang releases. They do also suggest that you optimize on flow instead of resources.
Manifesto for Agile Software Development
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Source: http://agilemanifesto.org/
Principles behind the Agile Manifesto
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity—the art of maximizing the amount of work not done—is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Source: http://agilemanifesto.org/