Generated by DeepSeek V3.2| Agile software development | |
|---|---|
| Name | Agile software development |
| Influenced by | Lean manufacturing, Rapid application development, Extreme programming, Scrum (software development) |
| Influenced | DevOps, Lean software development, Kanban (development) |
| Year started | 2001 |
| Founders | Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas |
Agile software development is an iterative approach to project management and software creation that emphasizes flexibility, customer collaboration, and rapid delivery of functional software. It emerged as a direct response to the perceived shortcomings of traditional, plan-driven methodologies like the waterfall model. The approach is formally defined by the Agile Manifesto, a seminal document created in 2001 at The Lodge at Snowbird ski resort in Utah.
The conceptual roots can be traced to earlier iterative and lightweight methods developed in the 1990s, including Rapid application development, Scrum (software development), Extreme programming, and Dynamic Systems Development Method. Influences also came from Lean manufacturing principles pioneered at Toyota. Dissatisfaction with the rigid, documentation-heavy waterfall model culminated in February 2001, when seventeen prominent software practitioners, including Kent Beck, Martin Fowler, Ken Schwaber, and Jeff Sutherland, met at The Lodge at Snowbird. This gathering produced the Agile Manifesto, which articulated four core values and twelve principles, establishing a unified identity for these various lightweight approaches. The term "agile" was popularized by the Manifesto for Agile Software Development.
The philosophy is encapsulated in the four values of the Agile Manifesto: prioritizing individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan. These values are supported by twelve guiding principles, which emphasize early and continuous delivery of valuable software, welcoming changing requirements, frequent delivery, daily collaboration between business people and developers, motivated individuals, face-to-face conversation, working software as the primary measure of progress, sustainable development, technical excellence, simplicity, self-organizing teams, and regular reflection and adjustment. These ideas were further refined by thought leaders like Alistair Cockburn and Robert C. Martin.
Several specific frameworks and methods operate under the umbrella, each with distinct practices. Scrum (software development) is one of the most widely adopted, utilizing time-boxed iterations called sprints and roles like the Scrum Master and Product Owner. Extreme programming, championed by Kent Beck, focuses on engineering practices like test-driven development and pair programming. Other notable methodologies include Kanban (development), which visualizes workflow on a Kanban board; Feature-Driven Development; the Dynamic Systems Development Method; and Crystal Clear. Frameworks like Scaled Agile Framework (SAFe) and Large-Scale Scrum (LeSS) adapt these principles for larger enterprises and organizations like IBM and Microsoft.
Teams employ a variety of concrete practices to implement the principles. These include iterative development in short cycles, daily stand-up meetings, sprint planning and sprint review sessions, and maintaining a prioritized product backlog. Key engineering techniques often associated include test-driven development, continuous integration, refactoring, pair programming, and collective code ownership. Tools like Jira, Trello, and Azure DevOps are commonly used to facilitate these practices. Regular retrospective meetings, a concept emphasized in Scrum (software development), allow teams to inspect and adapt their process.
Reported benefits include increased adaptability to changing market conditions, higher customer satisfaction through frequent delivery and collaboration, improved product quality via continuous testing, and faster time to market. However, significant challenges exist. These can include difficulties in scaling to large, distributed organizations, resistance from traditional management structures, potential for scope creep without disciplined backlog management, and the requirement for significant cultural change within institutions like the United States Department of Defense. Success often depends heavily on experienced coaching, strong commitment from leadership at companies like Spotify or Amazon, and a mature, disciplined team culture.
Category:Software development philosophies Category:Project management