Software Engineering basics - Note on Agile Methods

Note on Agile Methods

Agile methods are a set of iterative and incremental approaches to software development that focus on flexibility, collaboration, customer satisfaction, and rapid delivery of working software.


Key Principles (Agile Manifesto)

  • Individuals and interactions over processes and tools.

  • Working software over comprehensive documentation.

  • Customer collaboration over contract negotiation.

  • Responding to change over following a fixed plan.


Main Characteristics of Agile Methods

  1. Iterative development – software is built in small increments called iterations or sprints.

  2. Customer involvement – frequent feedback from users/customers.

  3. Adaptability – easy to handle changing requirements.

  4. Team collaboration – self-organizing, cross-functional teams.

  5. Frequent delivery – working software is delivered regularly (e.g., every 2–4 weeks).

  6. Focus on quality – continuous testing, refactoring, and integration.


Popular Agile Methods

  • Scrum – based on sprints, daily stand-ups, product backlog, sprint reviews.

  • Extreme Programming (XP) – emphasizes pair programming, test-driven development, continuous integration.

  • Kanban – visual workflow management with task boards.

  • Lean Software Development – minimizing waste, maximizing value.


Advantages

  • Faster delivery of usable software.

  • Higher customer satisfaction due to continuous involvement.

  • Easier to adapt to changing needs.

  • Improved teamwork and communication.

Limitations

  • Requires active customer participation.

  • May lack detailed documentation.

  • Not always suitable for very large, safety-critical systems.


In short: Agile methods are lightweight, flexible, and customer-focused approaches to software development, widely used in modern projects where requirements change frequently.