# Agile Software Development - Wikipedia
[Readwise URL](https://readwise.io/bookreview/5334056) | [Source URL](https://en.wikipedia.org/wiki/Agile_software_development)
---

---
In software development, agile (sometimes written Agile) practices approach discovering requirements and developing solutions through the collaborative effort of self-organizing and cross-functional teams and their customer(s)/end user(s). It advocates adaptive planning, evolutionary development, early delivery, and continual improvement, and it encourages flexible responses to change. ^95035492
---
lightweight software development methods evolved in reaction to the prevailing heavyweight methods (often referred to collectively as waterfall) that critics described as overly regulated, planned, and micro-managed ^95035493
---
These included: rapid application development (RAD), from 1991; the unified process (UP) and dynamic systems development method (DSDM), both from 1994; Scrum, from 1995; Crystal Clear and extreme programming (XP), both from 1996; and feature-driven development, from 1997. Although these all originated before the publication of the Agile Manifesto, they are now collectively referred to as agile software development methods. ^95035494
---
> Individuals and interactions over processes and tools
> Working software over comprehensive documentation
> Customer collaboration over contract negotiation
> Responding to change over following a plan
^95035495
---
Each iteration involves a cross-functional team working in all functions: planning, analysis, design, coding, unit testing, and acceptance testing ^95035496
---
The principle of co-location is that co-workers on the same team should be situated together to better establish the identity as a team and to improve communication. ^95035497
---
information radiator is a (normally large) physical display located prominently near the development team, where passers-by can see it. It presents an up-to-date summary of the product development status. ^95035498
**Note:** In [[Shape Up]], this is replaced by [[Hill Charts]], which provide much less detail and only reflect the amount of uncertainty left.
---
A common characteristic in agile software development is the daily stand-up ^95035499
---
Development methods exist on a continuum from adaptive to predictive. Agile software development methods lie on the adaptive side of this continuum. ^95035500
---
Agile software development methods support a broad range of the software development life cycle. Some methods focus on the practices (e.g., XP, pragmatic programming, agile modeling), while some focus on managing the flow of work (e.g., Scrum, Kanban). Some support activities for requirements specification and development (e.g., FDD), while some seek to cover the full development life cycle (e.g., DSDM, RUP). ^95035501
---
However, this does not justify completely doing without any analysis or design at all. Failure to pay attention to design can cause a team to proceed rapidly at first but then to have significant rework required as they attempt to scale up the system. ^95035502
---
Focusing on delivering new functionality may result in increased technical debt. ^95035503
---
> Developer burnout
> \
> Due to the focused pace and continuous nature of agile practices, there is a heightened risk of burnout among members of the delivery team.
^95035504
---