Agile Software Development

A set of practices that emphasize iterative development cycles and self-organizing teams. In contrast to waterfall-like projects where value is generated only at the very end of a project, agile software development focuses on a continuous, incremental delivery of value and evolutionary improvement of the process itself.

Problem it addresses

Defining, communicating and understanding requirements for all stakeholders in a software project is very difficult, if not impossible. Yet, customers want their software projects to be delivered on time, in good quality, on budget and on scope. With its cyclical nature, agile software development enables continuous adaptation of requirements and faster adaptation to all other circumstances as opposed to waterfall-like strategies.

How it helps

Agile software development contains all the phases of traditional (waterfall-like) strategies, like requirements engineering, planning, implementation, review, testing and delivery. The biggest difference is that the whole time span of a software project is sliced into iterations, which each contain all those phases. After each iteration, the created value can be reviewed with the customer and requirements can be adjusted towards the end goal. Additionally the development team retrospects on which actions items to take in order to improve the process itself.

Last modified November 30, 2023: chore: remove duplicated lines (e57ed31)