Top Banner
Agile Extreme programming XP
46
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Extreme programming (xp)

Agile Extreme

programming

XP

Page 2: Extreme programming (xp)

Agenda

• Introduce team

• Agile method(brief)

• XP history

• XP with other methods

• XP features

• XP release cycle

• XP principles

• XP values

• The Phases of XP

• Requirements scenarios

• XP testing

• XP advantages and disadvantages

• summery

Page 3: Extreme programming (xp)

Team members

• Mahmoud Sammy NoorEdeen

• Mohamed Abdelrahman

• Yasmeen Magdy

• Yara Osama

• Hend Ramadan

Page 4: Extreme programming (xp)

Agile method

• Focus on software rather than it’s design &

documentation(Working software over comprehensive documentation)

• Involve customer in development approach

• Individuals and interactions over processes

• and tools

• Rely on incremental approach(change over plan)

• Deliver software quickly to customers

Page 5: Extreme programming (xp)

Agile method continue…

• Not fit for larger projects

• Rely on team members understanding

aspects of system without documentation

• All development stages are

interleaved(متداخله)

Page 6: Extreme programming (xp)
Page 7: Extreme programming (xp)
Page 8: Extreme programming (xp)

8

Cost of Errors Increases Through a Project’s Lifetime

Project Phase

Cost

of E

rrors

Page 9: Extreme programming (xp)

Extreme Programming (XP)

Features• New versions may be built several times

per day;

• Increments are delivered to customers

every 2 weeks;

• All tests must be run for every build and

the build is only accepted if tests run

successfully.

Page 10: Extreme programming (xp)

.

Page 11: Extreme programming (xp)

• The project is divided into iterations.

(Divide your development schedule into about a dozen عشرات iterations of 1 to 3

weeks in length. One week is the best choice even though it seems very

short. Keep the iteration length constant through out the project)• Don't schedule your programming tasks in advance. Instead have

an iteration planning meeting at the beginning of each iteration to plan

out what will be done

Page 12: Extreme programming (xp)

XP principles

Incremental planning

Test-first development

Simple design

Small releases

RefactoringContinuous integration

Collective ownership

Pair programming

Sustainable pace

Page 13: Extreme programming (xp)

Incremental planning

(requirements are recorded on

story cards and determined by

time and priority)

Page 14: Extreme programming (xp)

Small releases

The minimal useful first

Page 15: Extreme programming (xp)

• simple design

Page 16: Extreme programming (xp)

Test first

development

Page 17: Extreme programming (xp)

All developers are expected to refactor the code continuously as soon as

possible code improvements are found (i.e. put comments)

Page 18: Extreme programming (xp)

.

Developers work in pairs checking each

other work and provide support to

always do the code work

Page 19: Extreme programming (xp)

The pairs of developers work on all areas of the system, so

that no islands of expertise develop all developers take

responsibility for all the code any one can change any thing

Collective ownership

Page 20: Extreme programming (xp)

MetaphorNames within code and other work artifacts are chosen to be descriptive of the system being created.

Page 21: Extreme programming (xp)

Coding StandardEach team member follows the team standard for format and appearance of the artifacts.

Page 22: Extreme programming (xp)

Whole TeamThe team works together in a lab space or open area where collaboration and communication are maximized.

Page 23: Extreme programming (xp)

As soon as the work on task is complete , it is integrated into the whole

system

Page 24: Extreme programming (xp)

Large amount of

overtime are not

acceptable

Sustainable pace

Page 25: Extreme programming (xp)

On-site customer(representative of the end user of system)

Page 26: Extreme programming (xp)

The Values of Extreme

Programming

Page 27: Extreme programming (xp)

The Values of Extreme Programming

• Simplicity:

do what is needed and asked for, but no more

• Communication:

Everyone is part of the team and we communicate face to face daily

• Feedback:We demonstrate our software early and often then listen carefully and

make any changes needed

• Respect

Everyone gives and feels the respect they deserve as a valued team

member.

• Courage

We will tell the truth about progress and estimates.

Page 28: Extreme programming (xp)

Difference between Values and

practices• Values are more important than practices

aspect that can change to adapt to people (people over

processes)

• they are really a part of the methodology.

Page 29: Extreme programming (xp)

The Phases of XP

Page 30: Extreme programming (xp)
Page 31: Extreme programming (xp)

Phase description

Exploration Project inception, high-level user requirements, technical

prototyping

planning Prioritization of work , break down into releases and first plan

iterations Testing and development of the system includes iterations

planning

Where low level work break down occurs.

End users may work here at refining interface ensuring usability

productionizing Deployment of software into the customer’s production

environment

maintenance Ongoing maintenance ,patches and enhancement

Page 32: Extreme programming (xp)

Requirements scenarios

Page 33: Extreme programming (xp)

Requirements scenarios

Continue…

Customer

making decisions on requirements

User requirements are

expressed as scenarios or user

stories.

The customer chooses the

stories based on their priorities and

the schedule estimates.

the development team breaks them

down into implementation

tasks

Page 34: Extreme programming (xp)

XP and change

Page 35: Extreme programming (xp)

• software engineering is to design for

change

• it proposes constant code improvement

(refactoring) to make changes easier when

they have to be implemented.

Page 36: Extreme programming (xp)

XP testing features

Page 37: Extreme programming (xp)

Test-first development

User involvement in test development and validation

.

Automated test harnesses are used to run all component tests each time that a new release is

built.

Incremental test

development from

scenarios

Page 38: Extreme programming (xp)

XP testing difficulties

Page 39: Extreme programming (xp)

XP testing difficulties

continue..• Programmers prefer programming to testing and

sometimes they take short cuts when writing tests.

• Some tests can be very difficult to write incrementally

• It difficult to judge the completeness of a set of tests.

Although you may have a lot of system tests, your test

set may not provide complete coverage

Page 40: Extreme programming (xp)

XP advantages

• Individuals are not held responsible for problems with the

code. Instead, the team has collective responsibility for

resolving these problems.

• It acts as an informal review process because each line

of code is looked at by at least two people.

• It helps support refactoring

Page 41: Extreme programming (xp)

XP disadvantages

• You may have difficulty to get many developers

accept this practice

• Your customers may be busy

• XP is code centric rather than design

centric development(not fit for large

projects)

Page 42: Extreme programming (xp)

summery

Page 43: Extreme programming (xp)

notice

• Note that CRC not in XP

• In the summery slide

Page 44: Extreme programming (xp)

Extreme programming(XP)

Reference• http://www.extremeprogramming.org

• http://www.xprogramming.com/xpmag/wha

tisxp.htm

• http://www.agilemanifesto.org/

• http://www.poppendieck.com/• The Pragmatic Programmer: From Journeyman to Master,

by Andrew Hunt and David Thomas

Page 45: Extreme programming (xp)
Page 46: Extreme programming (xp)

BEST WISHES

Thank you for watching