SlideShare uma empresa Scribd logo
1 de 19
eXtreme Programming
A lightweight development
process for small to medium-sized
projects (an Agile Process)
by Shahid N. Shah
Slide 2 of 18
Sampling of Available
Methodolgies
Waterfall*
Extreme
Programming
Crystal Family
(Alistair Cockburn)
Open Source
Adaptive Software
Development (Jim
Highsmith)
SCRUM
Feature Driven
Development (FDD,
Jeff De Luca and
Peter Coad)
Dynamic System
Development Method
(DSDM, $$)
Rational Unified
Process ($$)** Non-agile
Slide 3 of 18
XP Philosophy
Always ask yourself: “what is the simplest
thing that could possibly work?” -- Kent
Beck, XP Creator
Never do any more coding, more testing,
more process, or more documentation than
is absolutely necessary to delight the
customer.
Main values: Communication, Feedback,
Simplicity, and Courage
Formalize and do what has been known by
“smart guys” for years
Not a “license to hack”!
Slide 4 of 18
XP Key Practices
Adaptive, not predictive
The Planning Game -- Quick, up-date as needed,
80/20 rule, push out what doesn’t need to be
immediately decided
Small releases -- Get simple system into production
quickly, add features in small releases
Simple design -- Design as simple as possible
Refactoring -- Continuously restructure to simplify,
remove duplication
40 hour week
On-site customer -- collective ownership
Travel light -- No more documentation than needed
to support deployment of application
Slide 5 of 18
Customer’s bill of rights
To set objectives for the
project and have them
followed.
To know how long the
software project will take and
how much it will cost.
To decide which features are
in and which are out of the
software.
To know the project’s status.
To make reasonable
changes to requirements
throughout the course of the
project and to know the
costs of making these
changes.
To be apprised regularly of
risks that could affect cost,
schedule or quality.
To have ready access to
project deliverables
throughout the project.
Slide 6 of 18
Developer’s Bill of
Rights
To know the project objectives
and to be able to clarify
priorities.
To know in detail what product
I’m supposed to build.
To have ready access to the
customer, manager, marketer,
or other person responsible for
the functionality.
To work each phase of the
project in a technically
responsible way.
To approve effort and schedule
estimates for any work that I will
be asked to perform.
To have my project’s status
reported accurately to
customers and upper
management.
To work in a productive
environment free from frequent
interruptions.
Slide 7 of 18
Benefits of XP
Software stays soft
Handles changing requirements with
relative ease
Quickly produces something useful,
keeps making useful enhancements --
delivery is provided when customer is
ready
Average developers can produce great
software
Slide 8 of 18
Prerequisites
Flexible Project Management
Goal is to delight customers and not to
maintain process (though they are not
mutually exclusive)
Groups that can talk to each other
Close contact with users
Slide 9 of 18
Obvious things to do
Staged Delivery
continuous stream of value
feedback
adapt to change
Business people make business decisions
and technical people make technical
decisions
Regression testing, unit tests
Review designs and code
Slide 10 of 18
Extreme Programming
Analysis
Test
Code
Design
Project Management
Slide 11 of 18
Extreme Analysis
Describe system as a set of user stories
(storyboards)
Users write stories explaining one use of
the system (explain by example)
Like use cases, but informal (no special
tools are needed)
Realize that all artifacts created during
design will rarely be updated after
implementation
Slide 12 of 18
Extreme Testing
Write tests before code
 unit tests before each class
 end-to-end tests before any classes
Convert each user story into a set of tests
All unit tests must run 100% all the time
Don’t worry if you can’t test everything
 GUI
 real-time I/O
 complete coverage
Don’t worry if testing is expensive
Slide 13 of 18
Extreme Coding
Eliminate code in favor of configuration
Write code for test cases one at a time
Write the simplest thing that could possibly
work
Goal: make the tests work ASAP
 write new classes
 use/change old classes
 copy code
 add if statements
Enforce coding standards
Slide 14 of 18
Pair Programming
All code is written in pairs
Pairs talk continually
Pair switches driver frequently
People switch pairs several times a day
Continuous code review
Slide 15 of 18
Refactoring:
Extreme Design
Make sure each thing is done in one
place - eliminate all duplicate code
Make sure each class/function does
one thing
All code must be readable
All tests run
Slide 16 of 18
Extreme Design
Project starts with a few days of design
on white-boards/CRC cards
Major problems lead to group design
sessions (servers, objects, etc)
Documentation is after the fact, and no
more than necessary
Start simple, refactor to keep simple
Slide 17 of 18
Extreme Scheduling
Customer write stories
Developers estimate cost
Customer decides which to do next
Group a few weeks worth of stories into
an iteration
Developers implement stories one at a
time until iteration is finished
Slide 18 of 18
What is Extreme?
Extreme, but not unusual
user stories, schedule negotiation, staged
delivery, testing, simplicity
Extreme and unusual
pair programming
continuous refactoring
Slide 19 of 18
Conclusion
Produce consistently better applications
with fewer people (or less qualified
people), in less time, with higher quality
and significantly lower overall cost.

Mais conteúdo relacionado

Mais procurados

Technical Debt: Sources and Impacts
Technical Debt: Sources and ImpactsTechnical Debt: Sources and Impacts
Technical Debt: Sources and ImpactsAgile Velocity
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projectsbriley1
 
Agile Development
Agile DevelopmentAgile Development
Agile Developmentabdpse
 
Notes On Agile Development
Notes On Agile DevelopmentNotes On Agile Development
Notes On Agile DevelopmentMatt Griffin
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slidesgilashikwa
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandDavid O'Dowd
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAgile Lietuva
 
Your Client Wants What
Your Client Wants WhatYour Client Wants What
Your Client Wants Whatlazygolfer
 
An Introduction to XP and Agile
An Introduction to XP and AgileAn Introduction to XP and Agile
An Introduction to XP and AgileJason Yip
 
Enough about Process, Let’s Use Patterns
Enough about Process, Let’s Use PatternsEnough about Process, Let’s Use Patterns
Enough about Process, Let’s Use PatternsTechWell
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesIgor Moochnick
 
Agile xp crash_course_2010_05_21
Agile xp crash_course_2010_05_21Agile xp crash_course_2010_05_21
Agile xp crash_course_2010_05_21Balint Erdi
 
Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...
Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...
Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...Eric Ries
 
Software Product Management
Software Product ManagementSoftware Product Management
Software Product ManagementRajeev Misra
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile designIgor Moochnick
 
Conducting Expert Reviews Using the VIMM Model
Conducting Expert Reviews Using the VIMM ModelConducting Expert Reviews Using the VIMM Model
Conducting Expert Reviews Using the VIMM ModelMichael Rawlins
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cyclenayanbanik
 

Mais procurados (20)

Technical Debt: Sources and Impacts
Technical Debt: Sources and ImpactsTechnical Debt: Sources and Impacts
Technical Debt: Sources and Impacts
 
Planning Agile Projects
Planning Agile ProjectsPlanning Agile Projects
Planning Agile Projects
 
Agile Development
Agile DevelopmentAgile Development
Agile Development
 
Notes On Agile Development
Notes On Agile DevelopmentNotes On Agile Development
Notes On Agile Development
 
Agile Development Ultimate Slides
Agile Development Ultimate SlidesAgile Development Ultimate Slides
Agile Development Ultimate Slides
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme Programming
 
Engineer - Mastering the Art of Software
Engineer - Mastering the Art of SoftwareEngineer - Mastering the Art of Software
Engineer - Mastering the Art of Software
 
Your Client Wants What
Your Client Wants WhatYour Client Wants What
Your Client Wants What
 
An Introduction to XP and Agile
An Introduction to XP and AgileAn Introduction to XP and Agile
An Introduction to XP and Agile
 
Enough about Process, Let’s Use Patterns
Enough about Process, Let’s Use PatternsEnough about Process, Let’s Use Patterns
Enough about Process, Let’s Use Patterns
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
 
Agile xp crash_course_2010_05_21
Agile xp crash_course_2010_05_21Agile xp crash_course_2010_05_21
Agile xp crash_course_2010_05_21
 
Let trust our estimates
Let trust our estimatesLet trust our estimates
Let trust our estimates
 
Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...
Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...
Eric Ries Lean Startup Schematic View Of Agile Development And Customer Devel...
 
Software Product Management
Software Product ManagementSoftware Product Management
Software Product Management
 
Best practices for agile design
Best practices for agile designBest practices for agile design
Best practices for agile design
 
Conducting Expert Reviews Using the VIMM Model
Conducting Expert Reviews Using the VIMM ModelConducting Expert Reviews Using the VIMM Model
Conducting Expert Reviews Using the VIMM Model
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 

Destaque

Saint petersburg open city
Saint petersburg   open citySaint petersburg   open city
Saint petersburg open cityDaria Skrebova
 
Stateof cto career_2002
Stateof cto career_2002Stateof cto career_2002
Stateof cto career_2002eaiti
 
Push to pull
Push to pullPush to pull
Push to pulleaiti
 
Social apps 3_1_2008
Social apps 3_1_2008Social apps 3_1_2008
Social apps 3_1_2008eaiti
 
Hemispheres of Data
Hemispheres of DataHemispheres of Data
Hemispheres of Dataeaiti
 
Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006eaiti
 
Greenplum: Driving the future of Data Warehousing and Analytics
Greenplum: Driving the future of Data Warehousing and AnalyticsGreenplum: Driving the future of Data Warehousing and Analytics
Greenplum: Driving the future of Data Warehousing and Analyticseaiti
 
Mobile 2000
Mobile 2000Mobile 2000
Mobile 2000eaiti
 
Broadband tech 2005
Broadband tech 2005Broadband tech 2005
Broadband tech 2005eaiti
 
Ping solutions overview_111904
Ping solutions overview_111904Ping solutions overview_111904
Ping solutions overview_111904eaiti
 
Handheld device med_care_2001
Handheld device med_care_2001Handheld device med_care_2001
Handheld device med_care_2001eaiti
 
Ctolinux 2001
Ctolinux 2001Ctolinux 2001
Ctolinux 2001eaiti
 
Enterprise Mobility Management
Enterprise Mobility ManagementEnterprise Mobility Management
Enterprise Mobility Managementeaiti
 
Cto forum nirav_kapadia_2006_03_31_2006
Cto forum nirav_kapadia_2006_03_31_2006Cto forum nirav_kapadia_2006_03_31_2006
Cto forum nirav_kapadia_2006_03_31_2006eaiti
 
Quantum technology
Quantum technologyQuantum technology
Quantum technologyeaiti
 
Intrusion detection 2001
Intrusion detection 2001Intrusion detection 2001
Intrusion detection 2001eaiti
 
Middleware 2002
Middleware 2002Middleware 2002
Middleware 2002eaiti
 
BigData @ comScore
BigData @ comScoreBigData @ comScore
BigData @ comScoreeaiti
 

Destaque (18)

Saint petersburg open city
Saint petersburg   open citySaint petersburg   open city
Saint petersburg open city
 
Stateof cto career_2002
Stateof cto career_2002Stateof cto career_2002
Stateof cto career_2002
 
Push to pull
Push to pullPush to pull
Push to pull
 
Social apps 3_1_2008
Social apps 3_1_2008Social apps 3_1_2008
Social apps 3_1_2008
 
Hemispheres of Data
Hemispheres of DataHemispheres of Data
Hemispheres of Data
 
Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006Dions globalsoa web2presentation1_2006
Dions globalsoa web2presentation1_2006
 
Greenplum: Driving the future of Data Warehousing and Analytics
Greenplum: Driving the future of Data Warehousing and AnalyticsGreenplum: Driving the future of Data Warehousing and Analytics
Greenplum: Driving the future of Data Warehousing and Analytics
 
Mobile 2000
Mobile 2000Mobile 2000
Mobile 2000
 
Broadband tech 2005
Broadband tech 2005Broadband tech 2005
Broadband tech 2005
 
Ping solutions overview_111904
Ping solutions overview_111904Ping solutions overview_111904
Ping solutions overview_111904
 
Handheld device med_care_2001
Handheld device med_care_2001Handheld device med_care_2001
Handheld device med_care_2001
 
Ctolinux 2001
Ctolinux 2001Ctolinux 2001
Ctolinux 2001
 
Enterprise Mobility Management
Enterprise Mobility ManagementEnterprise Mobility Management
Enterprise Mobility Management
 
Cto forum nirav_kapadia_2006_03_31_2006
Cto forum nirav_kapadia_2006_03_31_2006Cto forum nirav_kapadia_2006_03_31_2006
Cto forum nirav_kapadia_2006_03_31_2006
 
Quantum technology
Quantum technologyQuantum technology
Quantum technology
 
Intrusion detection 2001
Intrusion detection 2001Intrusion detection 2001
Intrusion detection 2001
 
Middleware 2002
Middleware 2002Middleware 2002
Middleware 2002
 
BigData @ comScore
BigData @ comScoreBigData @ comScore
BigData @ comScore
 

Semelhante a Xp presentation 2003

Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAniruddha Chakrabarti
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
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 programmingJean Pаoli
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsultingtalkwiseone
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsultingtalkwiseone
 
Agile software development
Agile software developmentAgile software development
Agile software developmentRajesh Piryani
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdfBassam Kanber
 
Extreme Programming: An Introduction to XP Practices
Extreme Programming: An Introduction to XP PracticesExtreme Programming: An Introduction to XP Practices
Extreme Programming: An Introduction to XP PracticesDavid Hanson
 
Software Development in the Brave New world
Software Development in the Brave New worldSoftware Development in the Brave New world
Software Development in the Brave New worldDavid Leip
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineeringprogramizconsultancy
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 

Semelhante a Xp presentation 2003 (20)

Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
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
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsulting
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
 
Extreme Programming: An Introduction to XP Practices
Extreme Programming: An Introduction to XP PracticesExtreme Programming: An Introduction to XP Practices
Extreme Programming: An Introduction to XP Practices
 
3685807
36858073685807
3685807
 
Software Development in the Brave New world
Software Development in the Brave New worldSoftware Development in the Brave New world
Software Development in the Brave New world
 
software lecture
software lecturesoftware lecture
software lecture
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
SE chapter 4
SE chapter 4SE chapter 4
SE chapter 4
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineering
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 

Mais de eaiti

Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002eaiti
 
J2ee 2000
J2ee 2000J2ee 2000
J2ee 2000eaiti
 
Cloud mz cto_roundtable
Cloud mz cto_roundtableCloud mz cto_roundtable
Cloud mz cto_roundtableeaiti
 
Thads globalsoa web2presentation2_2006
Thads globalsoa web2presentation2_2006Thads globalsoa web2presentation2_2006
Thads globalsoa web2presentation2_2006eaiti
 
It outsourcing 2005
It outsourcing 2005It outsourcing 2005
It outsourcing 2005eaiti
 
Washdc cto-0905-2003
Washdc cto-0905-2003Washdc cto-0905-2003
Washdc cto-0905-2003eaiti
 
Using Hadoop
Using HadoopUsing Hadoop
Using Hadoopeaiti
 

Mais de eaiti (7)

Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002Dc roundtablesmall webservices_2002
Dc roundtablesmall webservices_2002
 
J2ee 2000
J2ee 2000J2ee 2000
J2ee 2000
 
Cloud mz cto_roundtable
Cloud mz cto_roundtableCloud mz cto_roundtable
Cloud mz cto_roundtable
 
Thads globalsoa web2presentation2_2006
Thads globalsoa web2presentation2_2006Thads globalsoa web2presentation2_2006
Thads globalsoa web2presentation2_2006
 
It outsourcing 2005
It outsourcing 2005It outsourcing 2005
It outsourcing 2005
 
Washdc cto-0905-2003
Washdc cto-0905-2003Washdc cto-0905-2003
Washdc cto-0905-2003
 
Using Hadoop
Using HadoopUsing Hadoop
Using Hadoop
 

Último

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 

Último (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Xp presentation 2003

  • 1. eXtreme Programming A lightweight development process for small to medium-sized projects (an Agile Process) by Shahid N. Shah
  • 2. Slide 2 of 18 Sampling of Available Methodolgies Waterfall* Extreme Programming Crystal Family (Alistair Cockburn) Open Source Adaptive Software Development (Jim Highsmith) SCRUM Feature Driven Development (FDD, Jeff De Luca and Peter Coad) Dynamic System Development Method (DSDM, $$) Rational Unified Process ($$)** Non-agile
  • 3. Slide 3 of 18 XP Philosophy Always ask yourself: “what is the simplest thing that could possibly work?” -- Kent Beck, XP Creator Never do any more coding, more testing, more process, or more documentation than is absolutely necessary to delight the customer. Main values: Communication, Feedback, Simplicity, and Courage Formalize and do what has been known by “smart guys” for years Not a “license to hack”!
  • 4. Slide 4 of 18 XP Key Practices Adaptive, not predictive The Planning Game -- Quick, up-date as needed, 80/20 rule, push out what doesn’t need to be immediately decided Small releases -- Get simple system into production quickly, add features in small releases Simple design -- Design as simple as possible Refactoring -- Continuously restructure to simplify, remove duplication 40 hour week On-site customer -- collective ownership Travel light -- No more documentation than needed to support deployment of application
  • 5. Slide 5 of 18 Customer’s bill of rights To set objectives for the project and have them followed. To know how long the software project will take and how much it will cost. To decide which features are in and which are out of the software. To know the project’s status. To make reasonable changes to requirements throughout the course of the project and to know the costs of making these changes. To be apprised regularly of risks that could affect cost, schedule or quality. To have ready access to project deliverables throughout the project.
  • 6. Slide 6 of 18 Developer’s Bill of Rights To know the project objectives and to be able to clarify priorities. To know in detail what product I’m supposed to build. To have ready access to the customer, manager, marketer, or other person responsible for the functionality. To work each phase of the project in a technically responsible way. To approve effort and schedule estimates for any work that I will be asked to perform. To have my project’s status reported accurately to customers and upper management. To work in a productive environment free from frequent interruptions.
  • 7. Slide 7 of 18 Benefits of XP Software stays soft Handles changing requirements with relative ease Quickly produces something useful, keeps making useful enhancements -- delivery is provided when customer is ready Average developers can produce great software
  • 8. Slide 8 of 18 Prerequisites Flexible Project Management Goal is to delight customers and not to maintain process (though they are not mutually exclusive) Groups that can talk to each other Close contact with users
  • 9. Slide 9 of 18 Obvious things to do Staged Delivery continuous stream of value feedback adapt to change Business people make business decisions and technical people make technical decisions Regression testing, unit tests Review designs and code
  • 10. Slide 10 of 18 Extreme Programming Analysis Test Code Design Project Management
  • 11. Slide 11 of 18 Extreme Analysis Describe system as a set of user stories (storyboards) Users write stories explaining one use of the system (explain by example) Like use cases, but informal (no special tools are needed) Realize that all artifacts created during design will rarely be updated after implementation
  • 12. Slide 12 of 18 Extreme Testing Write tests before code  unit tests before each class  end-to-end tests before any classes Convert each user story into a set of tests All unit tests must run 100% all the time Don’t worry if you can’t test everything  GUI  real-time I/O  complete coverage Don’t worry if testing is expensive
  • 13. Slide 13 of 18 Extreme Coding Eliminate code in favor of configuration Write code for test cases one at a time Write the simplest thing that could possibly work Goal: make the tests work ASAP  write new classes  use/change old classes  copy code  add if statements Enforce coding standards
  • 14. Slide 14 of 18 Pair Programming All code is written in pairs Pairs talk continually Pair switches driver frequently People switch pairs several times a day Continuous code review
  • 15. Slide 15 of 18 Refactoring: Extreme Design Make sure each thing is done in one place - eliminate all duplicate code Make sure each class/function does one thing All code must be readable All tests run
  • 16. Slide 16 of 18 Extreme Design Project starts with a few days of design on white-boards/CRC cards Major problems lead to group design sessions (servers, objects, etc) Documentation is after the fact, and no more than necessary Start simple, refactor to keep simple
  • 17. Slide 17 of 18 Extreme Scheduling Customer write stories Developers estimate cost Customer decides which to do next Group a few weeks worth of stories into an iteration Developers implement stories one at a time until iteration is finished
  • 18. Slide 18 of 18 What is Extreme? Extreme, but not unusual user stories, schedule negotiation, staged delivery, testing, simplicity Extreme and unusual pair programming continuous refactoring
  • 19. Slide 19 of 18 Conclusion Produce consistently better applications with fewer people (or less qualified people), in less time, with higher quality and significantly lower overall cost.