What is Agile?

Agile is an iterative approach to project management and software development that emphasizes flexibility, collaboration, and customer feedback. It involves breaking down tasks into small increments and adapting to changes throughout the development process.

Some key Agile frameworks include:

  • Scrum: Emphasizes teamwork, accountability, and iterative progress through sprints.Kanban: Focuses on visualizing workflow, limiting work in progress, and continuous delivery.
  • Extreme Programming (XP): Advocates for frequent releases, continuous testing, and close collaboration between developers and customers.
  • Lean: Originating from manufacturing, Lean principles aim to eliminate waste, optimize processes, and deliver value continuously.
  • Crystal: Adaptable methodologies tailored to specific project characteristics, emphasizing simplicity, communication, and frequent delivery.

These frameworks offer different approaches to implementing Agile principles, catering to various team sizes, project types, and organizational cultures.

Agile is principle centered not rule based. Hence it makes it easy to understand but difficult to practise.

Agile manfesto

The Agile Manifesto is a foundational document in the field of software development, emphasizing a set of values and principles for developing software in a more flexible, collaborative, and iterative manner. It was created in 2001 by a group of software developers who sought to address the shortcomings of traditional, rigid development methodologies.

The Agile Manifesto consists of four key values and twelve principles:

Agile Manifesto Values:
  1. Individuals and interactions over processes and tools: This value prioritizes the importance of people and their interactions in software development over relying solely on tools and processes. It emphasizes the significance of communication and collaboration within development teams.
  2. Working software over comprehensive documentation: Agile emphasizes the delivery of functional software over extensive documentation. While documentation is important, the primary measure of progress is working software that meets the needs of the customer.
  3. Customer collaboration over contract negotiation: Agile encourages active involvement and collaboration with the customer throughout the development process. This ensures that the software being developed aligns with the customer’s needs and expectations.
  4. Responding to change over following a plan: Agile recognizes that change is inevitable in software development. Instead of rigidly adhering to a fixed plan, Agile methodologies advocate for embracing change and adjusting plans and priorities accordingly to deliver the most value.
12 Agile principles

Agile principles and values are the foundation of Agile methodologies. Here they are:

  • Agile Principles:Customer satisfaction 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, with a preference for shorter timescales.
  • 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.

These principles and values guide Agile teams in delivering high-quality software that meets customer needs while adapting to change efficiently.