SlideShare a Scribd company logo
1 of 31
Agile Methods Series
eXtreme Programming (XP)
Ahmed Helmy
• Software Consultant
• Certified Scrum Master
• Certified Scrum Developer
• Certified Scrum Product Owner
@helmy204
ahmedhelmy204@hotmail.com
www.linkedin.com/in/helmy204
www.github.com/helmy204
Agenda
• From Agile Manifesto
• The Basic Problem
• Agile Methodologies
• eXtreme Programming (XP)
• XP Framework
• Practices
• Activities
• Values
• Principles
• Rules
• Roles
Who are the Geeks!
Manifesto for Agile Software
Development
https://agilemanifesto.org/
Risk
The Basic Problem
Schedule slips
Project canceled
System goes sour
Defect rate
Business misunderstood
Business changes
False feature rich
Staff turnover
Most Used Agile Methods
If everything seems under control
You’re not going fast enough - Mario Anderetti
What is eXtreme
Programming?
XP aims to produce higher quality
software using appropriate engineering
practices
Agile Software Development Methodology
Lightweight Efficient Low-risk
Driving is not about
getting the car going in
the right direction.
Driving is about
constantly paying
attention, making a little
correction this way, a
little correction that way
https://www.freepik.com/free-vector/curve-winding-roadway-background_4724894.htm
How would you program if you had enough time?
Write tests Restructure
the system
Pair
programming
Talk with the
customer often
Now, you can’t have extra time, because this is
business after all, and we are certainly playing to
win
XP Practices
Shared
understanding
Fine-scale
feedback
Continuous
process
Programmer
welfare
XP Practices
• Fine-scale feedback
• Pair programming
• The Planning Game
• Testing
You don’t choose whether or not you will
write tests – if you don’t, you aren’t
extreme: end of discussion.
Extreme Programming Explained: Embrace Change
https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658
XP Practices
• Fine-scale feedback
• Pair programming
• The Planning Game
• Testing
• On-site customer
• Continuous process
• Continuous integration
• Refactoring
• Small releases
If it’s easier to change it, you’re more
likely to improve it
XP Practices
• Fine-scale feedback
• Pair programming
• The Planning Game
• Testing
• On-site customer
• Continuous process
• Continuous integration
• Refactoring
• Small releases
• Shared understanding
• Coding standards
• Collective ownership
• Simple design
• Metaphor
• Programmer welfare
• 40 hour week
Steve Jobs, 1998
That's been one of my mantras — focus and simplicity.
Simple can be harder than complex:
You have to work hard to get your thinking clean to make it simple.
But it's worth it in the end because once you get there, you can move
mountains.
XP Practices
XP Framework
• 12 x Practices (Fine-scale Feedback, Continuous Process, Shared Understanding, Programmer Welfare)
Programming Basic Activities
Listening
DesigningCoding
Testing
XP Framework
• 12 x Practices (Fine-scale Feedback, Continuous Process, Shared Understanding, Programmer Welfare)
• 4 x Activities (Coding, Testing, Listening, Designing)
XP Values
Communication Simplicity Feedback Courage Respect
XP Framework
• 12 x Practices (Fine-scale Feedback, Continuous Process, Shared Understanding, Programmer Welfare)
• 4 x Activities (Coding, Testing, Listening, Designing)
• 5 x Values (Communication, Simplicity, Feedback, Courage, Respect)
XP Principles
Rapid feedback
Assume simplicity
Incremental change
Other Embracing change
Quality work
Teach learning
Small initial investment
Play to win
Concrete experiments
Open, honest communication
Work with people’s instincts, not against them
Accepted responsibility
Local adaption
Travel light
Honest measurement
XP Framework
• 12 x Practices (Fine-scale Feedback, Continuous Process, Shared Understanding, Programmer Welfare)
• 4 x Activities (Coding, Testing, Listening, Designing)
• 5 x Values (Communication, Simplicity, Feedback, Courage, Respect)
• 3 x Principles (Rapid feedback, Assume simplicity, Incremental change) + 12
XP Rules
Planning
User stories are
written
Release planning
Make frequent
small releases
Project divided into
iterations
Iteration planning
starts each
iteration
Managing
Give the team an
open work space
Set a sustainable
pace
A stand-up meeting
starts each day
The project velocity
is measured
Move people
around
Fix XP when it
breaks
Designing
Simplicity
Choose a system
metaphor
Use (Class
Responsibility
Collaborator) CRC
cards for design
sessions
Create spike
solutions to reduce
risk
No functionality is
added early
Refactor whenever
possible
Coding
Customer is always
available
Code written to
agreed standards
Code the unit test
first
Production code is
pair programmed
Only one pair
integrates code at
a time
Integrate often
Use a dedicated
integration
machine
Use collective
ownership
Testing
All code must have
unit tests
All code must pass
all unit tests
When a bug is
found tests are
created
Acceptance tests
are run often and
the score is
published
XP Framework
• 12 x Practices (Fine-scale Feedback, Continuous Process, Shared Understanding, Programmer Welfare)
• 4 x Activities (Coding, Testing, Listening, Designing)
• 5 x Values (Communication, Simplicity, Feedback, Courage, Respect)
• 3 x Principles (Rapid feedback, Assume simplicity, Incremental change) + 12
• 29 x Rules (Planning, Managing, Designing, Coding, Testing)
XP Roles
• The Customer
• The Developer
• The Tracker
• The Coach
XP Framework
• 12 x Practices (Fine-scale Feedback, Continuous Process, Shared Understanding, Programmer Welfare)
• 4 x Activities (Coding, Testing, Listening, Designing)
• 5 x Values (Communication, Simplicity, Feedback, Courage, Respect)
• 3 x Principles (Rapid feedback, Assume simplicity, Incremental change) + 12
• 29 x Rules (Planning, Managing, Designing, Coding, Testing)
• 4 x Roles (Customer, Developer, Tracker, Coach)
Questions
Thank You

More Related Content

What's hot

The complexity in the simplicity of Agile? by Arie van Bennekum
The complexity in the simplicity of Agile? by Arie van BennekumThe complexity in the simplicity of Agile? by Arie van Bennekum
The complexity in the simplicity of Agile? by Arie van BennekumAgile ME
 
Collaborative Agile Development in Virtual Reality by Talal Shaikh
Collaborative Agile Development in Virtual Reality by Talal ShaikhCollaborative Agile Development in Virtual Reality by Talal Shaikh
Collaborative Agile Development in Virtual Reality by Talal ShaikhAgile ME
 
Agile Development – Why requirements matter by Fariz Saracevic
Agile Development – Why requirements matter by Fariz SaracevicAgile Development – Why requirements matter by Fariz Saracevic
Agile Development – Why requirements matter by Fariz SaracevicAgile ME
 
Comparing Ways to Scale Agile at Agile Product and Project Manager Meetup
Comparing Ways to Scale Agile at Agile Product and Project Manager MeetupComparing Ways to Scale Agile at Agile Product and Project Manager Meetup
Comparing Ways to Scale Agile at Agile Product and Project Manager MeetupBernd Schiffer
 
Introduction to scaled agile framework
Introduction to scaled agile frameworkIntroduction to scaled agile framework
Introduction to scaled agile frameworkSrinath Ramakrishnan
 
Agile evolution lifecycle - From implementing Agile to being Agile
Agile evolution lifecycle - From implementing Agile to being AgileAgile evolution lifecycle - From implementing Agile to being Agile
Agile evolution lifecycle - From implementing Agile to being AgileMichal Epstein
 
Scaled Agile Training (SAFe)
Scaled Agile Training (SAFe)Scaled Agile Training (SAFe)
Scaled Agile Training (SAFe)Darryl Jose
 
Scrum vs SAFe | Differences Between Scrum and Scaled Agile Framework | Edureka
Scrum vs SAFe | Differences Between Scrum and Scaled Agile Framework | EdurekaScrum vs SAFe | Differences Between Scrum and Scaled Agile Framework | Edureka
Scrum vs SAFe | Differences Between Scrum and Scaled Agile Framework | EdurekaEdureka!
 
Agile transformation : From Scattered to Scaled
Agile transformation : From Scattered to ScaledAgile transformation : From Scattered to Scaled
Agile transformation : From Scattered to ScaledAgileNetwork
 
Agile Truths and Misconceptions Exposed
Agile Truths and Misconceptions ExposedAgile Truths and Misconceptions Exposed
Agile Truths and Misconceptions ExposedRichard Cheng
 
Scaling agile. Agile across the enterprise
Scaling agile. Agile across the enterpriseScaling agile. Agile across the enterprise
Scaling agile. Agile across the enterpriseDarren Wilmshurst
 
A Very Large Enterprise Agile Transformation: Lessons Learned at Salesforce
A Very Large Enterprise Agile Transformation: Lessons Learned at SalesforceA Very Large Enterprise Agile Transformation: Lessons Learned at Salesforce
A Very Large Enterprise Agile Transformation: Lessons Learned at SalesforceTechWell
 
Agile Service Management: An introduction - Bas Blanken
Agile Service Management: An introduction - Bas BlankenAgile Service Management: An introduction - Bas Blanken
Agile Service Management: An introduction - Bas BlankenTOPdesk
 
Agile Israel 2016 - Philips ICAP case study
Agile Israel 2016 - Philips ICAP case studyAgile Israel 2016 - Philips ICAP case study
Agile Israel 2016 - Philips ICAP case studyAgileSparks
 
Tatyana Golubyeva "Scaled agile framework"
Tatyana Golubyeva "Scaled agile framework"Tatyana Golubyeva "Scaled agile framework"
Tatyana Golubyeva "Scaled agile framework"DataArt
 
Introduction to scaled agile framework
Introduction to scaled agile frameworkIntroduction to scaled agile framework
Introduction to scaled agile frameworkKAVITHA KRISHNAN
 
Agile Transformation - An Industry Perspective , Agile Talk @ RBS
Agile Transformation - An Industry Perspective , Agile Talk @ RBSAgile Transformation - An Industry Perspective , Agile Talk @ RBS
Agile Transformation - An Industry Perspective , Agile Talk @ RBSDeepak Sharma
 
Large Scale Scrum at Powerhouse.
Large Scale Scrum at Powerhouse.Large Scale Scrum at Powerhouse.
Large Scale Scrum at Powerhouse.Cesario Ramos
 
Foundations of scaling agile with SAFe
Foundations of scaling agile with SAFeFoundations of scaling agile with SAFe
Foundations of scaling agile with SAFeYuval Yeret
 

What's hot (20)

The complexity in the simplicity of Agile? by Arie van Bennekum
The complexity in the simplicity of Agile? by Arie van BennekumThe complexity in the simplicity of Agile? by Arie van Bennekum
The complexity in the simplicity of Agile? by Arie van Bennekum
 
Collaborative Agile Development in Virtual Reality by Talal Shaikh
Collaborative Agile Development in Virtual Reality by Talal ShaikhCollaborative Agile Development in Virtual Reality by Talal Shaikh
Collaborative Agile Development in Virtual Reality by Talal Shaikh
 
Agile Development – Why requirements matter by Fariz Saracevic
Agile Development – Why requirements matter by Fariz SaracevicAgile Development – Why requirements matter by Fariz Saracevic
Agile Development – Why requirements matter by Fariz Saracevic
 
Comparing Ways to Scale Agile at Agile Product and Project Manager Meetup
Comparing Ways to Scale Agile at Agile Product and Project Manager MeetupComparing Ways to Scale Agile at Agile Product and Project Manager Meetup
Comparing Ways to Scale Agile at Agile Product and Project Manager Meetup
 
Introduction to scaled agile framework
Introduction to scaled agile frameworkIntroduction to scaled agile framework
Introduction to scaled agile framework
 
Agile evolution lifecycle - From implementing Agile to being Agile
Agile evolution lifecycle - From implementing Agile to being AgileAgile evolution lifecycle - From implementing Agile to being Agile
Agile evolution lifecycle - From implementing Agile to being Agile
 
Scaled Agile Training (SAFe)
Scaled Agile Training (SAFe)Scaled Agile Training (SAFe)
Scaled Agile Training (SAFe)
 
Scrum vs SAFe | Differences Between Scrum and Scaled Agile Framework | Edureka
Scrum vs SAFe | Differences Between Scrum and Scaled Agile Framework | EdurekaScrum vs SAFe | Differences Between Scrum and Scaled Agile Framework | Edureka
Scrum vs SAFe | Differences Between Scrum and Scaled Agile Framework | Edureka
 
Agile transformation : From Scattered to Scaled
Agile transformation : From Scattered to ScaledAgile transformation : From Scattered to Scaled
Agile transformation : From Scattered to Scaled
 
Agile Truths and Misconceptions Exposed
Agile Truths and Misconceptions ExposedAgile Truths and Misconceptions Exposed
Agile Truths and Misconceptions Exposed
 
Scaling agile. Agile across the enterprise
Scaling agile. Agile across the enterpriseScaling agile. Agile across the enterprise
Scaling agile. Agile across the enterprise
 
A Very Large Enterprise Agile Transformation: Lessons Learned at Salesforce
A Very Large Enterprise Agile Transformation: Lessons Learned at SalesforceA Very Large Enterprise Agile Transformation: Lessons Learned at Salesforce
A Very Large Enterprise Agile Transformation: Lessons Learned at Salesforce
 
Agile fluency
Agile fluency Agile fluency
Agile fluency
 
Agile Service Management: An introduction - Bas Blanken
Agile Service Management: An introduction - Bas BlankenAgile Service Management: An introduction - Bas Blanken
Agile Service Management: An introduction - Bas Blanken
 
Agile Israel 2016 - Philips ICAP case study
Agile Israel 2016 - Philips ICAP case studyAgile Israel 2016 - Philips ICAP case study
Agile Israel 2016 - Philips ICAP case study
 
Tatyana Golubyeva "Scaled agile framework"
Tatyana Golubyeva "Scaled agile framework"Tatyana Golubyeva "Scaled agile framework"
Tatyana Golubyeva "Scaled agile framework"
 
Introduction to scaled agile framework
Introduction to scaled agile frameworkIntroduction to scaled agile framework
Introduction to scaled agile framework
 
Agile Transformation - An Industry Perspective , Agile Talk @ RBS
Agile Transformation - An Industry Perspective , Agile Talk @ RBSAgile Transformation - An Industry Perspective , Agile Talk @ RBS
Agile Transformation - An Industry Perspective , Agile Talk @ RBS
 
Large Scale Scrum at Powerhouse.
Large Scale Scrum at Powerhouse.Large Scale Scrum at Powerhouse.
Large Scale Scrum at Powerhouse.
 
Foundations of scaling agile with SAFe
Foundations of scaling agile with SAFeFoundations of scaling agile with SAFe
Foundations of scaling agile with SAFe
 

Similar to Agile methods series (xp)

Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme ProgrammingNaresh Jain
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programmingMichael Green
 
Holistic Product Development
Holistic Product DevelopmentHolistic Product Development
Holistic Product DevelopmentGary Pedretti
 
extreme programming
extreme programmingextreme programming
extreme programmingfahad khan
 
xTreme Programming by Sejo Ćesić and Enis Zeherović
xTreme Programming by Sejo Ćesić and Enis ZeherovićxTreme Programming by Sejo Ćesić and Enis Zeherović
xTreme Programming by Sejo Ćesić and Enis ZeherovićBosnia Agile
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Vinit Kumar Singh
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineeringprogramizconsultancy
 
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
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): RevistedMike Harris
 
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...Scrum Bangalore
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineeringZeeshan Masood S
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineeringZeeshan Masood S
 
Essential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionEssential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionSteven Mak
 
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
 
Assessing Your Agility: Introducing the Comparative Agility Assessment
Assessing Your Agility: Introducing the Comparative Agility AssessmentAssessing Your Agility: Introducing the Comparative Agility Assessment
Assessing Your Agility: Introducing the Comparative Agility AssessmentMike Cohn
 
XP, Scrum, Lean and the Lean Startup
XP, Scrum, Lean and the Lean StartupXP, Scrum, Lean and the Lean Startup
XP, Scrum, Lean and the Lean StartupJulian Higman
 

Similar to Agile methods series (xp) (20)

Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programming
 
Holistic Product Development
Holistic Product DevelopmentHolistic Product Development
Holistic Product Development
 
extreme programming
extreme programmingextreme programming
extreme programming
 
xTreme Programming by Sejo Ćesić and Enis Zeherović
xTreme Programming by Sejo Ćesić and Enis ZeherovićxTreme Programming by Sejo Ćesić and Enis Zeherović
xTreme Programming by Sejo Ćesić and Enis Zeherović
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
 
Enterprise PHP
Enterprise PHPEnterprise PHP
Enterprise PHP
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineering
 
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
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): Revisted
 
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
Scrum_BLR 11th meet up 13 dec-2014 - SDET - They Way to go for Testers - Jaya...
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineering
 
Flavours of agile software engineering
Flavours of agile software engineeringFlavours of agile software engineering
Flavours of agile software engineering
 
Essential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionEssential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile Adoption
 
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
 
Assessing Your Agility: Introducing the Comparative Agility Assessment
Assessing Your Agility: Introducing the Comparative Agility AssessmentAssessing Your Agility: Introducing the Comparative Agility Assessment
Assessing Your Agility: Introducing the Comparative Agility Assessment
 
XP, Scrum, Lean and the Lean Startup
XP, Scrum, Lean and the Lean StartupXP, Scrum, Lean and the Lean Startup
XP, Scrum, Lean and the Lean Startup
 

More from XPDays

Change the Conversation! Unleash Your Potential in a Complex World.pptx
Change the Conversation! Unleash Your Potential in a Complex World.pptxChange the Conversation! Unleash Your Potential in a Complex World.pptx
Change the Conversation! Unleash Your Potential in a Complex World.pptxXPDays
 
Agile Culture Transformation
Agile Culture TransformationAgile Culture Transformation
Agile Culture TransformationXPDays
 
Re-engineering Technology to break barriers with Business
Re-engineering Technology to break barriers with BusinessRe-engineering Technology to break barriers with Business
Re-engineering Technology to break barriers with BusinessXPDays
 
Practicing Red, Green, Refactor!
Practicing Red, Green, Refactor!Practicing Red, Green, Refactor!
Practicing Red, Green, Refactor!XPDays
 
Ready, Steady, Sprint
Ready, Steady, SprintReady, Steady, Sprint
Ready, Steady, SprintXPDays
 
The Whole Story of The User Story
The Whole Story of The User StoryThe Whole Story of The User Story
The Whole Story of The User StoryXPDays
 
Scrum Master Facilitation Techniques
Scrum Master Facilitation TechniquesScrum Master Facilitation Techniques
Scrum Master Facilitation TechniquesXPDays
 
Unit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqUnit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqXPDays
 
Team Mental Health
Team Mental HealthTeam Mental Health
Team Mental HealthXPDays
 
Business Analyst in the Agile Space
Business Analyst in the Agile SpaceBusiness Analyst in the Agile Space
Business Analyst in the Agile SpaceXPDays
 
DevOps in action - Azure DevOps
DevOps in action - Azure DevOpsDevOps in action - Azure DevOps
DevOps in action - Azure DevOpsXPDays
 
Priotrization techniques
Priotrization techniquesPriotrization techniques
Priotrization techniquesXPDays
 
Building Team Habits
Building Team HabitsBuilding Team Habits
Building Team HabitsXPDays
 
4 Keys to Success in your Agile Journey
4 Keys to Success in your Agile Journey4 Keys to Success in your Agile Journey
4 Keys to Success in your Agile JourneyXPDays
 
Re-focus for Agile leaders
Re-focus for Agile leadersRe-focus for Agile leaders
Re-focus for Agile leadersXPDays
 
Scaling Agile | Spotify
Scaling Agile | SpotifyScaling Agile | Spotify
Scaling Agile | SpotifyXPDays
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
The Future of Testing and Testers
The Future of Testing and TestersThe Future of Testing and Testers
The Future of Testing and TestersXPDays
 

More from XPDays (18)

Change the Conversation! Unleash Your Potential in a Complex World.pptx
Change the Conversation! Unleash Your Potential in a Complex World.pptxChange the Conversation! Unleash Your Potential in a Complex World.pptx
Change the Conversation! Unleash Your Potential in a Complex World.pptx
 
Agile Culture Transformation
Agile Culture TransformationAgile Culture Transformation
Agile Culture Transformation
 
Re-engineering Technology to break barriers with Business
Re-engineering Technology to break barriers with BusinessRe-engineering Technology to break barriers with Business
Re-engineering Technology to break barriers with Business
 
Practicing Red, Green, Refactor!
Practicing Red, Green, Refactor!Practicing Red, Green, Refactor!
Practicing Red, Green, Refactor!
 
Ready, Steady, Sprint
Ready, Steady, SprintReady, Steady, Sprint
Ready, Steady, Sprint
 
The Whole Story of The User Story
The Whole Story of The User StoryThe Whole Story of The User Story
The Whole Story of The User Story
 
Scrum Master Facilitation Techniques
Scrum Master Facilitation TechniquesScrum Master Facilitation Techniques
Scrum Master Facilitation Techniques
 
Unit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqUnit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and Moq
 
Team Mental Health
Team Mental HealthTeam Mental Health
Team Mental Health
 
Business Analyst in the Agile Space
Business Analyst in the Agile SpaceBusiness Analyst in the Agile Space
Business Analyst in the Agile Space
 
DevOps in action - Azure DevOps
DevOps in action - Azure DevOpsDevOps in action - Azure DevOps
DevOps in action - Azure DevOps
 
Priotrization techniques
Priotrization techniquesPriotrization techniques
Priotrization techniques
 
Building Team Habits
Building Team HabitsBuilding Team Habits
Building Team Habits
 
4 Keys to Success in your Agile Journey
4 Keys to Success in your Agile Journey4 Keys to Success in your Agile Journey
4 Keys to Success in your Agile Journey
 
Re-focus for Agile leaders
Re-focus for Agile leadersRe-focus for Agile leaders
Re-focus for Agile leaders
 
Scaling Agile | Spotify
Scaling Agile | SpotifyScaling Agile | Spotify
Scaling Agile | Spotify
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
The Future of Testing and Testers
The Future of Testing and TestersThe Future of Testing and Testers
The Future of Testing and Testers
 

Recently uploaded

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 

Recently uploaded (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Agile methods series (xp)

  • 1. Agile Methods Series eXtreme Programming (XP)
  • 2. Ahmed Helmy • Software Consultant • Certified Scrum Master • Certified Scrum Developer • Certified Scrum Product Owner @helmy204 ahmedhelmy204@hotmail.com www.linkedin.com/in/helmy204 www.github.com/helmy204
  • 3. Agenda • From Agile Manifesto • The Basic Problem • Agile Methodologies • eXtreme Programming (XP) • XP Framework • Practices • Activities • Values • Principles • Rules • Roles
  • 4. Who are the Geeks!
  • 5. Manifesto for Agile Software Development https://agilemanifesto.org/
  • 6. Risk The Basic Problem Schedule slips Project canceled System goes sour Defect rate Business misunderstood Business changes False feature rich Staff turnover
  • 7. Most Used Agile Methods
  • 8. If everything seems under control You’re not going fast enough - Mario Anderetti
  • 9. What is eXtreme Programming? XP aims to produce higher quality software using appropriate engineering practices Agile Software Development Methodology Lightweight Efficient Low-risk
  • 10. Driving is not about getting the car going in the right direction. Driving is about constantly paying attention, making a little correction this way, a little correction that way https://www.freepik.com/free-vector/curve-winding-roadway-background_4724894.htm
  • 11. How would you program if you had enough time? Write tests Restructure the system Pair programming Talk with the customer often Now, you can’t have extra time, because this is business after all, and we are certainly playing to win
  • 13. XP Practices • Fine-scale feedback • Pair programming • The Planning Game • Testing
  • 14. You don’t choose whether or not you will write tests – if you don’t, you aren’t extreme: end of discussion. Extreme Programming Explained: Embrace Change https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658
  • 15. XP Practices • Fine-scale feedback • Pair programming • The Planning Game • Testing • On-site customer • Continuous process • Continuous integration • Refactoring • Small releases
  • 16. If it’s easier to change it, you’re more likely to improve it
  • 17. XP Practices • Fine-scale feedback • Pair programming • The Planning Game • Testing • On-site customer • Continuous process • Continuous integration • Refactoring • Small releases • Shared understanding • Coding standards • Collective ownership • Simple design • Metaphor • Programmer welfare • 40 hour week
  • 18. Steve Jobs, 1998 That's been one of my mantras — focus and simplicity. Simple can be harder than complex: You have to work hard to get your thinking clean to make it simple. But it's worth it in the end because once you get there, you can move mountains.
  • 20. XP Framework • 12 x Practices (Fine-scale Feedback, Continuous Process, Shared Understanding, Programmer Welfare)
  • 22. XP Framework • 12 x Practices (Fine-scale Feedback, Continuous Process, Shared Understanding, Programmer Welfare) • 4 x Activities (Coding, Testing, Listening, Designing)
  • 23. XP Values Communication Simplicity Feedback Courage Respect
  • 24. XP Framework • 12 x Practices (Fine-scale Feedback, Continuous Process, Shared Understanding, Programmer Welfare) • 4 x Activities (Coding, Testing, Listening, Designing) • 5 x Values (Communication, Simplicity, Feedback, Courage, Respect)
  • 25. XP Principles Rapid feedback Assume simplicity Incremental change Other Embracing change Quality work Teach learning Small initial investment Play to win Concrete experiments Open, honest communication Work with people’s instincts, not against them Accepted responsibility Local adaption Travel light Honest measurement
  • 26. XP Framework • 12 x Practices (Fine-scale Feedback, Continuous Process, Shared Understanding, Programmer Welfare) • 4 x Activities (Coding, Testing, Listening, Designing) • 5 x Values (Communication, Simplicity, Feedback, Courage, Respect) • 3 x Principles (Rapid feedback, Assume simplicity, Incremental change) + 12
  • 27. XP Rules Planning User stories are written Release planning Make frequent small releases Project divided into iterations Iteration planning starts each iteration Managing Give the team an open work space Set a sustainable pace A stand-up meeting starts each day The project velocity is measured Move people around Fix XP when it breaks Designing Simplicity Choose a system metaphor Use (Class Responsibility Collaborator) CRC cards for design sessions Create spike solutions to reduce risk No functionality is added early Refactor whenever possible Coding Customer is always available Code written to agreed standards Code the unit test first Production code is pair programmed Only one pair integrates code at a time Integrate often Use a dedicated integration machine Use collective ownership Testing All code must have unit tests All code must pass all unit tests When a bug is found tests are created Acceptance tests are run often and the score is published
  • 28. XP Framework • 12 x Practices (Fine-scale Feedback, Continuous Process, Shared Understanding, Programmer Welfare) • 4 x Activities (Coding, Testing, Listening, Designing) • 5 x Values (Communication, Simplicity, Feedback, Courage, Respect) • 3 x Principles (Rapid feedback, Assume simplicity, Incremental change) + 12 • 29 x Rules (Planning, Managing, Designing, Coding, Testing)
  • 29. XP Roles • The Customer • The Developer • The Tracker • The Coach
  • 30. XP Framework • 12 x Practices (Fine-scale Feedback, Continuous Process, Shared Understanding, Programmer Welfare) • 4 x Activities (Coding, Testing, Listening, Designing) • 5 x Values (Communication, Simplicity, Feedback, Courage, Respect) • 3 x Principles (Rapid feedback, Assume simplicity, Incremental change) + 12 • 29 x Rules (Planning, Managing, Designing, Coding, Testing) • 4 x Roles (Customer, Developer, Tracker, Coach)

Editor's Notes

  1. Software development fails to deliver, and fails to deliver value. This failure has huge economic and human impact. We need to find a new way to develop software.
  2. XP: Kent Beck Lean: Mary Poppendieck Crystal: Alistair Cockburn Scrum: Schwaber & Sutherland
  3. “If everything seems under control, You’re not going fast enough” - Mario Anderetti
  4. XP is lightweight. In XP you only do what you need to do to create value for the customer. You can't carry a lot of baggage and move fast. However, there is no freezedried software process. The body of technical knowledge necessary to be an outstanding team is large and growing. XP is a methodology based on addressing constraints in software development. It does not address project portfolio management, financial justification of projects, operations, marketing, or sales. XP has implications in all of these areas, but does not address these practices directly. Methodology is often interpreted to mean "a set of rules to follow that guarantee success.“ Methodologies don't work like programs. People aren’t computers. Every team does XP differently with varying degrees of success. XP adapts to vague or rapidly changing requirements. XP is still good for this situation, which is fortunate because requirements need to change to adapt to rapid shifts in the modern business world. However, teams have also successfully used XP where requirements don't seem volatile, like porting projects.
  5. Chapter 6. Learning to Drive We need to control the development of software by making many small adjustments, not by making a few large adjustments, kind of like driving a car. This means that we will need the feedback to know when we are a little off, we will need many opportunities to make corrections, and we will have to be able to make those corrections at a reasonable cost Driving is not about getting the car going in the right direction. Driving is about constantly paying attention, making a little correction this way, a little correction that way. The driver of software project is the customer. If the software doesn’t do what they want it to do, you have failed. Of course, they don’t know exactly what the software should do. That’s why software development is like steering, not like getting the car pointed straight down the road. Our job as programmers is to give the customer a steering wheel and give them feedback about exactly where we are on the road.
  6. Mentality of Sufficiency Forest People and Mountain People How would you program if you had enough time? Write tests Restructure the system Pair programming Talk with the customer often Now, you can’t have extra time, because this is business after all, and we are certainly playing to win.
  7. XP Values We will be successful when we have a style that celebrates a consistent set of values that serve both human and commercial needs: communication, simplicity, feedback, and courage. Communication Bad communication doesn’t happen by chance Practices that make short-term sense, like unit testing, pair programming, and task estimation has an effect that programmers and customers and managers have to communicate Everyone is part of the team and we communicate face-to-face daily Simplicity What is the simplest thing that could possibly work? We will do what is needed and asked for, but no more Feedback Concrete feedback about the current state of the system is absolutely priceless Feedback works at scale of minutes and days (unit tests, new stories estimation, task completion progress Feedback also works at scale of weeks and months (functional tests, team velocity review, early release) XP teams try to shorten the feedback cycle to minutes and hours instead of weeks or months. The sooner you know, the sooner you can adapt We will take every iteration commitment seriously by delivering working software Courage If the end of the day is coming and the code is a little out of control, toss it The courage to speak truths, discard failing solutions and seek new ones, seek real concrete answers To do the right thing and work on tough problems We will tell the truth about progress and estimates Respect Team members cares about each other and about the project Team members respect each other to be capable, independent people Everyone gives and feels the respect they deserve as a valued team member Exercise: Put each statement under the related value Bad communication doesn’t happen by chance Practices that make short-term sense, like unit testing, pair programming, and task estimation has an effect that programmers and customers and managers have to communicate Everyone is part of the team and we communicate face-to-face daily What is the simplest thing that could possibly work? We will do what is needed and asked for, but no more Concrete feedback about the current state of the system is absolutely priceless Feedback works at scale of minutes and days (unit tests, new stories estimation, task completion progress Feedback also works at scale of weeks and months (functional tests, team velocity review, early release) XP teams try to shorten the feedback cycle to minutes and hours instead of weeks or months. The sooner you know, the sooner you can adapt We will take every iteration commitment seriously by delivering working software If the end of the day is coming and the code is a little out of control, toss it The courage to speak truths, discard failing solutions and seek new ones, seek real concrete answers To do the right thing and work on tough problems We will tell the truth about progress and estimates Team members cares about each other and about the project Team members respect each other to be capable, independent people Everyone gives and feels the respect they deserve as a valued team member
  8. Small Releases XP teams practice small releases in two important ways: Release running, tested software, delivering business value chosen by the Customer, every iteration. The Customer can use this software for any purpose, whether evaluation or even release to end users. Release to end users frequently as well. Web projects release as often as daily, in house projects monthly or more frequently. Even shrink-wrapped products are shipped as often as quarterly. Metaphor “A metaphor is meant to be agreed upon by all members of a project as a means of simply explaining the purpose of the project and thus guide the structure of the architecture” Benefits: Communication, including between customers & developers Clarify project, explain functionality Favors simple design Helps find common vocabulary Simple design Do the simplest thing that could possibly work! – Kent Beck Refactor as needed Refactoring “Disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior“ Example refactoring techniques: Encapsulate attribute (field)into function Replace conditional with dynamic binding Extract routine (method) Rename routine or attribute Move routine or attribute to another class Pull up, pull down Used in agile methods as a substitute for upfront design Pair programming Two programmers sitting at one machine Thinking out loud Goals: Make thinking process explicit Keep each other on task Brainstorm refinements to system Clarify ideas Take initiative when other stuck, lowering frustration Hold each other accountable to team practices Collective Ownership Agile methods reject code ownership in favor of code whose responsibility is shared by entire team Rationale: Most non-trivial features extend across many layers in the application Code ownership creates unnecessary dependencies between team members and delays What counts is implemented features, not personal responsibility Avoid blame game Avoid specialization Minimize risk (team members leaving) Continuous Integration The combination of frequent releases with relentless testing Keep system fully integrated at all times Rather than weekly or daily builds, build system several times per day Benefits: Integration is easier because little has changed Team learns more quickly Unexpected interactions rooted out early: conflicts are found while team can still change approach Problematic code more likely to be fixed because more eyes see it sooner Duplication easier to eliminate because visible sooner Coding standards Project members all code to the same conventions
  9. XP is lightweight. In XP you only do what you need to do to create value for the customer. You can't carry a lot of baggage and move fast. However, there is no freezedried software process. The body of technical knowledge necessary to be an outstanding team is large and growing. XP is a methodology based on addressing constraints in software development. It does not address project portfolio management, financial justification of projects, operations, marketing, or sales. XP has implications in all of these areas, but does not address these practices directly. Methodology is often interpreted to mean "a set of rules to follow that guarantee success.“ Methodologies don't work like programs. People aren’t computers. Every team does XP differently with varying degrees of success. XP adapts to vague or rapidly changing requirements. XP is still good for this situation, which is fortunate because requirements need to change to adapt to rapid shifts in the modern business world. However, teams have also successfully used XP where requirements don't seem volatile, like porting projects.
  10. Small Releases XP teams practice small releases in two important ways: Release running, tested software, delivering business value chosen by the Customer, every iteration. The Customer can use this software for any purpose, whether evaluation or even release to end users. Release to end users frequently as well. Web projects release as often as daily, in house projects monthly or more frequently. Even shrink-wrapped products are shipped as often as quarterly. Metaphor “A metaphor is meant to be agreed upon by all members of a project as a means of simply explaining the purpose of the project and thus guide the structure of the architecture” Benefits: Communication, including between customers & developers Clarify project, explain functionality Favors simple design Helps find common vocabulary Simple design Do the simplest thing that could possibly work! – Kent Beck Refactor as needed Refactoring “Disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior“ Example refactoring techniques: Encapsulate attribute (field)into function Replace conditional with dynamic binding Extract routine (method) Rename routine or attribute Move routine or attribute to another class Pull up, pull down Used in agile methods as a substitute for upfront design Pair programming Two programmers sitting at one machine Thinking out loud Goals: Make thinking process explicit Keep each other on task Brainstorm refinements to system Clarify ideas Take initiative when other stuck, lowering frustration Hold each other accountable to team practices Collective Ownership Agile methods reject code ownership in favor of code whose responsibility is shared by entire team Rationale: Most non-trivial features extend across many layers in the application Code ownership creates unnecessary dependencies between team members and delays What counts is implemented features, not personal responsibility Avoid blame game Avoid specialization Minimize risk (team members leaving) Continuous Integration The combination of frequent releases with relentless testing Keep system fully integrated at all times Rather than weekly or daily builds, build system several times per day Benefits: Integration is easier because little has changed Team learns more quickly Unexpected interactions rooted out early: conflicts are found while team can still change approach Problematic code more likely to be fixed because more eyes see it sooner Duplication easier to eliminate because visible sooner Coding standards Project members all code to the same conventions
  11. XP is lightweight. In XP you only do what you need to do to create value for the customer. You can't carry a lot of baggage and move fast. However, there is no freezedried software process. The body of technical knowledge necessary to be an outstanding team is large and growing. XP is a methodology based on addressing constraints in software development. It does not address project portfolio management, financial justification of projects, operations, marketing, or sales. XP has implications in all of these areas, but does not address these practices directly. Methodology is often interpreted to mean "a set of rules to follow that guarantee success.“ Methodologies don't work like programs. People aren’t computers. Every team does XP differently with varying degrees of success. XP adapts to vague or rapidly changing requirements. XP is still good for this situation, which is fortunate because requirements need to change to adapt to rapid shifts in the modern business world. However, teams have also successfully used XP where requirements don't seem volatile, like porting projects.
  12. Small Releases XP teams practice small releases in two important ways: Release running, tested software, delivering business value chosen by the Customer, every iteration. The Customer can use this software for any purpose, whether evaluation or even release to end users. Release to end users frequently as well. Web projects release as often as daily, in house projects monthly or more frequently. Even shrink-wrapped products are shipped as often as quarterly. Metaphor “A metaphor is meant to be agreed upon by all members of a project as a means of simply explaining the purpose of the project and thus guide the structure of the architecture” Benefits: Communication, including between customers & developers Clarify project, explain functionality Favors simple design Helps find common vocabulary Simple design Do the simplest thing that could possibly work! – Kent Beck Refactor as needed Refactoring “Disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior“ Example refactoring techniques: Encapsulate attribute (field)into function Replace conditional with dynamic binding Extract routine (method) Rename routine or attribute Move routine or attribute to another class Pull up, pull down Used in agile methods as a substitute for upfront design Pair programming Two programmers sitting at one machine Thinking out loud Goals: Make thinking process explicit Keep each other on task Brainstorm refinements to system Clarify ideas Take initiative when other stuck, lowering frustration Hold each other accountable to team practices Collective Ownership Agile methods reject code ownership in favor of code whose responsibility is shared by entire team Rationale: Most non-trivial features extend across many layers in the application Code ownership creates unnecessary dependencies between team members and delays What counts is implemented features, not personal responsibility Avoid blame game Avoid specialization Minimize risk (team members leaving) Continuous Integration The combination of frequent releases with relentless testing Keep system fully integrated at all times Rather than weekly or daily builds, build system several times per day Benefits: Integration is easier because little has changed Team learns more quickly Unexpected interactions rooted out early: conflicts are found while team can still change approach Problematic code more likely to be fixed because more eyes see it sooner Duplication easier to eliminate because visible sooner Coding standards Project members all code to the same conventions
  13. XP Values We will be successful when we have a style that celebrates a consistent set of values that serve both human and commercial needs: communication, simplicity, feedback, and courage. Communication Bad communication doesn’t happen by chance Practices that make short-term sense, like unit testing, pair programming, and task estimation has an effect that programmers and customers and managers have to communicate Everyone is part of the team and we communicate face-to-face daily Simplicity What is the simplest thing that could possibly work? We will do what is needed and asked for, but no more Feedback Concrete feedback about the current state of the system is absolutely priceless Feedback works at scale of minutes and days (unit tests, new stories estimation, task completion progress Feedback also works at scale of weeks and months (functional tests, team velocity review, early release) XP teams try to shorten the feedback cycle to minutes and hours instead of weeks or months. The sooner you know, the sooner you can adapt We will take every iteration commitment seriously by delivering working software Courage If the end of the day is coming and the code is a little out of control, toss it The courage to speak truths, discard failing solutions and seek new ones, seek real concrete answers To do the right thing and work on tough problems We will tell the truth about progress and estimates Respect Team members cares about each other and about the project Team members respect each other to be capable, independent people Everyone gives and feels the respect they deserve as a valued team member Exercise: Put each statement under the related value Bad communication doesn’t happen by chance Practices that make short-term sense, like unit testing, pair programming, and task estimation has an effect that programmers and customers and managers have to communicate Everyone is part of the team and we communicate face-to-face daily What is the simplest thing that could possibly work? We will do what is needed and asked for, but no more Concrete feedback about the current state of the system is absolutely priceless Feedback works at scale of minutes and days (unit tests, new stories estimation, task completion progress Feedback also works at scale of weeks and months (functional tests, team velocity review, early release) XP teams try to shorten the feedback cycle to minutes and hours instead of weeks or months. The sooner you know, the sooner you can adapt We will take every iteration commitment seriously by delivering working software If the end of the day is coming and the code is a little out of control, toss it The courage to speak truths, discard failing solutions and seek new ones, seek real concrete answers To do the right thing and work on tough problems We will tell the truth about progress and estimates Team members cares about each other and about the project Team members respect each other to be capable, independent people Everyone gives and feels the respect they deserve as a valued team member
  14. XP is lightweight. In XP you only do what you need to do to create value for the customer. You can't carry a lot of baggage and move fast. However, there is no freezedried software process. The body of technical knowledge necessary to be an outstanding team is large and growing. XP is a methodology based on addressing constraints in software development. It does not address project portfolio management, financial justification of projects, operations, marketing, or sales. XP has implications in all of these areas, but does not address these practices directly. Methodology is often interpreted to mean "a set of rules to follow that guarantee success.“ Methodologies don't work like programs. People aren’t computers. Every team does XP differently with varying degrees of success. XP adapts to vague or rapidly changing requirements. XP is still good for this situation, which is fortunate because requirements need to change to adapt to rapid shifts in the modern business world. However, teams have also successfully used XP where requirements don't seem volatile, like porting projects.
  15. XP is lightweight. In XP you only do what you need to do to create value for the customer. You can't carry a lot of baggage and move fast. However, there is no freezedried software process. The body of technical knowledge necessary to be an outstanding team is large and growing. XP is a methodology based on addressing constraints in software development. It does not address project portfolio management, financial justification of projects, operations, marketing, or sales. XP has implications in all of these areas, but does not address these practices directly. Methodology is often interpreted to mean "a set of rules to follow that guarantee success.“ Methodologies don't work like programs. People aren’t computers. Every team does XP differently with varying degrees of success. XP adapts to vague or rapidly changing requirements. XP is still good for this situation, which is fortunate because requirements need to change to adapt to rapid shifts in the modern business world. However, teams have also successfully used XP where requirements don't seem volatile, like porting projects.
  16. Programmer Turn customer stories into working code Developer Obligations Know and understand technical issues Create and maintain the system as it evolves Answer: “How will we implement it?”, “How long will it take?” & “What are the risks?” Work with customer to understand his stories From a story, decide implementation Estimate work for each story, based on implementation decisions & experience Identify features that depend on other features Identify risky features and report them to customer Follow team guidelines Implement only what is necessary Communicate constantly with customers Developer Rights Estimate own work Work sensible & predictable schedule, by scheduling only work that can be done Produce code that meets the customer’s needs, by focusing on testing, refactoring, and customer communication Avoid need to make business decisions, by allowing the customer to make them Customer in XP Trust developers’ technical decisions, because developers understand technology Analyze risk correctly, weighing stories against each other Provide precise stories, enabling developers to produce comprehensive task cards and accurate estimates Choose stories with maximum value, scheduling the most valuable stories that could possibly fit in to next iteration Work within team, providing guidance and receiving feedback as quickly and accurately as possible The programmer knows how to program; The customer knows what to program Tracker Keeps track of the schedule Most important metric Velocity: ratio of ideal time estimated for tasks to actual time spent implementing them Other important data: Changes in velocity Amount of overtime worked Ratio of passing to failing tests These numbers measure progress and the rate of progress and help determine if the project is on schedule for the iteration To measure velocity within the iteration, every day or two, the tracker asks each developer how many tasks he has completed His job is to close the loop on feedback Keep a log of functional test scores Keep a log of defects Ability to collect the information you need without disturbing the whole process more than necessary Coach (Optional role) Guides team Mentors team Leads by example Teaches when necessary May teach by doing May offer ideas to solve thorny problems May serve as intermediary with management In Scrum: this role is mostly taken on by the ScrumMaster
  17. XP Values We will be successful when we have a style that celebrates a consistent set of values that serve both human and commercial needs: communication, simplicity, feedback, and courage. Communication Bad communication doesn’t happen by chance Practices that make short-term sense, like unit testing, pair programming, and task estimation has an effect that programmers and customers and managers have to communicate Everyone is part of the team and we communicate face-to-face daily Simplicity What is the simplest thing that could possibly work? We will do what is needed and asked for, but no more Feedback Concrete feedback about the current state of the system is absolutely priceless Feedback works at scale of minutes and days (unit tests, new stories estimation, task completion progress Feedback also works at scale of weeks and months (functional tests, team velocity review, early release) XP teams try to shorten the feedback cycle to minutes and hours instead of weeks or months. The sooner you know, the sooner you can adapt We will take every iteration commitment seriously by delivering working software Courage If the end of the day is coming and the code is a little out of control, toss it The courage to speak truths, discard failing solutions and seek new ones, seek real concrete answers To do the right thing and work on tough problems We will tell the truth about progress and estimates Respect Team members cares about each other and about the project Team members respect each other to be capable, independent people Everyone gives and feels the respect they deserve as a valued team member Exercise: Put each statement under the related value Bad communication doesn’t happen by chance Practices that make short-term sense, like unit testing, pair programming, and task estimation has an effect that programmers and customers and managers have to communicate Everyone is part of the team and we communicate face-to-face daily What is the simplest thing that could possibly work? We will do what is needed and asked for, but no more Concrete feedback about the current state of the system is absolutely priceless Feedback works at scale of minutes and days (unit tests, new stories estimation, task completion progress Feedback also works at scale of weeks and months (functional tests, team velocity review, early release) XP teams try to shorten the feedback cycle to minutes and hours instead of weeks or months. The sooner you know, the sooner you can adapt We will take every iteration commitment seriously by delivering working software If the end of the day is coming and the code is a little out of control, toss it The courage to speak truths, discard failing solutions and seek new ones, seek real concrete answers To do the right thing and work on tough problems We will tell the truth about progress and estimates Team members cares about each other and about the project Team members respect each other to be capable, independent people Everyone gives and feels the respect they deserve as a valued team member