What is Agile Software Development Method?
Agile software development describes a set of principles for software development. In Agile development, requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams.
The Manifesto for Agile Software Development
In February 2001, seventeen software developers, among others Jeff Sutherland, Ken Schwaber, and Alistair Cockburn published the Manifesto for Agile Software Development, in which, through their combined experience of developing software they had come to values as follows.
- Individuals and Interactions over processes and tools
- Working Software over comprehensive documentation
- Customer Collaboration over contract negotiation
- Responding to Change over following a plan
While the secondary concerns were important the primary concerns were more critical to success.
By these terms, they meant
Working software is more useful and welcome than just presenting documents to clients in meetings.
Requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important.
Responding to change
Agile software development methods are focused on quick responses to change and continuous development.
The Manifesto for Agile Software Development is based on twelve principles.
The Twelve Principles are the guiding principles for the methodologies. They describe a culture in which change is welcome, and the customer is the focus of the work. They also demonstrate the movement’s intent as to bring development into alignment with business needs.
- Customer satisfaction by early and continuous delivery of valuable software
- Welcome changing requirements, even in late development
- Working software is delivered frequently (weeks rather than months)
- Close, daily cooperation between business people and developers
- Projects are built around motivated individuals, who should be trusted
- Face-to-face conversation is the best form of communication (co-location)
- Working software is the principal measure of progress
- Sustainable development, able to maintain a constant pace
- Continuous attention to technical excellence and good design
- Simplicity—the art of maximizing the amount of work not done—is essential
- Best architectures, requirements, and designs emerge from self-organizing teams
- Regularly, the team reflects on how to become more effective, and adjusts accordingly
Agile software development methods
Agile software development methods support a broad range of the software development life cycle. Some 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).
Popular agile software development frameworks include (but are not limited to):
- Adaptive software development(ASD)
- Agile modeling
- Agile Unified Process(AUP)
- Crystal Clear methods
- Disciplined agile delivery
- Dynamic systems development method(DSDM)
- Extreme programming(XP)
- Feature-driven development(FDD)
- Lean software development
- Rapid application development(RAD)
Agile software development practices
Agile software development is supported by a number of concrete practices, covering areas like requirements, design, modeling, coding, testing, planning, risk management, process, quality, etc. Some notable agile software development practices include:
- Acceptance test-driven development(ATDD)
- Agile modeling
- Agile testing
- Backlogs(Product and Sprint)
- Behavior-driven development(BDD)
- Business analyst designer method (BADM)
- Continuous integration(CI)
- Cross-functional team
- Domain-driven design(DDD)
- Information radiators (scrum board, task board, visual management board, burndown chart)
- Iterative and incremental development(IID)
- Pair programming
- Planning poker
- Scrum events(sprint planning, daily scrum, sprint review and retrospective)
- Story-driven modeling
- Test-driven development(TDD)
- User story
- User story mapping
- Velocity tracking
The Agile Alliance has provided a comprehensive online guide to applying agile these and other practices.
Check Articles From Categories Health and Parenting Inspiring Stories Technology Microsoft Azure SharePoint O365