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

08.2020 Introduction To Agility

The document provides an overview of agile methodology and extreme programming (XP). It discusses key aspects of agility including continuous iteration, collaboration, and valuing working software. For XP, it outlines the planning, design, coding, and testing processes. Planning involves requirements gathering, estimating stories, and scheduling releases. Design uses CRC cards and prototypes. Coding uses pair programming and test-driven development. Testing includes customer acceptance tests.

Uploaded by

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

08.2020 Introduction To Agility

The document provides an overview of agile methodology and extreme programming (XP). It discusses key aspects of agility including continuous iteration, collaboration, and valuing working software. For XP, it outlines the planning, design, coding, and testing processes. Planning involves requirements gathering, estimating stories, and scheduling releases. Design uses CRC cards and prototypes. Coding uses pair programming and test-driven development. Testing includes customer acceptance tests.

Uploaded by

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

27.

08.2020
INTRODUCTION TO AGILITY:
 AGILE methodology is a practice that promotes continuous iteration of
development and testing throughout the software development lifecycle of the
project. In the Agile model, both development and testing activities are concurrent
unlike the Waterfall model.
 The Agile software development methodology is one of the simplest and effective
processes to turn a vision of a business need into software solutions.
 Agile is a term used to describe approaches to software development that employs
continual planning, learning, and improvement, team collaboration, evolutionary
development, early delivery, and it encourages flexible responses to change.
 The agile software development emphasizes on four core values.
1. Individual and team interactions over processes and tools.
2. Working software over comprehensive documentation.
3. Customer collaboration over contract negotiation.
4. Responding to change over following a plan.

Agility Principles:

 Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software.
 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.
 Businesspeople 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 behaviour accordingly.
EXTREME PROGRAMMING:
Extreme Programming (XP), the most widely used approach to agile software development.
Extreme Programming technique is very helpful when there is constantly changing demands
or requirements from the customers or when they are not sure about the functionality of the
system. 
It advocates frequent "releases" of the product in short development cycles, which inherently
improves the productivity of the system and introduces a checkpoint where any customer
requirements can be easily implemented.
Business requirements are gathered in terms of stories. All those stories are stored in a place
called the parking lot.
In this type of methodology, releases are based on the shorter cycles called Iterations with
span of 14 days’ time period. Each iteration includes phases like coding, unit testing and
system testing where at each phase some minor or major functionality will be built in the
application.
XP VALUES:
A set of five values have been defined to establish a foundation for all work performed as
part of XP—communication, simplicity, feedback, courage, and respect. Each of these values
is used as a driver for specific XP activities, actions, and tasks.
communication between software engineers and other stakeholders (e.g., to establish
required features and functions for the software), XP emphasizes close, yet informal (verbal)
collaboration between customers and developers, the establishment of effective metaphors for
communicating important concepts, continuous feedback, and the avoidance of voluminous
documentation as a communication medium.
Simplicity XP restricts developers to design only for immediate needs, rather than consider
future needs. The intent is to create a simple design that can be easily implemented in code).
If the design must be improved, it can be refactored later.
Feedback is derived from three sources: the implemented software itself, the customer, and
other software team members. the software (via test results) provides the agile team with
feedback.
Courage, an agile XP team must have the discipline (courage) to design for today,
recognizing that future requirements may change dramatically, thereby demanding substantial
rework of the design and implemented code.
By following each of these values, the agile team inculcates respect among its members,
between other stakeholders and team members, and indirectly, for the software itself. As they
achieve successful delivery of software increments, the team develops growing respect for
the XP process.
THE EXTREME PROGRAMMING PROCESS:
Extreme Programming uses an object-oriented approach as its preferred development paradigm and
encompasses a set of rules and practices that occur within the context of four framework activities:
planning, design, coding, and testing.

PLANNING:
 The planning activity (also called the planning game) begins with listening—a
requirements gathering activity that enables the technical members of the XP team to
understand the business context for the software.
 Listening leads to the creation of a set of “stories” (also called user stories) that
describe required output, features, and functionality for software to be built.
 Each story is written by the customer and is placed on an index card. The customer
assigns a value (i.e., a priority) to the story based on the overall business value of the
feature or function.
 Members of the XP team then assess each story and assign a cost—measured in
development weeks—to it. If the story is estimated to require more than three
development weeks, the customer is asked to split the story into smaller stories and
the assignment of value and cost occurs again. It is important to note that new stories
can be written at any time.
 Customers and developers work together to decide how to group stories into the next
release (the next software increment) to be developed by the XP team.
 Once a basic commitment (agreement on stories to be included, delivery date, and
other project matters) is made for a release, the XP team orders the stories that will be
developed in one of three ways: (1) all stories will be implemented immediately
(within a few weeks), (2) the stories with highest value will be moved up in the
schedule and implemented first, or (3) the riskiest stories will be moved up in the
schedule and implemented first.
 After the first project release (also called a software increment) has been delivered,
the XP team computes project velocity, is the number of customer stories
implemented during the first release.

 Project velocity can then be used to (1) help estimate delivery dates and schedule for
subsequent releases and (2) determine whether an overcommitment has been made for
all stories across the entire development project.
DESIGN:
 XP design rigorously follows the KIS (keep it simple) principle.
 XP encourages the use of CRC cards.
 CRC (class-responsibility collaborator) cards identify and organize the object-oriented
classes that are relevant to the current software increment. The CRC cards are the
only design work product produced as part of the XP process.
 If a difficult design problem is encountered as part of the design of a story, XP
recommends the immediate creation of an operational prototype of that portion of the
design.
 Called a spike solution, the design prototype is implemented and evaluated. The
intent is to lower risk when true implementation starts and to validate the original
estimates for the story containing the design problem.
 Checks refactoring.
CODING:
 After stories are developed and preliminary design work is done, the team does not
move to code, but rather develops a series of unit tests that will exercise each of the
stories that is to be included in the current release.
 A key concept during the coding activity is pair programming.
 XP recommends that two people work together at one computer workstation to create
code for a story.
 This provides a mechanism for real time problem solving (two heads are often better
than one) and real-time quality assurance (the code is reviewed as it is created).
TESTING:
 XP acceptance tests, also called customer tests, are specified by the customer and
focus on overall system features and functionality that are visible and reviewable by
the customer. Acceptance tests are derived from user stories that have been
implemented as part of a software release.

You might also like