0% found this document useful (0 votes)
12 views5 pages

Agile Methodology Definition

Agile methodology is a project management approach primarily used in software development that emphasizes iterative progress, collaboration, and flexibility in response to changing requirements. It contrasts with the traditional Waterfall model, which follows a linear and rigid structure, making Agile more suitable for environments where rapid change is common. The Agile Manifesto outlines twelve principles that prioritize customer satisfaction, team collaboration, and adaptability, leading to more efficient and responsive software development processes.

Uploaded by

funclubzap
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views5 pages

Agile Methodology Definition

Agile methodology is a project management approach primarily used in software development that emphasizes iterative progress, collaboration, and flexibility in response to changing requirements. It contrasts with the traditional Waterfall model, which follows a linear and rigid structure, making Agile more suitable for environments where rapid change is common. The Agile Manifesto outlines twelve principles that prioritize customer satisfaction, team collaboration, and adaptability, leading to more efficient and responsive software development processes.

Uploaded by

funclubzap
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

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

Agile software development refers to a group of software development


methodologies based on iterative development, where requirements and
solutions evolve through collaboration between self-organizing cross-
functional teams

Agile Software Development vs. Waterfall Software Development

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.

Customers finalize requirements before development begins and then a lengthy


development process occurs, with the project manager tracking every movement of the
project through each handoff and finally on to delivery. If everything goes well, this
process produces an on-time, on-budget release. The chief drawbacks to this approach
are well-documented: it is not responsive to change and it takes a long time to deliver
working software. When technology forms the field of play and drives every change, a
six month (or longer) release cycle, with requirements chiseled in stone, does not meet
the business need.

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.

The 12 Agile Manifesto Principles Simply Explained

Why were Agile Methodologies developed?

Agile methodologies were developed as a solution to the challenges of the traditional


waterfall model of software development and the traditional project and team
management principles. They started as software development approaches but later
evolved into methods of managing teams and projects. In general, the shift in agile
methodologies entails giving more weight to individuals and interactions over
processes and tools, emphasis on working software over comprehensive
documentation, focus on customer collaboration over contract negotiation and valuing
responsiveness to change rather than the following of a plan.

Business Analysts, Project managers and Software developers ought to familiarize


themselves with Agile methodologies because they are becoming popular, especially
in mid-sized and small organizations. Even PRINCE2 methods are being enhanced to
accommodate Agile methodologies.

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:

1. Customer satisfaction through early and continuous delivery of


useful software
Customer satisfaction is obtained through early delivery of products to customer for
testing and feedback, through continuous delivery to let customer know the
progress and through delivery of values to the customers by fulfilling the top
priority requirements first. The output of each iteration is working code that
can be used to evaluate and respond to changing and evolving user
requirements.
2. Welcome changing requirements, even late in development
This places emphasis on responsiveness to change as opposed to tight alignment to
approved plans. The change control process is simplified and no formal
documentation and approval required. This is harness change for the customer’s
competitive advantage because it allow fast response to latest changes in
external environment to enhance competitive advantage to emerging opportunities.
3. Frequently Delivered Software(weeks rather than months)
This provides immediate values to the customers by delivering working features.
Each iteration or Sprint should lead to a release of a product. The teams make sure
that each feature is fully developed, tested, styled, and accepted by the product owner
before counting it as delivered. The project team activities can be better structured
with the fixed delivery timeframe to focus on delivery of value.
4. Close, daily cooperation between business people and
developers
Agile development principles include keeping requirements and
documentation lightweight, and acknowledging that change is a normal and
acceptable reality in software development. This makes close collaboration
particularly important to clarify requirements just-in-time and to keep all
team members ‘on the same page’ throughout the development.
5. Projects are built around motivated individuals, who should be
trusted
Projects are built around motivated individuals who are given the environment
and support they need, and trusted to get the job done. Team members choose the jobs
they are most interested in through self-organization and not through external
management influence. Micromanagement and top-down approach to
management are shunned.
6. Face-to-face conversation is the best form of communication
Obtain direct feedback by going to the source of problem or confusion and use oral
communication at the workplace for the benefit of osmotic
communication. Virtual team conversations are facilitated via video
conferencing.
7. Collocation and pair programming
This principle is practiced via colocation and pair
programming. Collocation involves collocating a number of teams in the same
open area and pair programming, which entails two programmers sharing a
single workstation (one screen, keyboard and mouse). The programmer at the
keyboard is usually called the "driver", the other, also actively involved in the
programming task but focusing more on overall direction is the "navigator"; it is
expected that the programmers swap roles every few minutes or so.

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.

8. Sustainable development, able to maintain a constant pace


Agile methodologies seek work-life balance among the team members and
promote happiness by avoiding burnout or exhaustion. Through close
collaboration and by being alert and creative, these
methodologies avoid long nights and weekends, during which people try to undo
the errors of unresponsive planning. The sponsors, developers, and users are able to
maintain a constant pace indefinitely.
9. Excellence through Reflection
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes
and adjusts its behavior accordingly. These retrospective meetings ensure that
the lessons learned during the project are put back into the next iteration.
10. Simplicity—the art of maximizing the amount of work not
done—is essential
The Pareto principle or the 80/20 rule is applied. It means that typically 80% of your
results may actually come from only 20% of your efforts! The idea is to focus on
the important 20% of effort that gets the majority of the results. If
you have control over the scope, and if speed-to-market is of primary importance,
why not seek to deliver the important 80% of your product in just 20% of the time?
Focus on what are essential to create value to the project and customer
not on distractors that do not add values like components, process, etc.
11. Self-organizing teams
The team is utterly self-managing under the Scrum methodology. It has autonomy and
responsibility to meet the goals of the sprint and is responsible for determining how it
will accomplish the work to be completed. The basic principle is that the team knows
best how to carry out the work, not the project manager or human resources
department.
12. Regular adaptation to changing circumstance
This is in contrast to capturing all known requirements and baseline the scope so that
any other changes are subject to change control. Agile Development holds that
that requirements emerge and evolve, and that however much analysis and
design you do, this will always be the case because you cannot really know for sure
what you want until you see and use the software. And in the time you would have
spent analyzing and reviewing requirements and designing a solution, external
conditions could also have changed.

You might also like