EXTREME PROGRAMMING
AGILE MODEL
Course Title: Software Engineering
Course code:CMP-222
Department : Computer science
Submitted to: FIFTH
Dr.M.Hamid SEMESTER
SESSTION:2022-26
Submitted by:
GC WOMEN
khushnoor (Bscs-02) UNIVERSITY OF
iqra jabeen (Bscs-05)
SIALKOT
Misbah Tariq(Bscs-46)
Nimra Baber(Bscs-18)
Laiba (Bscs-38)
EXTREME PROGRAMMING(XP)
OUTLINE
XP DEFINATION
XP VALUES
XP RULES
PRACTICES
PROJECTS SIZE
EXAMPLE
XP ADVANTAGE AND DIS ADVANTAGE
XP BEST OF USES
ESTIMATION
CONCLUSION
INTRODUCTION TO XP
is a software development methodology which is
intended to improve software quality and
responsiveness to changing customer
requirements.
XP is a lightweight, efficient, low-risk, flexible,
predictable, scientific, and fun way to develop
software.
Is one of the Agile software development
methodologies. It provides values and principles
to guide the team behavior.
XP VALUES
Communication:The essence of communication is for
information and ideas to be exchanged amongst
development team members so that everyone has an
understanding of the system requirements and goals.
Extreme Programming (XP) supports this by allowing open
and frequent communication between members of a
team.
Simplicity: Keeping things as simple as possible helps
reduce complexity and makes it easier to understand and
maintain the code.
Feedback: Feedback loops which are constant are among
testing as well as customer involvements which helps in
detecting problems earlier during development.
Courage: Team members are encouraged to take risks,
speak up about problems, and adapt to change without
fear of repercussions.
Respect: Every member’s input or opinion is appreciated
which promotes a collective way of working among people
who are supportive within a certain group.
XP RULES
Planning
is also known as XP Planning Game
Designing-
The rule is "always use the simplest
possible design that gets the done".*
Coding-
Coding standards are to be
followed.
Testing-
All codes must pass all unit tests
before it is released.
Planning game
Small releases
Metaphor
Good practices in Simple design
extreme programming
testing
refactoring
Pair programming
Continue
integration
One site customer
coding
PRACTECES OF XP
The Planning Game-
The XP planning process. Business gets to specify what the system needs. Development
specifies how much each feature costs and what budget is available per day/week/month.
Small Releases
Every release should be as small as possible, containing the most valuable business
requirements.
Metaphor-
is a simple evocative description of how the program works.
Simple Design
The system should be designed as simply as possible at any given moment
Testing-
Programmers develop software by writing tests first, and then code that fulfills the
requirements reflected in the tests. Customers provide acceptance tests that enable them to
be certain that the features they need are provided
REFACTORING
XP TEAM REFACTOR OUT ANY DUPLICATE CODE GENERATED IN A CODING SESSION
PAIR PROGRAMMING
ALL PRODUCTION CODE KEYBOARD IS WRITTEN BY MOUSES TWO PROGRAMMERS
SITTING AT ONE MACHINE, WIT!
CONTINUOUS INTEGRATION
-CODE IS INTEGRATED AND TESTED MANY TIMES A DAY, ONE SET OF CHANGES AT A
TIME.
ON-SITE CUSTOMER
DEVELOPMENT TEAM HAS CONTINUOUS ACCESS TO THE CUSTOMER WHO WILL
ACTUALLY BE USING THE SYSTEM
CODING STANDARDS
-DEVELOPERS WRITE ALL CODE IN ACCORDANCE WITH THE RULES EMPHASIZING-
COMMUNICATION THROUGH THE CODE THE LEAST AMOUNT OF WORK POSSIBLE. CONSISTENT
WITH THE 'ONCE AND ONLY ONCE RULE (NO DUPLICATE CODE).VOLUNTARY ADOPTION BY THE
WHOLE TEAM.
PROJECT SIZE
•Small Projects: Typically, XP works well with teams of about 2 to 5 members.
Small teams can communicate easily, allowing for rapid feedback and iteration.
•Medium Projects: For medium-sized projects, teams usually consist of 5 to 10
members. These teams can still maintain close collaboration while handling more
complex requirements.
•Large Projects: Large projects might involve multiple XP teams, each with 5 to
10 members. Coordination between teams becomes crucial, often necessitating
additional roles, such as a release manager or integration lead.
EXAMPLE
SMALL PROJECT
EXAMPLE: A PERSONAL BUDGETING APP
DESCRIPTION: A SIMPLE MOBILE APPLICATION THAT HELPS USERS TRACK THEIR INCOME AND
EXPENSES. GIVEN THE DYNAMIC NATURE OF USER REQUIREMENTS (E.G., ADDING NEW
CATEGORIES OR FEATURES BASED ON USER FEEDBACK), XP’S ITERATIVE APPROACH ALLOWS
FOR QUICK ADJUSTMENTS AND ENHANCEMENTS.
MEDIUM PROJECT
EXAMPLE: AN E-COMMERCE WEBSITE
DESCRIPTION: A MID-SIZED ONLINE STORE THAT INCLUDES FEATURES LIKE PRODUCT
LISTINGS, USER ACCOUNTS, AND PAYMENT PROCESSING. AS THE PROJECT EVOLVES, CUSTOMER
FEEDBACK ON USER EXPERIENCE AND NEW MARKET DEMANDS CAN BE RAPIDLY
INCORPORATED THROUGH FREQUENT ITERATIONS AND CLOSE COLLABORATION WITH
STAKEHOLDERS.
LARGE PROJECT
EXAMPLE: A FINANCIAL TRADING PLATFORM
DESCRIPTION: A COMPREHENSIVE PLATFORM FOR TRADING STOCKS, BONDS, AND OTHER
SECURITIES, INVOLVING MULTIPLE TEAMS WORKING ON DIFFERENT COMPONENTS (E.G., REAL-
TIME DATA PROCESSING, USER INTERFACE, COMPLIANCE FEATURES). XP PRACTICES LIKE
CONTINUOUS INTEGRATION AND PAIR PROGRAMMING HELP MAINTAIN HIGH QUALITY AND
ENSURE THAT CHANGES IN ONE PART OF THE SYSTEM DON’T ADVERSELY AFFECT OTHERS,
WHILE REGULAR FEEDBACK LOOPS WITH FINANCIAL EXPERTS GUIDE FEATURE DEVELOPMENT.
NOW HERE IS THE QUESTION:
WHAT ARE THE PROS AND CONS OF
EXTREME PROGRAMMING ?
ADVANTAGE AND DISADVANTAGE
ADVANTAGE DISADVANTAGE
1. Customer Satisfaction: XP 1.High Customer Involvement
focuses on continuous feedback from Needed: XP requires continuous
the customer, ensuring that the final customer feedback, which may not
product meets the customer’s always be feasible. A disengaged or
expectations. unavailable customer can hinder
progress.
2. Flexibility: It allows for changes
at any point in the development 2. Difficult to Scale: XP works well
process, making it adaptable to for small to medium-sized teams but
evolving requirements. can be challenging to implement in
larger teams or organizations.
3. Frequent Releases: XP
3. Frequent Changes: While
encourages short development cycles
(iterations), with frequent releases, flexibility is a benefit, constant
which provides continuous delivery of changes can disrupt planning and lead
functional software. to scope creep if not managed well.4.
USES OF XP
1. Rapidly changing requirements: XP
helps teams adapt to frequent changes in
requirements.
2. Small to medium-sized projects: XP is
suitable for projects with small to medium-
sized teams.
3. High-risk projects: XP's iterative
approach helps mitigate risks by breaking
down complex tasks
ESTIMATION:
1. USER STORIES
DEFINITION: Requirements are captured as user stories, which are brief
descriptions of features from the user's perspective.
ESTIMATION: Each user story is estimated in terms of effort and
complexity, often using story points.
2. PLANNING POKER
TECHNIQUE: A consensus-based estimation technique where team
members use cards to estimate the effort required for user stories.
COLLABORATION: Encourages discussion among team members to
reach a shared understanding of the story's requirements.
CONCLUSION
In summary, the extreme programming (XP) agile model offers a robust
framework for delivering high-quality software through its emphasis on
collaboration, continuous feedback, and adaptive planning. by prioritizing
customer involvement and iterative development, XP enables teams to
quickly respond to changing requirements while fostering a culture of
teamwork and innovation. its practices not only enhance code quality but
also promote a proactive approach to problem-solving, making xp a
powerful choice for dynamic software projects.
THANK YOU FOR BEING HERE!