SlideShare a Scribd company logo
1 of 28
Muaaz Hasan Zubairi
University of Management and Technology Lahore
XP(Extreme Programming)
The first Extreme Programming project
was started March 6, 1996. Extreme
Programming is one of several
popular Agile Processes. It has already
been proven to be very successful at
many companies of all different sizes and
industries world wide.
Extreme Programming is successful
because it stresses customer satisfaction.
Instead of delivering everything you could
possibly want on some date far in the
future this process delivers the software
you need as you need it
Extreme Programming empowers your
developers to confidently respond to
changing customer requirements, even
late in the life cycle.
Extreme Programming emphasizes
teamwork. Managers, customers, and
developers are all equal partners in a
collaborative team. Extreme Programming
implements a simple, yet effective
environment enabling teams to become
highly productive. The team self-organizes
around the problem to solve it as
efficiently as possible.
Major principles of the model
Extreme Programming improves a
software project in five essential ways;
communication, simplicity, feedback,
respect, and courage.
Extreme Programmers constantly communicate
with their customers and fellow programmers.
They keep their design simple and clean. They
get feedback by testing their software starting on
day one. They deliver the system to the
customers as early as possible and implement
changes as suggested. Every small success
deepens their respect for the unique
contributions of each and every team member.
With this foundation Extreme Programmers are
able to courageously respond to changing
requirements and technology
The most surprising aspect of Extreme
Programming is its simple rules. Extreme
Programming is a lot like a jig saw puzzle.
There are many small pieces. Individually
the pieces make no sense, but when
combined together a complete picture can
be seen. The rules may seem awkward
and perhaps even naive at first, but are
based on sound values and principles.
Major factor of agility which is handled
by this model
Welcome changing requirements, even late
in
development. Agile processes harness
change for the customer's competitive
advantage.
Business people and developers must work
together daily throughout the project.
Simplicity--the art of maximizing the amount
of work not done--is essential.
Human Factors
Software Engineering Methods
the value of communication is expressed
by the practices pair programming.
It is also explained how the “40-hour
week” (or, sustainable pace, or no
extended overtime) is based on the
assumption that tired programmers make
more mistakes.
Working in Teams:
It is explained that a team using agile
processes probably functions better as a
democratic team, since there are no
layers in between the manager and the
engineers, and communication, valued by
many of the agile processes, is enhanced.
practice of collective ownership
ensures the democratic approach.
Particularly, with respect to XP teams, the
human related
topic of small ego that is necessary for
any democratic is emphasized. In
addition, it is
discussed how the XP practices may
increase trust among team members.
Software as a Product
examines the human aspect of software
engineering from the perspective of the
customers - the people that use software
products. It
focuses on how users and developers deal
with defining software requirements in a way
that
fulfill customers’ needs. Indeed, the process
of defining customer’s requirements is
viewed
in this lesson as a process in which both the
customer and the developers participate.
If a software team wishes to produce the
software that the customer needs, the
customer should be able to give the
developers on going feedback. For this
purpose the customer should be on-site.
Learning Processes in Software
Engineering:
There is a lot of learning like how to
communicate with different people.
How to work together.
Pros and cons
Done well, XP gets a team to gel more than
anything.
It builds true competency in all team members.
It makes for an enjoyable and honest work day.
It gets people out of their cubes and talking to
one another.
It teaches developers about how to write quality
code and how to improve their notions of design;
it helps them to improve estimates. It improves
the resumes of developers.
It gives management many tools, including
predictability, flexibility of resources,
consistency, and visibility into what's really
going on.
It gives customers the ability to see whether
or not a company can deliver on its promises.
A personal favorite: you don't spend a lot of
time in stupid, wasteful meetings, and you
don't produce a lot of useless documents that
no one reads and that aren't trustworthy
anyway.
When should Extreme
Programming be Used?
Extreme Programming (XP) was created in
response to problem domains whose
requirements change. Your customers may
not have a firm idea of what the system
should do. You may have a system whose
functionality is expected to change every few
months. In many software environments
dynamically changing requirements is the
only constant. This is when XP will succeed
while other methodologies do not.
XP was also set up to address the problems
of project risk. If your customers need a new
system by a specific date the risk is high. If
that system is a new challenge for your
software group the risk is even greater. If
that system is a new challenge to the entire
software industry the risk is greater even
still. The XP practices are set up to mitigate
the risk and increase the likelihood of
success.
XP is set up for small groups of
programmers. Between 2 and 12, though
larger projects of 30 have reported success.
Your programmers can be ordinary, you don't
need programmers with a Ph.D. to use XP.
But you can not use XP on a project with a
huge staff. We should note that on projects
with dynamic requirements or high risk you
may find that a small team of XP
programmers will be more effective than a
large team anyway.
Phases of extreme programming
1) Planning
The first phase of Extreme Programming life
cycle is planning, where customers or users meet
with the development team to create ‘user
stories’ or requirements. The development team
converts user stories into iterations that cover a
small part of the functionality or features
required. A combination of iterations provides
the customer with the final fully functional
product.
The programming team prepares the plan, time,
and costs of carrying out the iterations, and
individual developers sign up for iterations.
Designing
An iteration of XP programming starts with designing.
The guiding principles of this stage are:
Thrust on simplicity by expressing a thing only once and not
adding functionality in anticipation.
Using systems metaphor or standards on names, class names and
methods, and agreeing on uniform styles and formats to ensure
compatibility among the work of different team members
Using Software Class Responsibilities and Collaboration (CRC)
Cards that allow for a departure from the traditional procedural
mindset and make possible object oriented technology. Such
cards allow all members of the project team to contribute ideas,
and collate the best ideas into the design
Creating spike solutions or simple programs that explore potential
solutions for a specific problem, ignoring all other concerns, to
mitigate risk
Coding
Coding constitutes the most important phase in the Extreme Programming life
cycle. XP programming gives priority to the actual coding over all other tasks
such as documentation to ensure that the customer receives something
substantial in value at the end of the day.
Standards related to coding include:
Developing the code based on the agreed metaphors and standards, and
adopting a policy of collective code ownership.
Pair programming or developing code by two programmers working together
on a single machine, aimed at producing higher quality code at the same or
less cost.
Strict adherence to 40-hour workweeks with no overtime. This ensures the
developers work in the peak of their mental and physical faculties.
Frequent integration of the code to the dedicated repository, with only one pair
integrating at a time to prevent conflicts, and optimization at the end.
Testing
Extreme program integrates testing with the
development phase rather than at the end of
the development phase. All codes have unit
tests to eliminate bugs, and the code passes
all such unit tests before release.
Another key test is customer acceptance
tests, based on the customer specifications.
Acceptance test run at the completion of the
coding, and the developers provide the
customer with the results of the acceptance
tests along with demonstrations.
Listening
The basis of extreme programming is a continuous
mechanism of customer involvement through feedback
during the development phase. Apart from the customer,
the developer also receives feedback from the project
manager.
The basis of feedback is the customer acceptance tests.
Each feedback of the customer that specifies revised
requirement becomes the basis of a new design, and the
process of design-coding-tests-listening repeats itself. If
the customer remains satisfied with the test results the
iteration ends there, and the design for the new iteration
starts, which again follows the design-coding-testing-
listening cycle.
Extreme programming Vs Spiral
Model
Agile Programming is quite similar to the
Spiral software development methodology
except that Agile has shorter iteration times.
Agile Programming is particularly effective on
smaller projects (say, 10 or fewer team
members), non-critical projects (in other
words, not projects such as medical or
weapons systems), and non-distributed
systems (in other words, when all team
members are in one physical location).
Scrum vs xp
Scrum teams do not allow changes into their
sprints. Once the sprint planning meeting is
completed and a commitment made to
delivering a set of product backlog items,
that set of items remains unchanged through
the end of the sprint. XP teams are much
more amenable to change within their
iterations. As long as the team hasn’t started
work on a particular feature, a new feature of
equivalent size can be swapped into the XP
team’s iteration in exchange for the unstarted
feature.
Scrum doesn’t prescribe any engineering
practices; XP does. I love the XP
engineering practices, particularly things
like test-driven development, the focus on
automated testing, pair programming,
simple design, refactoring, and so on.

More Related Content

What's hot

Agile Scrum Presentation-Detailed
Agile Scrum Presentation-DetailedAgile Scrum Presentation-Detailed
Agile Scrum Presentation-DetailedPrashaanth T R
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineeringRupesh Vaishnav
 
extreme Programming
extreme Programmingextreme Programming
extreme ProgrammingBilal Shah
 
Agile & SCRUM basics
Agile & SCRUM basicsAgile & SCRUM basics
Agile & SCRUM basicsArun R
 
Agile Software Development Model
Agile Software Development ModelAgile Software Development Model
Agile Software Development ModelRitika Balagan
 
Agile software development
Agile software developmentAgile software development
Agile software developmentRajesh Piryani
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAniruddha Chakrabarti
 
Adaptive software development
Adaptive software developmentAdaptive software development
Adaptive software developmentJenita lamichhane
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software EngineeringPurvik Rana
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development MethodologiesPradeep Patel, PMP®
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPTMohit Kumar
 
Executive Presentation on Agile Project Management by Boardroom Metrics Inc.
Executive Presentation on Agile Project Management by Boardroom Metrics Inc.Executive Presentation on Agile Project Management by Boardroom Metrics Inc.
Executive Presentation on Agile Project Management by Boardroom Metrics Inc.Boardroom Metrics
 

What's hot (20)

Scrum ppt
Scrum pptScrum ppt
Scrum ppt
 
Agile Scrum Presentation-Detailed
Agile Scrum Presentation-DetailedAgile Scrum Presentation-Detailed
Agile Scrum Presentation-Detailed
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Agile Teams
Agile TeamsAgile Teams
Agile Teams
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Agile & SCRUM basics
Agile & SCRUM basicsAgile & SCRUM basics
Agile & SCRUM basics
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Agile Software Development Model
Agile Software Development ModelAgile Software Development Model
Agile Software Development Model
 
What Is Agile Scrum
What Is Agile ScrumWhat Is Agile Scrum
What Is Agile Scrum
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Agile (Scrum)
Agile (Scrum)Agile (Scrum)
Agile (Scrum)
 
Scrum Process
Scrum ProcessScrum Process
Scrum Process
 
Extreme Programming ppt
Extreme Programming pptExtreme Programming ppt
Extreme Programming ppt
 
Adaptive software development
Adaptive software developmentAdaptive software development
Adaptive software development
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPT
 
Executive Presentation on Agile Project Management by Boardroom Metrics Inc.
Executive Presentation on Agile Project Management by Boardroom Metrics Inc.Executive Presentation on Agile Project Management by Boardroom Metrics Inc.
Executive Presentation on Agile Project Management by Boardroom Metrics Inc.
 

Similar to Xp(Xtreme Programming) presentation

Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practicesjackcrews
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesJérôme Kehrli
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingMr SMAK
 
Different Methodologies Used By Programming Teams
Different Methodologies Used By Programming TeamsDifferent Methodologies Used By Programming Teams
Different Methodologies Used By Programming TeamsNicole Gomez
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingAdrianCuza
 
Strengths And Weaknesses Of Software Development
Strengths And Weaknesses Of Software DevelopmentStrengths And Weaknesses Of Software Development
Strengths And Weaknesses Of Software DevelopmentBrianna Johnson
 
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALAlex Tarra
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingadiluos
 
Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.Ali Shaikh
 
Unit_1_Agile development.pdf about the script of software
Unit_1_Agile development.pdf about the script of softwareUnit_1_Agile development.pdf about the script of software
Unit_1_Agile development.pdf about the script of softwarezeelp3114
 
A Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements SpecificationA Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements SpecificationQuekelsBaro
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingAYUSH JAIN
 
Implementation Of Incremental Development Process
Implementation Of Incremental Development ProcessImplementation Of Incremental Development Process
Implementation Of Incremental Development ProcessSherry Bailey
 

Similar to Xp(Xtreme Programming) presentation (20)

Agile Values, Principles and Practices
Agile Values, Principles and PracticesAgile Values, Principles and Practices
Agile Values, Principles and Practices
 
A littlebook about agile
A littlebook about agileA littlebook about agile
A littlebook about agile
 
Periodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and PracticesPeriodic Table of Agile Principles and Practices
Periodic Table of Agile Principles and Practices
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Different Methodologies Used By Programming Teams
Different Methodologies Used By Programming TeamsDifferent Methodologies Used By Programming Teams
Different Methodologies Used By Programming Teams
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Strengths And Weaknesses Of Software Development
Strengths And Weaknesses Of Software DevelopmentStrengths And Weaknesses Of Software Development
Strengths And Weaknesses Of Software Development
 
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Unit2
Unit2Unit2
Unit2
 
Agiel sw development
Agiel sw developmentAgiel sw development
Agiel sw development
 
Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.Extreme Programming (XP) as A Popular Agile methodology.
Extreme Programming (XP) as A Popular Agile methodology.
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Agile Methodologies & Key Principles
Agile Methodologies & Key Principles Agile Methodologies & Key Principles
Agile Methodologies & Key Principles
 
Unit_1_Agile development.pdf about the script of software
Unit_1_Agile development.pdf about the script of softwareUnit_1_Agile development.pdf about the script of software
Unit_1_Agile development.pdf about the script of software
 
A Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements SpecificationA Basic Introduction to Creating a Software Requirements Specification
A Basic Introduction to Creating a Software Requirements Specification
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Implementation Of Incremental Development Process
Implementation Of Incremental Development ProcessImplementation Of Incremental Development Process
Implementation Of Incremental Development Process
 

Recently uploaded

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 

Recently uploaded (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 

Xp(Xtreme Programming) presentation

  • 1. Muaaz Hasan Zubairi University of Management and Technology Lahore XP(Extreme Programming)
  • 2. The first Extreme Programming project was started March 6, 1996. Extreme Programming is one of several popular Agile Processes. It has already been proven to be very successful at many companies of all different sizes and industries world wide.
  • 3. Extreme Programming is successful because it stresses customer satisfaction. Instead of delivering everything you could possibly want on some date far in the future this process delivers the software you need as you need it
  • 4. Extreme Programming empowers your developers to confidently respond to changing customer requirements, even late in the life cycle.
  • 5. Extreme Programming emphasizes teamwork. Managers, customers, and developers are all equal partners in a collaborative team. Extreme Programming implements a simple, yet effective environment enabling teams to become highly productive. The team self-organizes around the problem to solve it as efficiently as possible.
  • 6. Major principles of the model Extreme Programming improves a software project in five essential ways; communication, simplicity, feedback, respect, and courage.
  • 7. Extreme Programmers constantly communicate with their customers and fellow programmers. They keep their design simple and clean. They get feedback by testing their software starting on day one. They deliver the system to the customers as early as possible and implement changes as suggested. Every small success deepens their respect for the unique contributions of each and every team member. With this foundation Extreme Programmers are able to courageously respond to changing requirements and technology
  • 8. The most surprising aspect of Extreme Programming is its simple rules. Extreme Programming is a lot like a jig saw puzzle. There are many small pieces. Individually the pieces make no sense, but when combined together a complete picture can be seen. The rules may seem awkward and perhaps even naive at first, but are based on sound values and principles.
  • 9. Major factor of agility which is handled by this model Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Business people and developers must work together daily throughout the project. Simplicity--the art of maximizing the amount of work not done--is essential.
  • 10. Human Factors Software Engineering Methods the value of communication is expressed by the practices pair programming. It is also explained how the “40-hour week” (or, sustainable pace, or no extended overtime) is based on the assumption that tired programmers make more mistakes.
  • 11. Working in Teams: It is explained that a team using agile processes probably functions better as a democratic team, since there are no layers in between the manager and the engineers, and communication, valued by many of the agile processes, is enhanced.
  • 12. practice of collective ownership ensures the democratic approach. Particularly, with respect to XP teams, the human related topic of small ego that is necessary for any democratic is emphasized. In addition, it is discussed how the XP practices may increase trust among team members.
  • 13. Software as a Product examines the human aspect of software engineering from the perspective of the customers - the people that use software products. It focuses on how users and developers deal with defining software requirements in a way that fulfill customers’ needs. Indeed, the process of defining customer’s requirements is viewed in this lesson as a process in which both the customer and the developers participate.
  • 14. If a software team wishes to produce the software that the customer needs, the customer should be able to give the developers on going feedback. For this purpose the customer should be on-site.
  • 15. Learning Processes in Software Engineering: There is a lot of learning like how to communicate with different people. How to work together.
  • 16. Pros and cons Done well, XP gets a team to gel more than anything. It builds true competency in all team members. It makes for an enjoyable and honest work day. It gets people out of their cubes and talking to one another. It teaches developers about how to write quality code and how to improve their notions of design; it helps them to improve estimates. It improves the resumes of developers.
  • 17. It gives management many tools, including predictability, flexibility of resources, consistency, and visibility into what's really going on. It gives customers the ability to see whether or not a company can deliver on its promises. A personal favorite: you don't spend a lot of time in stupid, wasteful meetings, and you don't produce a lot of useless documents that no one reads and that aren't trustworthy anyway.
  • 18. When should Extreme Programming be Used? Extreme Programming (XP) was created in response to problem domains whose requirements change. Your customers may not have a firm idea of what the system should do. You may have a system whose functionality is expected to change every few months. In many software environments dynamically changing requirements is the only constant. This is when XP will succeed while other methodologies do not.
  • 19. XP was also set up to address the problems of project risk. If your customers need a new system by a specific date the risk is high. If that system is a new challenge for your software group the risk is even greater. If that system is a new challenge to the entire software industry the risk is greater even still. The XP practices are set up to mitigate the risk and increase the likelihood of success.
  • 20. XP is set up for small groups of programmers. Between 2 and 12, though larger projects of 30 have reported success. Your programmers can be ordinary, you don't need programmers with a Ph.D. to use XP. But you can not use XP on a project with a huge staff. We should note that on projects with dynamic requirements or high risk you may find that a small team of XP programmers will be more effective than a large team anyway.
  • 21. Phases of extreme programming 1) Planning The first phase of Extreme Programming life cycle is planning, where customers or users meet with the development team to create ‘user stories’ or requirements. The development team converts user stories into iterations that cover a small part of the functionality or features required. A combination of iterations provides the customer with the final fully functional product. The programming team prepares the plan, time, and costs of carrying out the iterations, and individual developers sign up for iterations.
  • 22. Designing An iteration of XP programming starts with designing. The guiding principles of this stage are: Thrust on simplicity by expressing a thing only once and not adding functionality in anticipation. Using systems metaphor or standards on names, class names and methods, and agreeing on uniform styles and formats to ensure compatibility among the work of different team members Using Software Class Responsibilities and Collaboration (CRC) Cards that allow for a departure from the traditional procedural mindset and make possible object oriented technology. Such cards allow all members of the project team to contribute ideas, and collate the best ideas into the design Creating spike solutions or simple programs that explore potential solutions for a specific problem, ignoring all other concerns, to mitigate risk
  • 23. Coding Coding constitutes the most important phase in the Extreme Programming life cycle. XP programming gives priority to the actual coding over all other tasks such as documentation to ensure that the customer receives something substantial in value at the end of the day. Standards related to coding include: Developing the code based on the agreed metaphors and standards, and adopting a policy of collective code ownership. Pair programming or developing code by two programmers working together on a single machine, aimed at producing higher quality code at the same or less cost. Strict adherence to 40-hour workweeks with no overtime. This ensures the developers work in the peak of their mental and physical faculties. Frequent integration of the code to the dedicated repository, with only one pair integrating at a time to prevent conflicts, and optimization at the end.
  • 24. Testing Extreme program integrates testing with the development phase rather than at the end of the development phase. All codes have unit tests to eliminate bugs, and the code passes all such unit tests before release. Another key test is customer acceptance tests, based on the customer specifications. Acceptance test run at the completion of the coding, and the developers provide the customer with the results of the acceptance tests along with demonstrations.
  • 25. Listening The basis of extreme programming is a continuous mechanism of customer involvement through feedback during the development phase. Apart from the customer, the developer also receives feedback from the project manager. The basis of feedback is the customer acceptance tests. Each feedback of the customer that specifies revised requirement becomes the basis of a new design, and the process of design-coding-tests-listening repeats itself. If the customer remains satisfied with the test results the iteration ends there, and the design for the new iteration starts, which again follows the design-coding-testing- listening cycle.
  • 26. Extreme programming Vs Spiral Model Agile Programming is quite similar to the Spiral software development methodology except that Agile has shorter iteration times. Agile Programming is particularly effective on smaller projects (say, 10 or fewer team members), non-critical projects (in other words, not projects such as medical or weapons systems), and non-distributed systems (in other words, when all team members are in one physical location).
  • 27. Scrum vs xp Scrum teams do not allow changes into their sprints. Once the sprint planning meeting is completed and a commitment made to delivering a set of product backlog items, that set of items remains unchanged through the end of the sprint. XP teams are much more amenable to change within their iterations. As long as the team hasn’t started work on a particular feature, a new feature of equivalent size can be swapped into the XP team’s iteration in exchange for the unstarted feature.
  • 28. Scrum doesn’t prescribe any engineering practices; XP does. I love the XP engineering practices, particularly things like test-driven development, the focus on automated testing, pair programming, simple design, refactoring, and so on.