SlideShare a Scribd company logo
Going Extreme with
Extreme Programming (XP)
Michael D. Green
@greensharesthoughts.com
I am Michael Green
I am a Software Developer, Certified SCRUM
Master and PMP. I have been a Consultant for
about 6 years and I have been Agile for about 5
years.
You can find me at
michael@greensharesthoughts.com
Hello!
Why this topic?
As a Consultant, often times you will be tasked with being a process
improvement and change agent.
1
This discussion is not an exhaustive
discussion on Extreme Programming. It
serves as a general overview of the
concepts, values and principles of Extreme
Programming.
Also, I assume that the audience is familiar
with The Agile Methodology.
Caveats!
Agenda
◉ What is Extreme Programming (XP)?
◉ Why XP?
◉ XP Values?
◉ XP Principles?
◉ XP Practices?
◉ XP Roles?
◉ My XP Epiphany!
◉ Why this flavor of Agile?
◉ XP Adoption Challenges?
◉ Overcoming Adoption Challenges?
◉ Companies that are Extreme?
◉ Resources?
◉ Questions?
What is Extreme
Programming (XP)?2
“
“Extreme Programming (XP) is about
social change. It is a philosophy of
software development based upon the
values of communication, feedback,
simplicity, courage and respect” –
Kent Beck
What is Extreme Progamming
(XP) Continued?
◉ XP is a specific instantiation of an agile process
◉ XP combines best practices in a different way
◉ XP is a different approach to development
◉ XP provides a core process model
◉ XP is not intended to be a complete framework
History of XP?
Early Influences
Incremental, stakeholder-driven
design process and
Programming as learning from
Papert, Kay
Early 80s
Beck & Cunningham introduce
Pair Programming at Tektronix
Mid-80s
Smalltalk culture produces
refactoring, continuous
integration, constant testing,
close customer involvement
Early 90s
Beck summarizes in Smalltalk
Best Practices and adds unit
testing, metaphor at Hewitt
Mid-90s
Ron Jeffries hired as first XP
Coach at Chrysler, Beck writes
Extreme Programming
Explained. Fowler publishes
Refactoring.
2000s and Beyond
More books, first conferences
and evolution continues through
today
“Turned the knob up to 10” on each practice:
◉ Very short cycles (planning game)
◉ Continuous code reviews (pair programming)
◉ Extensive testing (unit testing, acceptance testing)
◉ Continuous integration
◉ Constant design improvement (refactoring)
◉ Continuous architecture refinement (metaphor)
Why is it called “Extreme”?
Why Extreme
Programming (XP)?
Let’s go through some of the values, practices and principles XP has
to offer and try to understand why some people choose to adopt this
particular flavor of Agile and then re-visit this question.
3
XP Values?
◉ Communication – What matters most in Software Development
◉ Simplicity – Building systems to solve only “today’s” problems
◉ Feedback – It’s all about the “feedback” loop
◉ Courage – Disregarding failing solutions and seek new ones
◉ Respect – Caring about the members of the team and the project
◉ Rapid Feedback
◉ Assume Simplicity
◉ Incremental Change
◉ Embracing Change
◉ Quality Work
◉ Teach Learning
◉ Small Initial Investment
◉ Play to Win
XP Principles?
◉ Concrete Experiments
◉ Open Honest Communication
◉ Work With Instincts
◉ Accepted Responsibility
◉ Local Adaptation
◉ Travel Light
◉ Honest Measurement
The Original XP 12 Practices
◉ On-Site Customer
◉ Small Releases
◉ Testing
◉ Simple Design
◉ Pair Programming
◉ Refactoring
◉ Continous Integration
◉ Collective Ownership
◉ Coding Standards
◉ Metaphor
◉ 40-Hour Week
On-Site Customer
◉ Whole Team
The Planning Game
◉ Release Planning
◉ Iteration Planning
Testing
◉ Acceptance Testing
◉ Unit Testing
◉ Test-Driving Development
Refactoring
◉ Design Improvement
40-Hour Week
◉ Sustainable Pace
Evolving Practices
Whole Team (On-Site Customer)
◉ Project goals are a shared responsibility
◉ Face-to-face communication is most efficient
◉ Development is an ongoing conversation across the whole team
Planning Game (Release & Iteration Planning)
◉ Facilitates incremental project planning as more and better information
learned
◉ Releases are typically from 1 to 6 months
◉ Iteration planning sets short-term time-box (typically 1 week to 1 month)
Small Releases
◉ Releases small as possible while still delivering enough value to be
worthwhile
◉ Release early to begin providing business value early (maximize ROI over
time)
◉ Release early to obtain feedback and facilitate steering
◉ Small releases minimize early commitment, leaving open options longer
Acceptance Testing
◉ Acceptance tests prove the system implements the desired features
correctly
◉ Ideally acceptance tests written along with stories and provided prior to
implementation
◉ Acceptance tests provide non-ambiguous specifications of functional
requirements
Unit Testing
◉ Developer writes unit tests
◉ Unit Tests must be automated
◉ All unit tests executed very frequently
◉ Code can not be checked-in until all unit tests pass
◉ Unit tests provide safety net for refactoring
Test-Driven Development
◉ Likely the most innovative XP practice
◉ Developer writes a unit test prior to writing code
◉ Developer writes just enough code to make the unit test pass
◉ Personal TDD Story: CenseoHealth
Simple Design
◉ Design in XP is not static – is incremental and responds to learning
◉ “Do the simplest thing that can possibly work”
◉ No speculative development (YAGNI)
Pair Programming
◉ All production code written in pairs and pairs switch frequently
◉ Programming is collaborative and not one-sided
◉ Allows for continuous code review
◉ Helps limit “Hit by a Bus” Syndrome
Refactoring
◉ Allows design to incrementally evolve
◉ Supports the “Simple Design” Practice
◉ Refactoring drives code towards higher-level quality
Continuous Integration
◉ Avoidance of “big bang” integrations
◉ Occurs several times a day
◉ Forces bug fixing to occur immediately
Collective Ownership
◉ Any Developer can make changes to any part of the code as needed for
their tasks
◉ All Developers responsible for integrity of the code base
Metaphor
◉ Effective communication requires the team to have a common mental
model of the system
◉ Effective communication requires the team to have a common language to
talk about the system (Domain-Driven Design)
Sustainable Pace (40-Hour Week)
◉ Fatigue and stress reduces productivity
◉ Consideration of the human (humane) side
◉ Team agrees on expectations and enforces them
XP Roles
Not an exhaustive list but a lot more defined roles as compared
to Agile SCRUM:
◉ Testers
◉ Interaction Designers (UX)
◉ Architects
◉ Project Managers
◉ Product Managers
◉ Executives
◉ Technical Writers
◉ Users
◉ Programmers
◉ Human Resources*
XP Process Cycle
Product
Life
Cylces
Releases
Iterations
Tasks
Episodes
Why this flavor of Agile
(Revisited)?
Martin Fowler – “Flaccid” SCRUM:
◉ Cermonies and “Technical” Practices
The “Human” Side:
◉ 40-hour work week (Sustainable Pace)
◉ Respect and “Constructive” Feedback
◉ Human Resources defined as a role
XP Adoption Challenges?
◉ Resistance to “change”
◉ Unwillingness to “share” knowledge
◉ Teams within the organization don’t play nice
with each other
◉ Negative view of Pair Programming
◉ Resistance to working in open rooms
◉ Legacy applications
◉ Organization and XP values are not aligned*
Overcoming Adoption Challenges?
◉ Find some un-used space in the office and encourage people to work
together occasionally
◉ Encourage pair programming on certain tasks
◉ Start enforcing coding standards
◉ Choose one area of the code base to start unit testing
◉ Setup automated testing and continuous integration
◉ Introduce planning and iteration cycles
What Companies are “Extreme”?
◉ ThoughtWorks – Martin Fowler (Chief Scientist)
◉ Menlo Innovations – Rich Sheridan (Joy Inc.)
◉ 8th Light – Uncle Bob
◉ Pivotal Labs (Went “extreme” over 2 decades ago)
Resources?
◉ Thoughtworks.com
◉ 8thlight.com
◉ Martinfowler.com
◉ Objectmentor.com
◉ C2.com
◉ Blog.greensharesthoughts.com (Shameless plug)
◉ Joy, Inc – Rich Sheridan
◉ Extreme Programming Explained – Kent Beck
Any questions ?
You can find me at
◉ michael@greensharesthoughts.com
◉ Twitter @mikedeongreen
Thanks!
Credits
Special thanks to all the people who made and
released these awesome resources for free:
◉ Presentation template by SlidesCarnival
◉ Photographs by Unsplash
◉ Agile Logic, Inc

More Related Content

What's hot

eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
Gurtej Pal Singh
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Chuu Htet Naing
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
Bilal Shah
 
Lean Software Development
Lean Software Development Lean Software Development
Lean Software Development
Christopher Grant
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
MuaazZubairi
 
What does a Scrum Master do, or should do, all day?
What does a Scrum Master do, or should do, all day? What does a Scrum Master do, or should do, all day?
What does a Scrum Master do, or should do, all day?
Stefania Marinelli
 
What is Agile Methodology?
What is Agile Methodology?What is Agile Methodology?
What is Agile Methodology?
QA InfoTech
 
Rapid Release Planning
Rapid Release PlanningRapid Release Planning
Rapid Release Planning
AgileDad
 
Software testing principles
Software testing principlesSoftware testing principles
Software testing principles
Donato Di Pierro
 
Test Automation Pyramid
Test Automation PyramidTest Automation Pyramid
Test Automation Pyramid
T. Alexander Lystad
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overviewguestb4c770
 
Extreme programming (xp) | David Tzemach
Extreme programming (xp) | David TzemachExtreme programming (xp) | David Tzemach
Extreme programming (xp) | David Tzemach
David Tzemach
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
pearlcatcharro
 
Agile ve Scrum
Agile ve ScrumAgile ve Scrum
Agile ve Scrum
Muhammed Özdemir
 
Agile Scrum for your startup
Agile Scrum for your startupAgile Scrum for your startup
Agile Scrum for your startup
Kevin Vu
 
Software testing - Risk management
Software testing - Risk managementSoftware testing - Risk management
Software testing - Risk management
PractiTest
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
Pradeep Patel, PMP®
 
[HanoiScrum.net] Scrum foundation
[HanoiScrum.net] Scrum foundation[HanoiScrum.net] Scrum foundation
[HanoiScrum.net] Scrum foundation
Agile đây Vietnam
 
Agile Metrics: It's Not All That Complicated
Agile Metrics: It's Not All That ComplicatedAgile Metrics: It's Not All That Complicated
Agile Metrics: It's Not All That Complicated
VersionOne
 

What's hot (20)

eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Lean Software Development
Lean Software Development Lean Software Development
Lean Software Development
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
What does a Scrum Master do, or should do, all day?
What does a Scrum Master do, or should do, all day? What does a Scrum Master do, or should do, all day?
What does a Scrum Master do, or should do, all day?
 
What is Agile Methodology?
What is Agile Methodology?What is Agile Methodology?
What is Agile Methodology?
 
Rapid Release Planning
Rapid Release PlanningRapid Release Planning
Rapid Release Planning
 
Software testing principles
Software testing principlesSoftware testing principles
Software testing principles
 
Test Automation Pyramid
Test Automation PyramidTest Automation Pyramid
Test Automation Pyramid
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overview
 
Extreme programming (xp) | David Tzemach
Extreme programming (xp) | David TzemachExtreme programming (xp) | David Tzemach
Extreme programming (xp) | David Tzemach
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Agile ve Scrum
Agile ve ScrumAgile ve Scrum
Agile ve Scrum
 
Agile Scrum for your startup
Agile Scrum for your startupAgile Scrum for your startup
Agile Scrum for your startup
 
Software testing - Risk management
Software testing - Risk managementSoftware testing - Risk management
Software testing - Risk management
 
Agile Software Development Methodologies
Agile Software Development MethodologiesAgile Software Development Methodologies
Agile Software Development Methodologies
 
[HanoiScrum.net] Scrum foundation
[HanoiScrum.net] Scrum foundation[HanoiScrum.net] Scrum foundation
[HanoiScrum.net] Scrum foundation
 
Agile Metrics: It's Not All That Complicated
Agile Metrics: It's Not All That ComplicatedAgile Metrics: It's Not All That Complicated
Agile Metrics: It's Not All That Complicated
 

Viewers also liked

DDOA = Software Craftmanship
DDOA = Software CraftmanshipDDOA = Software Craftmanship
DDOA = Software Craftmanship
Rody Middelkoop
 
Xcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, MilanXcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, Milan
Giulio Roggero
 
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
 
Workshop 4 belize minimum viable product
Workshop 4 belize   minimum viable productWorkshop 4 belize   minimum viable product
Workshop 4 belize minimum viable productMario Reyes
 
What Is The Minimum Viable Product?
What Is The Minimum Viable Product?What Is The Minimum Viable Product?
What Is The Minimum Viable Product?Venture Hacks
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingMr SMAK
 
Minimum Viable Product
Minimum Viable ProductMinimum Viable Product
Minimum Viable ProductEric Ries
 
Minimum Viable Product
Minimum Viable ProductMinimum Viable Product
Minimum Viable Product
Bernard Leong
 
How to create your Minimum Viable Product - Raff Paquin
How to create your Minimum Viable Product - Raff PaquinHow to create your Minimum Viable Product - Raff Paquin
How to create your Minimum Viable Product - Raff Paquin
Raff Paquin
 

Viewers also liked (10)

DDOA = Software Craftmanship
DDOA = Software CraftmanshipDDOA = Software Craftmanship
DDOA = Software Craftmanship
 
Xcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, MilanXcode eXtreme Programming - #pragmamark 2014, Milan
Xcode eXtreme Programming - #pragmamark 2014, Milan
 
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 !
 
Workshop 4 belize minimum viable product
Workshop 4 belize   minimum viable productWorkshop 4 belize   minimum viable product
Workshop 4 belize minimum viable product
 
What Is The Minimum Viable Product?
What Is The Minimum Viable Product?What Is The Minimum Viable Product?
What Is The Minimum Viable Product?
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Minimum Viable Product
Minimum Viable ProductMinimum Viable Product
Minimum Viable Product
 
Minimum Viable Product
Minimum Viable ProductMinimum Viable Product
Minimum Viable Product
 
How to create your Minimum Viable Product - Raff Paquin
How to create your Minimum Viable Product - Raff PaquinHow to create your Minimum Viable Product - Raff Paquin
How to create your Minimum Viable Product - Raff Paquin
 

Similar to Going extreme-with-extreme-programming

Agile methods series (xp)
Agile methods series (xp)Agile methods series (xp)
Agile methods series (xp)
XPDays
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
Mike Harris
 
The Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The BeginningThe Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The Beginning
Vitaliy Kulikov
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
Bassam Kanber
 
It's XP, Stupid
It's XP, StupidIt's XP, Stupid
It's XP, Stupid
Mike Harris
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
International Islamic University Islamabad
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
Vernon Stinebaker
 
Introducing Agile Methodologies
Introducing Agile MethodologiesIntroducing Agile Methodologies
Introducing Agile Methodologies
Stfalcon Meetups
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Javier Sánchez Rois
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): Revisted
Mike Harris
 
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
 
Holistic Product Development
Holistic Product DevelopmentHolistic Product Development
Holistic Product Development
Gary Pedretti
 
Software development myths that block your career
Software development myths that block your careerSoftware development myths that block your career
Software development myths that block your career
Piotr Horzycki
 
What is xp
What is xpWhat is xp
What is xp
Simone Federici
 
Agile
AgileAgile
Agile
Komal2525
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
AYUSH JAIN
 
Power of the Swarm - Agile Serbia Conference 2017
Power of the Swarm - Agile Serbia Conference 2017Power of the Swarm - Agile Serbia Conference 2017
Power of the Swarm - Agile Serbia Conference 2017
Petri Heiramo
 
Agile 101
Agile 101 Agile 101
Agile 101
Vineet Shukla
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
Suresh Krishna Madhuvarsu
 

Similar to Going extreme-with-extreme-programming (20)

Agile testing
Agile testingAgile testing
Agile testing
 
Agile methods series (xp)
Agile methods series (xp)Agile methods series (xp)
Agile methods series (xp)
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
 
The Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The BeginningThe Way of The Software Craftsman # Part One: The Beginning
The Way of The Software Craftsman # Part One: The Beginning
 
Extreme Programming 1st.pdf
Extreme Programming 1st.pdfExtreme Programming 1st.pdf
Extreme Programming 1st.pdf
 
It's XP, Stupid
It's XP, StupidIt's XP, Stupid
It's XP, Stupid
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Introducing Agile Methodologies
Introducing Agile MethodologiesIntroducing Agile Methodologies
Introducing Agile Methodologies
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): Revisted
 
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
 
Holistic Product Development
Holistic Product DevelopmentHolistic Product Development
Holistic Product Development
 
Software development myths that block your career
Software development myths that block your careerSoftware development myths that block your career
Software development myths that block your career
 
What is xp
What is xpWhat is xp
What is xp
 
Agile
AgileAgile
Agile
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Power of the Swarm - Agile Serbia Conference 2017
Power of the Swarm - Agile Serbia Conference 2017Power of the Swarm - Agile Serbia Conference 2017
Power of the Swarm - Agile Serbia Conference 2017
 
Agile 101
Agile 101 Agile 101
Agile 101
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 

Recently uploaded

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 

Recently uploaded (20)

Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 

Going extreme-with-extreme-programming

  • 1. Going Extreme with Extreme Programming (XP) Michael D. Green @greensharesthoughts.com
  • 2. I am Michael Green I am a Software Developer, Certified SCRUM Master and PMP. I have been a Consultant for about 6 years and I have been Agile for about 5 years. You can find me at michael@greensharesthoughts.com Hello!
  • 3. Why this topic? As a Consultant, often times you will be tasked with being a process improvement and change agent. 1
  • 4. This discussion is not an exhaustive discussion on Extreme Programming. It serves as a general overview of the concepts, values and principles of Extreme Programming. Also, I assume that the audience is familiar with The Agile Methodology. Caveats!
  • 5. Agenda ◉ What is Extreme Programming (XP)? ◉ Why XP? ◉ XP Values? ◉ XP Principles? ◉ XP Practices? ◉ XP Roles? ◉ My XP Epiphany! ◉ Why this flavor of Agile? ◉ XP Adoption Challenges? ◉ Overcoming Adoption Challenges? ◉ Companies that are Extreme? ◉ Resources? ◉ Questions?
  • 7. “ “Extreme Programming (XP) is about social change. It is a philosophy of software development based upon the values of communication, feedback, simplicity, courage and respect” – Kent Beck
  • 8. What is Extreme Progamming (XP) Continued? ◉ XP is a specific instantiation of an agile process ◉ XP combines best practices in a different way ◉ XP is a different approach to development ◉ XP provides a core process model ◉ XP is not intended to be a complete framework
  • 9. History of XP? Early Influences Incremental, stakeholder-driven design process and Programming as learning from Papert, Kay Early 80s Beck & Cunningham introduce Pair Programming at Tektronix Mid-80s Smalltalk culture produces refactoring, continuous integration, constant testing, close customer involvement Early 90s Beck summarizes in Smalltalk Best Practices and adds unit testing, metaphor at Hewitt Mid-90s Ron Jeffries hired as first XP Coach at Chrysler, Beck writes Extreme Programming Explained. Fowler publishes Refactoring. 2000s and Beyond More books, first conferences and evolution continues through today
  • 10. “Turned the knob up to 10” on each practice: ◉ Very short cycles (planning game) ◉ Continuous code reviews (pair programming) ◉ Extensive testing (unit testing, acceptance testing) ◉ Continuous integration ◉ Constant design improvement (refactoring) ◉ Continuous architecture refinement (metaphor) Why is it called “Extreme”?
  • 11. Why Extreme Programming (XP)? Let’s go through some of the values, practices and principles XP has to offer and try to understand why some people choose to adopt this particular flavor of Agile and then re-visit this question. 3
  • 12. XP Values? ◉ Communication – What matters most in Software Development ◉ Simplicity – Building systems to solve only “today’s” problems ◉ Feedback – It’s all about the “feedback” loop ◉ Courage – Disregarding failing solutions and seek new ones ◉ Respect – Caring about the members of the team and the project
  • 13. ◉ Rapid Feedback ◉ Assume Simplicity ◉ Incremental Change ◉ Embracing Change ◉ Quality Work ◉ Teach Learning ◉ Small Initial Investment ◉ Play to Win XP Principles? ◉ Concrete Experiments ◉ Open Honest Communication ◉ Work With Instincts ◉ Accepted Responsibility ◉ Local Adaptation ◉ Travel Light ◉ Honest Measurement
  • 14. The Original XP 12 Practices ◉ On-Site Customer ◉ Small Releases ◉ Testing ◉ Simple Design ◉ Pair Programming ◉ Refactoring ◉ Continous Integration ◉ Collective Ownership ◉ Coding Standards ◉ Metaphor ◉ 40-Hour Week
  • 15. On-Site Customer ◉ Whole Team The Planning Game ◉ Release Planning ◉ Iteration Planning Testing ◉ Acceptance Testing ◉ Unit Testing ◉ Test-Driving Development Refactoring ◉ Design Improvement 40-Hour Week ◉ Sustainable Pace Evolving Practices
  • 16. Whole Team (On-Site Customer) ◉ Project goals are a shared responsibility ◉ Face-to-face communication is most efficient ◉ Development is an ongoing conversation across the whole team
  • 17. Planning Game (Release & Iteration Planning) ◉ Facilitates incremental project planning as more and better information learned ◉ Releases are typically from 1 to 6 months ◉ Iteration planning sets short-term time-box (typically 1 week to 1 month)
  • 18. Small Releases ◉ Releases small as possible while still delivering enough value to be worthwhile ◉ Release early to begin providing business value early (maximize ROI over time) ◉ Release early to obtain feedback and facilitate steering ◉ Small releases minimize early commitment, leaving open options longer
  • 19. Acceptance Testing ◉ Acceptance tests prove the system implements the desired features correctly ◉ Ideally acceptance tests written along with stories and provided prior to implementation ◉ Acceptance tests provide non-ambiguous specifications of functional requirements
  • 20. Unit Testing ◉ Developer writes unit tests ◉ Unit Tests must be automated ◉ All unit tests executed very frequently ◉ Code can not be checked-in until all unit tests pass ◉ Unit tests provide safety net for refactoring
  • 21. Test-Driven Development ◉ Likely the most innovative XP practice ◉ Developer writes a unit test prior to writing code ◉ Developer writes just enough code to make the unit test pass ◉ Personal TDD Story: CenseoHealth
  • 22. Simple Design ◉ Design in XP is not static – is incremental and responds to learning ◉ “Do the simplest thing that can possibly work” ◉ No speculative development (YAGNI)
  • 23. Pair Programming ◉ All production code written in pairs and pairs switch frequently ◉ Programming is collaborative and not one-sided ◉ Allows for continuous code review ◉ Helps limit “Hit by a Bus” Syndrome
  • 24. Refactoring ◉ Allows design to incrementally evolve ◉ Supports the “Simple Design” Practice ◉ Refactoring drives code towards higher-level quality
  • 25. Continuous Integration ◉ Avoidance of “big bang” integrations ◉ Occurs several times a day ◉ Forces bug fixing to occur immediately
  • 26. Collective Ownership ◉ Any Developer can make changes to any part of the code as needed for their tasks ◉ All Developers responsible for integrity of the code base
  • 27. Metaphor ◉ Effective communication requires the team to have a common mental model of the system ◉ Effective communication requires the team to have a common language to talk about the system (Domain-Driven Design)
  • 28. Sustainable Pace (40-Hour Week) ◉ Fatigue and stress reduces productivity ◉ Consideration of the human (humane) side ◉ Team agrees on expectations and enforces them
  • 29. XP Roles Not an exhaustive list but a lot more defined roles as compared to Agile SCRUM: ◉ Testers ◉ Interaction Designers (UX) ◉ Architects ◉ Project Managers ◉ Product Managers ◉ Executives ◉ Technical Writers ◉ Users ◉ Programmers ◉ Human Resources*
  • 31. Why this flavor of Agile (Revisited)? Martin Fowler – “Flaccid” SCRUM: ◉ Cermonies and “Technical” Practices The “Human” Side: ◉ 40-hour work week (Sustainable Pace) ◉ Respect and “Constructive” Feedback ◉ Human Resources defined as a role
  • 32. XP Adoption Challenges? ◉ Resistance to “change” ◉ Unwillingness to “share” knowledge ◉ Teams within the organization don’t play nice with each other ◉ Negative view of Pair Programming ◉ Resistance to working in open rooms ◉ Legacy applications ◉ Organization and XP values are not aligned*
  • 33. Overcoming Adoption Challenges? ◉ Find some un-used space in the office and encourage people to work together occasionally ◉ Encourage pair programming on certain tasks ◉ Start enforcing coding standards ◉ Choose one area of the code base to start unit testing ◉ Setup automated testing and continuous integration ◉ Introduce planning and iteration cycles
  • 34. What Companies are “Extreme”? ◉ ThoughtWorks – Martin Fowler (Chief Scientist) ◉ Menlo Innovations – Rich Sheridan (Joy Inc.) ◉ 8th Light – Uncle Bob ◉ Pivotal Labs (Went “extreme” over 2 decades ago)
  • 35. Resources? ◉ Thoughtworks.com ◉ 8thlight.com ◉ Martinfowler.com ◉ Objectmentor.com ◉ C2.com ◉ Blog.greensharesthoughts.com (Shameless plug) ◉ Joy, Inc – Rich Sheridan ◉ Extreme Programming Explained – Kent Beck
  • 36. Any questions ? You can find me at ◉ michael@greensharesthoughts.com ◉ Twitter @mikedeongreen Thanks!
  • 37. Credits Special thanks to all the people who made and released these awesome resources for free: ◉ Presentation template by SlidesCarnival ◉ Photographs by Unsplash ◉ Agile Logic, Inc