Agile is a set of principles that are not limited to the world of software development but help act as guiding principles to a team that has cooperatively decided to make customer satisfaction through increased quality of product and/or services.Agile is a collection of beliefs that teams can use for making decisions about how to do the work of developing software. The meaning of being Agile is subject to distortion as it is passed along. However, if you try to understand the true meaning of being Agile, it’s surprisingly flexible. Agile doesn’t make decisions for you. Instead, it gives a foundation for teams to make decisions that result in better software development.
Agile stands by valuing a few things over others:
|Individuals and Interactions||over||Process and tools|
|Working software||over||Comprehensive documentation|
|Customer Collaboration||over||Contract Negotiation|
|Responding to change||over||Following a plan|
12 Principles of Agile
1. Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity–the art of maximizing the amount of work not done–is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.