0% found this document useful (0 votes)
29 views47 pages

Agile Process Models 1684041476578

Uploaded by

madhusudan9tab
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)
29 views47 pages

Agile Process Models 1684041476578

Uploaded by

madhusudan9tab
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/ 47

NTA UGC NET SET EXAM

AGILE PROCEE MODEL


RASHMI VISHWAKARMA
Introduction
An agile philosophy for software
– The importance of self-
engineering stresses four key issues organizing teams that have
control over the work they
perform
– Communication and
collaboration between team
members and between
practitioners & their
customers
– A recognition that change
represents an opportunity
– An emphasis on rapid delivery
of software that satisfies the
customer
What is “Agility”?
• Agility means effective (rapid and adaptive) response to change,
effective communication among all stockholder.
• The Agile process, light-weight methods are People-based rather
than plan-based methods.
• The agile process forces the development team to focus on
software itself rather than design and documentation.
• The agile process believes in iterative method.
• The aim of agile process is to deliver the working model of
software quickly to the customer.
Principles to achieve agility
1. Highest priority ==> satisfy
the customer
2. Welcome changing
requirements
3. Deliver working software
frequently
4. Business people and
developers must work
together
5. Build projects around
motivated individuals
6. Emphasize face-to-face
conversation
Principles to achieve agility
7. Working software is the
primary measure of progress
8. Agile processes promote
sustainable development
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
Principles to achieve agility
11. The best designs emerge from
self-organizing teams

12. The team tunes and adjusts its


behavior to become more effective
UGCNET-DEC2018-II-59
UGCNET-DEC2018-II-59
Agile Process Models
• Extreme Programming (XP)
• Adaptive Software Development (ASD)
• Dynamic Systems Development Method (DSDM)
• Scrum
• Crystal
• Feature Driven Development (FDD)
• Agile Modeling (AM)
Extreme Programming (XP)

• The most widely used agile process,


originally proposed by Kent Beck.
• XP uses an object-oriented approach
as its preferred development
paradigm.
• XP suggests a number of innovative
& powerful techniques that allow an
agile team to create frequent software
releases delivering features &
functionality described & prioritized
by the customer.
Extreme Programming (XP)

▪ XP defines four framework


activities:
1) Planning
2) Design
3) Coding
4) Testing
XP – Planning
• Begins with the creation of a set
of stories (also called user
stories)
• 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
• Agile team assesses each story
and assigns a cost
• Stories are grouped together for
a deliverable increment
XP – Planning
• A commitment is made on
delivery date, and the XP team
orders the stories to be
developed
• After the first software
increment, the XP team
computes “project velocity”
which is used to help define
subsequent delivery dates for
other increments.
XP – Design
• Follows the KIS (keep it simple)
principle
• Encourages the use of CRC (class-
responsibility-collaborator) cards as
an effective mechanism for thinking
about the software in an object-
oriented context.
• For difficult design problems, XP
suggests the creation of “spike
solutions”—a design prototype.
XP – Design
• A spike solution is a very simple
program to explore
potential solutions. Build
the spike to only addresses the
problem under examination and
ignore all other concerns.
• Encourages “refactoring”—an
iterative refinement of the internal
program design.
• Design occurs both before and after
coding commences.
XP – Coding
• Recommends the construction of a
series of unit tests for each of the
stories before coding commences
• Encourages “pair programming”
– Mechanism for real-time problem
solving and real-time quality
assurance
– Keeps the developers focused on
the problem at hand
• Needs “continuous integration” with
other portions (stories) of the s/w,
which provides a “smoke testing”
environment that helps to uncover
errors early.
XP – Testing
• Unit tests should be implemented using
a framework to make testing
automated. This encourages a
regression testing strategy.
• Integration and validation testing can
occur on a daily basis.
• Acceptance tests, also called customer
tests, are specified by the customer and
focus on overall system features &
functionality that are visible &
reviewable by the customer.
• Acceptance tests are derived from user
stories.
Adaptive Software Development (ASD)
• ASD stresses human collaboration and team self-organization.
• ASD uses an iterative process that incorporates adaptive cycle
planning , relatively rigorous requirements gathering methods,
and an iterative development cycle that incorporates customer
focus groups & FTRs as real-time feedback mechanism.
Adaptive Software Development (ASD)
Adaptive Software Development (ASD)
• ASD is organized as three framework activities –
1) Speculation ==> Project initiation, Adaptive Cycle
Planning(Customer’s mission statement, Project constraints,
Basic requirements, Time-boxed release plan)
2) Collaboration ==>Motivated people work together in a way
that multiplies their talent and creative output beyond their
absolute number.
3) Learning ==> learning will help team to improve level of
understanding regarding problem.
ASD teams learn in three ways –Focus groups for feedback,
FTRs, Postmortems
Adaptive Software Development (ASD)
Focus groups :- The customer and/or end users provide feedback
on software increments that are being delivered. This
process is direct indication of whether or not product is
satisfying business needs.
Formal technical review – ASD team members review the
software components that are developed, improving quality
and learning as they proceed.
Postmartems – The ASD team becomes introspective, addressing
its own performance and process.
Dynamic Systems Development Method (DSDM)
• An agile software development approach that provides a
framework for building & maintaining systems which meet tight
time constraints through the use of incremental prototyping in a
controlled project environment.
• Similar in some respects the RAD process.
• Suggests a philosophy that is borrowed from a modified version
of the Pareto principle ( 80 % of an application can be delivered
in 20% of the time).
• Like XP & ASD, DSDM suggests an iterative software process.
• Advocates the use of time-box scheduling and suggests that only
enough work is required for each software increment to facilitate
movement to the next increment.
Dynamic Systems Development Method
(DSDM)
▪ DSDM defines three different iterative cycles
1) Functional model iteration:- produces a set of incremental
prototypes that demonstrate functionality for the customer.
2) Design and build iteration :- Revisits the prototype built in
functional model to ensure business values implementation.
3) Implementation:- Places latest software increments
Scrum
• Scrum is an iterative and
incremental agile software
development method.
• Scrum incorporates a set of
process patterns that
emphasize:
– Project priorities
– Compartmentalized work
units
– Communication
– Frequent customer
feedback
Scrum
Scrum - Roles
• Scrum master: The person who leads the team guiding them to
comply with the rules and processes of the methodology.
• Product owner (PO): Is the representative of the stakeholders
and customers who use the software. They Translate the vision
of the project to the team, validate the benefits in stories to be
incorporated into the Product Backlog and prioritize them on a
regular basis.
• Team: A group of professionals with the necessary technical
knowledge who develop the project jointly carrying out the
stories they commit to at the start of each sprint.

Scrum - Events
• Sprint: Sprint is the basic unit of work for a Scrum team. This is
the main feature that marks the difference between Scrum and
other models for agile development.
• Sprint Planning: The goal of the Sprint Planning is to define
what is going to be done in the Sprint and how it is going to be
done.
Scrum - Events
• Daily Scrum: The objective of the Daily Scrum is to evaluate the
progress and trend until the end of the Sprint, synchronizing the
activities and creating a plan for the next 24 hours. It is a brief
meeting that takes place daily during the Sprint period. Three
questions are answered individually: What did I do yesterday? What
am I going to do today? What help do I need? The Scrum Master
should try to solve problems or obstacles that arise.
• Sprint Review: The goal of the sprint review is to show what work
has been completed with regards to the product backlog for future
deliveries. The finished sprint is reviewed, and there should already
be a clear and tangible advancement in the product to present to the
client.
Scrum - Events

• Sprint Retrospective: The team reviews the completed goals of


the finished sprint, write down the good and the bad, so as not to
repeat the mistakes again.
• This stage serves to implement improvements from the point of
view of the development process.
• The goal of the sprint retrospective is to identify possible
process improvements and generate a plan to implement them in
the next Sprint.
Scrum - Artifacts
• Product Backlog (PB): The product backlog is a list that collects
everything the product needs to satisfy the potential customers. It is
prepared by the product owner and the functions are prioritized
according to what is more and less important for the business. The goal
is for the product owner to answer the question “What should be done”.

• Sprint Backlog (SB): It is a subset of items of the product backlog,


which are selected by the team to perform during the sprint on which
they are going to work.
• The team establishes the duration of each Sprint. Usually the sprint
backlog, is displayed on physical boards called as Scrum board – that
makes the development process visible to everyone who enters the
development area.
Scrum - Artifacts

• Increment: The Increment is the sum of all the tasks, use cases,
user stories, product backlogs and any element that was
developed during the sprint and that will be made available to
the end user in the form of Software.
Feature Driven Development (FDD)
▪ Feature Driven Development (FDD) was originally conceived by
Peter Coad and his colleagues as a practical process model for
object-oriented software engineering.
Feature Driven Development (FDD)
Like other agile approaches, FDD adopts a philosophy that
(1) emphasizes collaboration among people on an FDD team
(2) manages problem and project complexity using feature-based
decomposition followed by the integration of software increments,
(3)communication of technical detail using verbal, graphical, and
text-based means.
Feature Driven Development (FDD)
Feature Driven Development
(FDD)
.
The emphasis on the definition of features provides the following benefits:
• Because features are small blocks of deliverable functionality,
users can describe them more easily;
understand how they relate to one another more readily; and
better review them for ambiguity, error, or omissions.

• Features can be organized into a hierarchical business-related grouping.

Since a feature is the FDD deliverable software increment, the team develops
operational features every two weeks
Crystal
The Crystal family is actually a set of
example agile processes that have been
proven effective for different types of
projects.

The intent is to allow agile teams to


select the member of the crystal family
that is most appropriate for their project
and environment.
Crystal
Agility vs. Software Engineering

So…..What you going to choose?


Agility, or Software Engineering?
Agility vs. Software Engineering

You don’t have to choose between agility and


software engineering!
Instead, define a software engineering approach
that is agile.
Dec 2019
Dec 2019
UGCNET-June2015-III-60
UGCNET-June2015-III-60
UGCNET-Nov2017-II-43
UGCNET-Nov2017-II-43

You might also like