Extreme programming (xp)
-
Upload
mohamed-abdelrahman -
Category
Education
-
view
761 -
download
0
Transcript of 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
Team members
• Mahmoud Sammy NoorEdeen
• Mohamed Abdelrahman
• Yasmeen Magdy
• Yara Osama
• Hend Ramadan
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
Agile method continue…
• Not fit for larger projects
• Rely on team members understanding
aspects of system without documentation
• All development stages are
interleaved(متداخله)
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.
• 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
XP principles
Incremental planning
Test-first development
Simple design
Small releases
RefactoringContinuous integration
Collective ownership
Pair programming
Sustainable pace
All developers are expected to refactor the code continuously as soon as
possible code improvements are found (i.e. put comments)
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
MetaphorNames within code and other work artifacts are chosen to be descriptive of the system being created.
Coding StandardEach team member follows the team standard for format and appearance of the artifacts.
Whole TeamThe team works together in a lab space or open area where collaboration and communication are maximized.
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.
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.
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
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
• software engineering is to design for
change
• it proposes constant code improvement
(refactoring) to make changes easier when
they have to be implemented.
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
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
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
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)
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