Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
7 views20 pages

Agile Process and Extreme Programming

The document outlines key concepts of Agile software development, emphasizing its adaptability, effective communication, and iterative delivery of software. It details methodologies like Extreme Programming (XP) and SCRUM, highlighting their processes, roles, and principles aimed at enhancing collaboration and responsiveness to change. The principles of agility focus on customer satisfaction, continuous delivery, and maintaining simplicity in design and coding practices.

Uploaded by

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

Agile Process and Extreme Programming

The document outlines key concepts of Agile software development, emphasizing its adaptability, effective communication, and iterative delivery of software. It details methodologies like Extreme Programming (XP) and SCRUM, highlighting their processes, roles, and principles aimed at enhancing collaboration and responsiveness to change. The principles of agility focus on customer satisfaction, continuous delivery, and maintaining simplicity in design and coding practices.

Uploaded by

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

IT2203 - Software Engineering

Unit I - Software Process and Agile Development

Agile Process
Extreme Programming
SCRUM Process

Dr. Vendhan Duraisamy


KAMARAJ College of Engineering and Technology
Introduction to Agility
In agile software development process,

• It is a nimble team able to appropriately respond to changes.

• Effective (rapid and adaptive) response to change.

• Effective communication among all the stakeholders.

• Organizing a team so that it is in control of the work performed.

Yielding …

• Rapid, incremental delivery of software.

2
An Agile Process
Any agile software process is characterized in a manner that
addresses a number of key assumptions about the majority of
software projects:

• Is driven by customer descriptions of what is required


(scenarios).

• Develops software iteratively and delivers multiple ‘software


increments’.

• Adapts as changes occur.

3
Agility and the Cost of Change

4
Agility and the Cost of Change

• In software development the cost of change increases


nonlinearly as a project progresses (solid black curve).

• It is relatively easy to accommodate a change when a


software team is gathering requirements (early in a project).

• An agile process reduces the cost of change because the


software is released in increments and change can be
controlled within an increment.

5
Agility Principles
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.

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
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.

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.
7
Extreme Programming (XP)
• Extreme programming is the most widely used approach to
agile software development.

• Most recently a variant of XP called IXP (Industrial XP) has


been defined.

• IXP refines XP and targets the agile process specifically for use
within large organization.

Beck defines five XP values


1. Communication 2. Simplicity
3. Feedback 4. Courage
5. Respect
XP Process
Extreme programming uses an object oriented approach that
practices four framework activities.
1. Planning 2. Design

3. Coding 4. Testing
XP Process - Planning
The planning activity begins with listening a requirements
gathering activity that enables the technical members of XP to
understand the requirements.

• 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.

• Members of the XP team then assess each story and assign a cost-
measured in development weeks to it.

• 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 developed by the XP team.
XP Process - Planning
• 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 change occurs again.

• Once a basic commitment 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.

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.

• Project velocity is the number of customer stories implemented


during the first release.

Project velocity can then be used to:

1. Estimate delivery dates and schedule for subsequent releases.

2. Determine whether an over commitment has been made for all


stories across the entire development project.

3. If an over commitment occurs, the content of releases is


modified or end delivery dates are changed.
XP Process - Design
• XP design follows the KIS (keep it simple) principle.

• A simple design is always preferred over a more complex


representation.

• XP encourages the use of CRC (Class-Responsibility


Collaborator) cards as an effective mechanism for thinking
about the software in an object-oriented context.

• If a difficult design, 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.
XP Process - Coding
• After design work is done, the team does not move to code, but
rather develops a series of unit tests.

• Once the unit test has been created, the developer is better able
to focus on what must be implemented to pass the test.

• Once the code is complete, it can be unit-tested immediately,


thereby providing instantaneous feedback to the developers.

• A key concept during the coding activity is pair programming.

• For example, one person might think about the coding details of a
particular portion of the design while the other ensures that coding
standards are being followed or that the code for the story will
satisfy the unit test to validate the code against the story.
XP-Process Coding
• This continuous integration strategy helps to avoid
compatibility and interfacing problems and provides a smoke
testing environment that helps to uncover errors early.

• XP encourages Refactoring a construction technique that is also


a method for design optimization.

• Refactoring is the process of changing a software system in


such a way that it does not alter the external behavior of the
code yet improves the internal structure.

• The intent of refactoring is to control these modifications by


suggesting small design changes that can radically improve the
design.
XP Process - Testing
• The creation of unit tests before coding commences as a key
element of the XP approach.

• This encourages a regression testing strategy whenever code is


modified.

• 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.
SCRUM
• Scrum is derived from an activity that occurs during a rugby
match.

• It is an agile development method by jeff sutherland in 1990.

• It incorporates the following framework activities.

Requirements, Analysis, Design, Evolution and Delivery

Key Roles and Responsibilities

1. Product Owner - Customer to guide the team


2. Scrum Master - Project manager
3. Team Member - Cross-functional team members
SCRUM PROCESS
1. Backlog - A prioritized list of project requirements or features
that provides business value for the customer.

Features can be added to the backlog at any time.

i. Product Backlog - Lists all the prioritized features that remain


to be developed.

ii. Sprint Backlog - During sprint planning meeting, team


identifies one or more features to be assigned.

iii. Sprint Burndown Chart - Tool to visualize the progress made


and the work remaining on a daily basis.
2. Sprint - Consists of work units that are required to achieve a
requirement defined in the backlog in a predefined time, typically 30
days.

Changes are not introduced during the sprint.

3. Scrum Meetings - Short meeting (15 minutes) held daily by the


scrum team.

• What did you do since the last team meeting?


• What obstacles are you encountering?
• What do you plan to accomplish by the next team meeting?

It includes
1. Sprint Planning 2. Daily Scrum 3. Sprint Review Meeting

You might also like