You are on page 1of 4

What is Agile?

The ability to create and respond to change in order to succeed in an uncertain and
turbulent environment.

What is Agile Software Development? Agile Software Development is an umbrella term for a set of
methods and practices based on the values and principles expressed in the Agile Manifesto.

Solutions evolve through collaboration between self-organizing, cross-functional teams utilizing the
appropriate practices for their context.

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 methods or Agile processes generally promote a disciplined
project management process that encourages frequent inspection and adaptation, a leadership
philosophy that encourages teamwork, self-organization and accountability, a set of engineering best
practices intended to allow for rapid delivery of high-quality software, and a business approach that
aligns development with customer needs and company goals. Agile development refers to any
development process that is aligned with the concepts of the Agile Manifesto. The Manifesto was
developed by a group fourteen leading figures in the software industry, and reflects their experience of
what approaches do and do not work for software development.

A Short History of Agile: In the late 1990’s, several methodologies began to gain increasing public
attention, each having a different combination of old and new ideas. These methodologies emphasized
close collaboration between the development team and business stakeholders; frequent delivery of
business value, tight, self-organizing teams; and smart ways to craft, confirm, and deliver code. The term
"Agile" was applied to this collection of methodologies in early 2001 when 17 software development
practitioners gathered in Snowbird, Utah to discuss their shared ideas and various approaches to
software development.

This joint collection of values and principles was expressed in the Manifesto for Agile Software
Development and the corresponding twelve principles.

Agile Alliance was formed shortly after this gathering to encourage practitioners to further explore and
share ideas and experiences. Agile Alliance continues to curate resources to help you adopt Agile
practices and improve your ability to develop software with agility.

Agile Manifesto:

 Individuals and interactions over processes and tools


 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.
The 12 principles are based on the Agile Manifesto.

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software.

2. Welcome changing requirements, even late in development. Agile processes harness change for the
customer's competitive advantage.

3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference
to the shorter timescale.

4. Business people and developers must work together daily throughout the project.

5. Build projects around motivated individuals. Give them the environment and support they need, and
trust them to get the job done.

6. The most efficient and effective method of conveying information to and within a development team
is face-to-face conversation.

7. Working software is the primary measure of progress.

8. Agile processes promote sustainable development. The sponsors, developers, and users should be
able to maintain a constant pace indefinitely.

9. Continuous attention to technical excellence and good design enhances agility.

10. Simplicity--the art of maximizing the amount of work not done--is essential.

11. The best architectures, requirements, and designs emerge from self-organizing teams.

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its
behavior accordingly.

Key Agile Concepts

User Stories: In consultation with the customer or product owner, the team divides up the work to be
done into functional increments called "user stories." Each user story is expected to yield a contribution
to the value of the overall product.

Daily Meeting: Each day at the same time, the team meets so as to bring everyone up to date on the
information that is vital for coordination: each team members briefly describes any "completed"
contributions and any obstacles that stand in their way.

Incremental Development: Nearly all Agile teams favor an incremental development strategy; in an
Agile context, this means that each successive version of the product is usable, and each builds upon the
previous version by adding user-visible functionality.
Iterative Development: Agile projects are iterative insofar as they intentionally allow for "repeating"
software development activities, and for potentially "revisiting" the same work products.

Team: A "team" in the Agile sense is a small group of people, assigned to the same project or effort,
nearly all of them on a full-time basis. A small minority of team members may be part-time contributors,
or may have competing responsibilities.

Milestone Retrospective: Once a project has been underway for some time, or at the end of the
project, all of the team's permanent members (not just the developers) invests from one to three days
in a detailed analysis of the project's significant events.

Personas: When the project calls for it - for instance when user experience is a major factor in project
outcomes - the team crafts detailed, synthetic biographies of fictitious users of the future product: these
are called "personas."

The Agile manifesto encompassed the idea of several pre-existing methodologies including:

 Extreme Programming.
 SCRUM.
 DSDM.
 Adaptive Software Development.
 Crystal,
 Feature-Driven Development,
 Pragmatic Programming.
 Lean Development.

SCRUM

Scrum is a subset of Agile. It is a lightweight process framework for agile development, and the most
widely-used one.

A “process framework” is a particular set of practices that must be followed in order for a process to be
consistent with the framework. (For example, the Scrum process framework requires the use of
development cycles called Sprints, the XP framework requires pair programming, and so forth.)

“Lightweight” means that the overhead of the process is kept as small as possible, to maximize the
amount of productive time available for getting useful work done.

A Scrum process is distinguished from other agile processes by specific concepts and practices, divided
into the three categories of Roles, Artifacts, and Time Boxes. These and other terms used in Scrum are
defined below. Scrum is most often used to manage complex software and product development, using
iterative and incremental practices. Scrum significantly increases productivity and reduces time to
benefits relative to classic “waterfall” processes. Scrum processes enable organizations to adjust
smoothly to rapidly-changing requirements, and produce a product that meets evolving business goals.
An agile Scrum process benefits the organization by helping it to
Increase the quality of the deliverables

Cope better with change (and expect the changes)

Provide better estimates while spending less time creating them

Be more in control of the project schedule and state

SEE WHAT THE SCRUM PROCESS LOOKS LIKE (GRAPHIC) SEE HOW AGILE SAVES YOU MONEY
(INFOGRAPHIC)

You might also like