An agile method is a software development methodology
designed for the management and support of iterative and
incremental development of business systems in environments
where change is constant.
Agile methods use software development techniques that
enhance teamwork in small, empowered teams and support
active customer involvement.
An agile method is designed to produce working software early,
using communication, feedback, learning, and frequent meetings
in preference to modeling and documentation.
Agile software development methodologies is not only suitable
for software developers but also for Team Leaders, Project
Managers, Product Managers, Development Managers, Testers,
QA Managers, QA Engineers, Technical Writers, UX Designers,
anyone involved in the delivering software.
We are uncovering better ways of developing software by
doing it and helping others do it. Through this work we
have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Our highest priority is to satisfy the customer through early and continuous delivery of
Welcome changing requirements, even late in development. Agile processes harness
change for the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with
a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support
they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users
should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity--the art of maximizing the amount of work not done--is essential.
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.
Agile development is not a methodology in itself. It is an umbrella
term that describes several agile methodologies.
These methodologies included
Extreme Programming (XP)
Feature Driven Development (FDD)
Dynamic Software Development Method (DSDM).
Since then, lean practices have also emerged as a valuable agile
methodology and so are included under the agile development
umbrella in the illustration later.
Scrum uses the real-world progress of a project — not a best
guess or uninformed forecast — to plan and schedule
In Scrum, projects are divided into succinct work cadences,
known as sprints, which are typically one to three weeks in
duration. At the end of each sprint, stakeholders and team
members meet to assess the project’s progress and plan its
This allows project’s direction to be adjusted or reoriented
based on the work completed, not speculation or predictions.
Philosophically, the emphasis on an ongoing assessment of
completed work is largely responsible for its popularity with
managers and developers alike. But what allows the Scrum
methodology to really work is a set of roles, responsibilities,
and meetings that never change.
XP has emerged as one of the most popular and controversial
agile methodologies. XP is a disciplined approach to
delivering high-quality software quickly and continuously. It
promotes high customer involvement, rapid feedback loops,
continuous testing and planning, and close teamwork to
deliver working software at very frequent intervals, typically
every 1-3 weeks.
The original XP recipe is based on four simple values –
simplicity, communication, feedback, and courage – and
twelve supporting practices
Customer Acceptance Tests
Collective Code Ownership
FDD is a wrapper methodology, in that it allows you to apply
a method to manage projects at a very high level, but it still
allows you to use other methodologies at a lower level.
FDD's focus is on being able to set estimates and schedules
and to report on the status of a project as a whole, or at a
very granular level, but it doesn't prescribe a specific method
to apply in order to create the schedule, leaving that up to
you to decide.
The idea is that you can look at your project and state with
some certainty what the project status is, whether you are on
time, slipping, early, and so on.
highest business values early on in the
Promotes customer satisfaction
Provides customer driven approach
Focuses on speed of delivery
Provides openness and visibility to customers
Removes impediments in a prioritized and
Improves employee retention by empowering
employees and by promoting self-management,
team communication, learning, and value-building
we can say that Agile has got a number advantages and our
team uses it every time we are faced with tight deadlines and
we have to, as always, be quick and efficient.
Development teams with a maximum of 10 people are best
for agile, for agile loses its original purpose with teams
above that number.
RUP is still the best method for larger projects that need a
lot of documentation and have teams with more than 15
If you haven’t already tried Agile, do it – you might like it
and it may sometimes solve some of your possible