Agile Development
Methodology
Agile Methodology is
the most commonly used methodology nowadays in Software Development.
Agile
development methodology illustrates how Agile is the opposite of
traditional waterfall projects where you make a detailed plan and implement the
plan. Making detailed plans is an efficient way of approaching projects when it
is clear what the end product. When you are not, you need to accept it will
take multiple iterations to create the desired end product. That is where Agile
methodology has a clear advantage over traditional project management. Agile
accepts there will be changes and pro-actively accepts this in their
methodologies. Agile is not a new concept and can be traced back to 1957, in the early
1990’s a number of software development methodologies were being used by
software teams such as DSDM 1995, Scrum 1996, Crystal & XP 1996, FDD 1997.
Even though these were all created before the existence of “Agile” they were
the basis for Agile as we know it. In 2001 a group of methodology and
software experts who used these methodologies came together to create a
unified Agile Manifesto.
Four Agile software development values
Individuals and Interactions over
processes and tools
Working Software over
comprehensive documentation
Customer Collaboration over contract
negotiation
Responding to Change over
following a plan
Twelve Agile software development principles
The Manifesto
for Agile Software Development is based on twelve principles:
1.
Customer satisfaction by early and continuous delivery of
valuable software.
2.
Welcome changing requirements, even in late development.
3.
Deliver working software frequently (weeks rather than months)
4.
Close, daily cooperation between business people and developers
5.
Projects are built around motivated individuals, who should be
trusted
6.
Face-to-face conversation is the best form of communication
(co-location)
7.
Working software is the primary measure of progress
8.
Sustainable development, able to maintain a constant pace
9.
Continuous attention to technical excellence and good design
10.
Simplicity—the art of maximizing the amount of work not done—is
essential
11.
Best architectures, requirements, and designs emerge from
self-organizing teams
12.
Regularly, the team reflects on how to become more effective,
and adjusts accordingly
Agile Methodology vs. The traditional Waterfall Methodology
One
of the differences between agile software development methods and waterfall is
the approach to quality and testing. In the waterfall model, there is always a
separate testing phase after a build phase;
however, in agile software development testing is completed in the same
iteration as programming.
Another
difference is that traditional "waterfall" software development moves
a project through various Software Development Lifecycle (SDLC) phases. One phase
is completed in its entirety before moving on to the next phase.
Because
testing is done in every iteration—which develops a small piece of the
software—users can frequently use those new pieces of software and validate the
value. After the users know the real value of the updated piece of software,
they can make better decisions about the software's future. Having a value
retrospective and software re-planning session in each iteration— Scrum typically
has iterations of just two weeks—helps the team continuously adapt its plans so
as to maximize the value it delivers. This follows a pattern similar to
the PDCA cycle, as the work is planned, done, checked (in
the review and retrospective), and any changes agreed are acted upon.
This
iterative approach supports a product rather than a project mindset.
This provides greater flexibility throughout the development process; whereas
on projects the requirements are defined and locked down from the very
beginning, making it difficult to change them later. Iterative product
development allows the software to evolve in response to changes in business
environment or market requirements.
Because
of the short iteration style of agile software development, it also has strong
connections with the lean startup concept.
No comments:
Post a Comment