Agile Methodology Definition
Agile Methodology Definition
Agile methodology is a type of project management process, mainly used for software
development, where demands and solutions evolve through the collaborative effort of self-
organizing and cross-functional teams and their customers
There isn’t a single methodology that you can apply across all projects. However, many
teams are moving toward an adaptive methodology, such as Agile, and moving away
from the predictive, Waterfall methodology when developing software. The conventional
Waterfall development method follows strict phases, sticking to the original
requirements and design plan created at the beginning of the project. A project manager
spends time negotiating milestones, features, resources, working at length in the
planning stages of a project, usually developing a full-blown project plan that details
how the work will be moved through many gates to completion.
The history behind Agile software development is one of frustration with the traditional
waterfall methodology. Agile is designed to accommodate change and the need for
faster software development (as discussed in the Agile Manifesto's Values and
Principles). The project leader typically facilitates the work of the development team,
eliminates bottlenecks, and helps the team stay focused in order to deliver software
iterations on a regular basis. It is less about milestones than it is about hours, feature
selection, prioritization, and meetings.
Unlike the Waterfall model, the development team ultimately decides at the beginning of
a sprint (or iteration) what can be accomplished in the timeframe and sets out to build a
series of features, delivering working software that can be installed in a production
environment at the end of the sprint. Since Agile software development methods (such
as Dynamic Systems Development Method- DSDM) are flexible, most are suitable for
method tailoring – where development teams can adapt the flow to meet the needs of
the product.
In 2001, 17 software developers met in Utah and developed The Agile manifesto,
which has twelve core principles. From these core principles, several Agile
methodologies have emerged and they include Scrum, unified process, dynamic
systems development method (DSDM), crystal clear, extreme programming (aka
"XP"), adaptive software development and feature-driven development. And new
flavours continue to emerge.
From Beck, Kent et al. (2001), below are the twelve core principles of the Agile
Manifesto:
This leads to increase in code quality because "programming out loud" leads to clearer
articulation of the complexities and hidden details in coding tasks, reducing the risk of
error or going down blind alleys. It also yields better diffusion of knowledge among
the team. Other benefits include better transfer of skills, large reduction in
coordination efforts, and improved resiliency of a pair to interruptions.