SlideShare a Scribd company logo
1 of 30
Download to read offline
Introduction into Extreme
      Programming
       Audrys Kažukauskas
       audrys@kayak.com
What is XP?

• Agile   software development methodology

• Cares   about customers, managers and developers
Consider XP if
•   Code is a mess, many bugs, integration problems

•   Releases cause lots of stress

•   Difficult to release more frequently

•   Difficult to add new functionality

•   Testing takes too long
or... if you use Scrum :)
Comparing XP and Scrum
                                                                    XP                             Scrum
                Attributes
                                                        AS           PS           NS        AS       PS        NS

            Software Requirements                      60%          40%           0%        60%      20%       20%

           Construction of Software                    75%          25%           0%        0%       0%       100%

                Software Testing                      100%           0%           0%        0%       0%       100%

      Software Engineering Management                  80%           0%           20%       80%      20%       0%

Agile Principles - Proposed Practices relation         75%           8%           17%       50%      17%       33%

J.M. Fernandes and M. Almeida, "Classification and Comparison of Agile Methods", ;in Proc.    AS - Adequately Satisfied
QUATIC, 2010, pp.391-396.                                                                    PS - Partially Satisfied
                                                                                             NS - Not Satisfied
What is special about XP?


•   XP practices

•   Emphasis on simplicity, quality and testing

•   Can keep cost of change low
Cost of change

                              Traditional




Cost of change                              XP




                                        sweet promise :)


                       Time
XP practices
                             Whole
                             Team




          Continuous
          Integration                        Energized work
                            Test Driven
                           Development
Stories                                                         Sit Together
                 Pair
             Programming                  Refactoring

                             Simple
                             Design
                                                  Informative
          Slack
                                                  Workspace




                  Weekly                    Quarterly
                   Cycle                     Cycle
Some XP practices aren’t very
         special
Some general agile stuff

•   practice Stories

•   practice Weekly Cycle

•   practice Quarterly Cycle

•   practice Informative Workspace
Whole Team

•   Cross-functional team

•   We belong

•   We are in this together

•   We support each others’ work, growth, and learning
Sit Together

•   Put team in one open room

•   Communication!
Show me the money!
Simple Design

•   Do the Simplest Thing that Could Possibly Work

•   You Aren’t Going to Need It (YAGNI)

•   Simplicity according to Kent Beck:
      •   Runs all the tests
      •   Reveals all the intention
      •   No duplication
      •   Fewest number of classes or methods
Test Driven Development

• Tests   as specification rather than verification

• Test   before code or test after code?

• Red, green, refactor
Hierarchy of tests

Slower                           Fewer
               Acceptance
                  tests

Faster       Integration tests   More

                Unit tests
Refactoring

• Refactoring is a disciplined technique for restructuring
 an existing body of code, altering its internal structure
 without changing its external behavior {Martin Fowler}

• Keeps    codebase in optimal state

• Removes     technical debt

• Hardly   possible without automated tests
Continuous Integration

• Integrate   changes every couple of hours

• Fast    feedback: 10-minute build!

• Split   big product into multiple builds by component

• Parallel   builds and more hardware to reduce build
 time
10 min.
10 min.                                            10 min.




                                         10 min.             10 min.
          10 min.




           10-minute build!

               10 min.                10 min.
                                                             10 min.




                            10 min.
Pair Programming

• Better   code, less bugs, know-how sharing

• Driving   and navigating

• Avoid    teacher/student situation

• Personal   hygiene!
Energized Work

•   Maintain productivity for an indefinite interval of time

•   Limited working hours
Slack
•   [Dictionary definition: lacking in activity; not busy: a slack
    season for the travel business.]

• Deliver    what you promise!

• Include minor tasks into iteration, which can be
    dropped out

• Include    refactorings, researches or HackWeeks
Key practices of XP
                               Whole
                               Team




            Continuous
            Integration                      Energized work
                              Test Driven
                             Development
Stories                                                        Sit Together
                   Pair
               Programming              Refactoring

                               Simple
                               Design
            Slack                                Informative
                                                 Workspace




                    Weekly                  Quarterly
                     Cycle                   Cycle
Keep cost of change low

                         Traditional




Cost of change                         XP




                                  enabled by TDD, CI and
                                        Refactoring



                  Time
But I don’t hear much about XP
            recently...
What’s happened

•   Agile is mainstream, hence abused

•   Agile = Scrum problem

•   XP is often combined with Scrum, but not mentioned
    explicitly

•   Nevertheless, XP is alive and kicking! :)
Starting from scratch?


• Start   with XP. It will take you further

• You    don’t have to use all XP practices

• If   you start with Scrum, borrow technical XP practices
Shape it your way!

• Alwaysremember - Agile is about people over
 processes

• None   of the processes is a silver bullet

• Combine  the best of XP, Scrum, Lean - whatever
 works for you and your team
Further readings
•   Kent Beck, Cynthia Andres. Extreme Programming Explained:
    Embrace Change, Addison-Wesley, 2nd edition.

•   Kent Beck, Martin Fowler. Planning Extreme Programming,
    Addison-Wesley

•   James Shore, Shane Warden. The Art of Agile Development,
    O’Reilly (some chapters available online jamesshore.com/Agile-
    Book/)

•   Martin Fowler’s website has lots of goodies martinfowler.com
Discussion time :)

   Audrys Kažukauskas
    audrys@kayak.com

More Related Content

What's hot

Extreme programming
Extreme programmingExtreme programming
Extreme programming
aaina_katyal
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Mr SMAK
 
optimizing code in compilers using parallel genetic algorithm
optimizing code in compilers using parallel genetic algorithm optimizing code in compilers using parallel genetic algorithm
optimizing code in compilers using parallel genetic algorithm
Fatemeh Karimi
 
Extreme & pair programming Slides ppt
Extreme & pair programming Slides pptExtreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
Mr SMAK
 

What's hot (20)

extreme programming
extreme programmingextreme programming
extreme programming
 
Going extreme-with-extreme-programming
Going extreme-with-extreme-programmingGoing extreme-with-extreme-programming
Going extreme-with-extreme-programming
 
Extreme Programming ppt
Extreme Programming pptExtreme Programming ppt
Extreme Programming ppt
 
Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for Dummies
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XP
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme Programming
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
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 !
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)
 
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
 
optimizing code in compilers using parallel genetic algorithm
optimizing code in compilers using parallel genetic algorithm optimizing code in compilers using parallel genetic algorithm
optimizing code in compilers using parallel genetic algorithm
 
The Extreme Programming (XP) Model
The Extreme Programming (XP) ModelThe Extreme Programming (XP) Model
The Extreme Programming (XP) Model
 
Extreme & pair programming Slides ppt
Extreme & pair programming Slides pptExtreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
 

Similar to Audrys Kažukauskas - Introduction into Extreme Programming

Leveraging HP Performance Center
Leveraging HP Performance CenterLeveraging HP Performance Center
Leveraging HP Performance Center
Martin Spier
 
Pilot essentials webinar
Pilot essentials webinarPilot essentials webinar
Pilot essentials webinar
Maarga Systems
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practices
Bill Buchan
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALM
Debora Di Piano
 

Similar to Audrys Kažukauskas - Introduction into Extreme Programming (20)

プレゼンビフォアアフタ
プレゼンビフォアアフタプレゼンビフォアアフタ
プレゼンビフォアアフタ
 
Intro Of Agile
Intro Of AgileIntro Of Agile
Intro Of Agile
 
Creating value using Agile Methods- Nanda Lankalapalli
Creating value using Agile Methods- Nanda LankalapalliCreating value using Agile Methods- Nanda Lankalapalli
Creating value using Agile Methods- Nanda Lankalapalli
 
Agile
AgileAgile
Agile
 
Leveraging HP Performance Center
Leveraging HP Performance CenterLeveraging HP Performance Center
Leveraging HP Performance Center
 
Becoming Agile - Challenge the Traditional Thinking
Becoming Agile -  Challenge the Traditional ThinkingBecoming Agile -  Challenge the Traditional Thinking
Becoming Agile - Challenge the Traditional Thinking
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
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
 
Pilot essentials webinar
Pilot essentials webinarPilot essentials webinar
Pilot essentials webinar
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai Culture
 
Extreme delivery - Lean Agile Scotland 2019 (Abridged)
Extreme delivery - Lean Agile Scotland 2019 (Abridged)Extreme delivery - Lean Agile Scotland 2019 (Abridged)
Extreme delivery - Lean Agile Scotland 2019 (Abridged)
 
Scrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful deliveryScrum plus – why scrum is not enough for successful delivery
Scrum plus – why scrum is not enough for successful delivery
 
Useful automation
Useful automationUseful automation
Useful automation
 
It's XP Stupid (2019)
It's XP Stupid (2019)It's XP Stupid (2019)
It's XP Stupid (2019)
 
Dealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World ExperienceDealing With Legacy: The Real-World Experience
Dealing With Legacy: The Real-World Experience
 
Agile
AgileAgile
Agile
 
The View - Lotusscript coding best practices
The View - Lotusscript coding best practicesThe View - Lotusscript coding best practices
The View - Lotusscript coding best practices
 
What Is XP
What Is XPWhat Is XP
What Is XP
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALM
 
Extreme Programming (XP): Revisted
Extreme Programming (XP): RevistedExtreme Programming (XP): Revisted
Extreme Programming (XP): Revisted
 

More from Agile Lietuva

Agile Pusryčiai 2023 - „Kaip užsitikrinti projekto sėkmę dar iki projekto pra...
Agile Pusryčiai 2023 - „Kaip užsitikrinti projekto sėkmę dar iki projekto pra...Agile Pusryčiai 2023 - „Kaip užsitikrinti projekto sėkmę dar iki projekto pra...
Agile Pusryčiai 2023 - „Kaip užsitikrinti projekto sėkmę dar iki projekto pra...
Agile Lietuva
 
Agile Pusryčiai 2023 - „Viešasis sektorius – neatskleistas inovacijų paklauso...
Agile Pusryčiai 2023 - „Viešasis sektorius – neatskleistas inovacijų paklauso...Agile Pusryčiai 2023 - „Viešasis sektorius – neatskleistas inovacijų paklauso...
Agile Pusryčiai 2023 - „Viešasis sektorius – neatskleistas inovacijų paklauso...
Agile Lietuva
 

More from Agile Lietuva (20)

Agile Pusryčiai 2023 - „Skaitmeninė transformacija viešajame sektoriuje: nuo ...
Agile Pusryčiai 2023 - „Skaitmeninė transformacija viešajame sektoriuje: nuo ...Agile Pusryčiai 2023 - „Skaitmeninė transformacija viešajame sektoriuje: nuo ...
Agile Pusryčiai 2023 - „Skaitmeninė transformacija viešajame sektoriuje: nuo ...
 
Agile Pusryčiai 2023 - „Kaip užsitikrinti projekto sėkmę dar iki projekto pra...
Agile Pusryčiai 2023 - „Kaip užsitikrinti projekto sėkmę dar iki projekto pra...Agile Pusryčiai 2023 - „Kaip užsitikrinti projekto sėkmę dar iki projekto pra...
Agile Pusryčiai 2023 - „Kaip užsitikrinti projekto sėkmę dar iki projekto pra...
 
Agile pusryčiai 2023 - „Pirštas ant projekto pulso: CPO LT Agile patirtis ir ...
Agile pusryčiai 2023 - „Pirštas ant projekto pulso: CPO LT Agile patirtis ir ...Agile pusryčiai 2023 - „Pirštas ant projekto pulso: CPO LT Agile patirtis ir ...
Agile pusryčiai 2023 - „Pirštas ant projekto pulso: CPO LT Agile patirtis ir ...
 
Agile Pusryčiai 2023 - „Viešasis sektorius – neatskleistas inovacijų paklauso...
Agile Pusryčiai 2023 - „Viešasis sektorius – neatskleistas inovacijų paklauso...Agile Pusryčiai 2023 - „Viešasis sektorius – neatskleistas inovacijų paklauso...
Agile Pusryčiai 2023 - „Viešasis sektorius – neatskleistas inovacijų paklauso...
 
M. Kaminskas ir A. K. Remeikienė. LEAN projektas: sėkmės istorijos, iššūkiai ...
M. Kaminskas ir A. K. Remeikienė. LEAN projektas: sėkmės istorijos, iššūkiai ...M. Kaminskas ir A. K. Remeikienė. LEAN projektas: sėkmės istorijos, iššūkiai ...
M. Kaminskas ir A. K. Remeikienė. LEAN projektas: sėkmės istorijos, iššūkiai ...
 
B. den Haak. How to make OKRs Lean Again
B. den Haak. How to make OKRs Lean AgainB. den Haak. How to make OKRs Lean Again
B. den Haak. How to make OKRs Lean Again
 
D. Aitcheson. How to make forecasts that are actually accurate.
D. Aitcheson. How to make forecasts that are actually accurate.D. Aitcheson. How to make forecasts that are actually accurate.
D. Aitcheson. How to make forecasts that are actually accurate.
 
Aleksandra Černiauskienė. Misija Bloomberg: Agile pagal amerikiečius
Aleksandra Černiauskienė. Misija Bloomberg: Agile pagal amerikiečiusAleksandra Černiauskienė. Misija Bloomberg: Agile pagal amerikiečius
Aleksandra Černiauskienė. Misija Bloomberg: Agile pagal amerikiečius
 
Maija Aniskovič. Agile įtaka komandos motyvacijai.
Maija Aniskovič. Agile  įtaka komandos motyvacijai.Maija Aniskovič. Agile  įtaka komandos motyvacijai.
Maija Aniskovič. Agile įtaka komandos motyvacijai.
 
dr. E. Janiūnienė. Asociacijos Agile Lietuva atlikto Agile tyrimo pristatymas
dr. E. Janiūnienė. Asociacijos Agile Lietuva atlikto Agile tyrimo pristatymasdr. E. Janiūnienė. Asociacijos Agile Lietuva atlikto Agile tyrimo pristatymas
dr. E. Janiūnienė. Asociacijos Agile Lietuva atlikto Agile tyrimo pristatymas
 
M. Aniskovič. Laužome stereotipus: Agile gali drąsiai taikyti visi
M. Aniskovič. Laužome stereotipus: Agile gali drąsiai taikyti visiM. Aniskovič. Laužome stereotipus: Agile gali drąsiai taikyti visi
M. Aniskovič. Laužome stereotipus: Agile gali drąsiai taikyti visi
 
R. Krukonis. Reikalingas greitas rezultatas – pakeiskime projekto darbų organ...
R. Krukonis. Reikalingas greitas rezultatas – pakeiskime projekto darbų organ...R. Krukonis. Reikalingas greitas rezultatas – pakeiskime projekto darbų organ...
R. Krukonis. Reikalingas greitas rezultatas – pakeiskime projekto darbų organ...
 
M. Jovaišas. Viešojo sektoriaus lankstumas įgyvendinant transformacijas
M. Jovaišas. Viešojo sektoriaus lankstumas įgyvendinant transformacijasM. Jovaišas. Viešojo sektoriaus lankstumas įgyvendinant transformacijas
M. Jovaišas. Viešojo sektoriaus lankstumas įgyvendinant transformacijas
 
A. Kovaliov. Kas nėra Agile jaunystėje, tas neturi širdies. Kas nėra Watefall...
A. Kovaliov. Kas nėra Agile jaunystėje, tas neturi širdies. Kas nėra Watefall...A. Kovaliov. Kas nėra Agile jaunystėje, tas neturi širdies. Kas nėra Watefall...
A. Kovaliov. Kas nėra Agile jaunystėje, tas neturi širdies. Kas nėra Watefall...
 
V. Vasiliauskas. Nestandartinis atvejis: nuo Kanban prie Scrum
V. Vasiliauskas. Nestandartinis atvejis: nuo Kanban prie ScrumV. Vasiliauskas. Nestandartinis atvejis: nuo Kanban prie Scrum
V. Vasiliauskas. Nestandartinis atvejis: nuo Kanban prie Scrum
 
Leonard Vorobej. Agile projektų valdymas pradedantiesiems
Leonard Vorobej. Agile projektų valdymas pradedantiesiemsLeonard Vorobej. Agile projektų valdymas pradedantiesiems
Leonard Vorobej. Agile projektų valdymas pradedantiesiems
 
Giedrė Žemulaitytė. Agile personalo skyriaus valdyme
Giedrė Žemulaitytė. Agile personalo skyriaus valdyme Giedrė Žemulaitytė. Agile personalo skyriaus valdyme
Giedrė Žemulaitytė. Agile personalo skyriaus valdyme
 
Gabija Fatėnaitė. Agile ir Scrum turinio kūrimo ir marketingo komandose
Gabija Fatėnaitė. Agile ir Scrum turinio kūrimo ir marketingo komandoseGabija Fatėnaitė. Agile ir Scrum turinio kūrimo ir marketingo komandose
Gabija Fatėnaitė. Agile ir Scrum turinio kūrimo ir marketingo komandose
 
Gediminas Milieška. Agile kelionės: nuo transformacijos iki planavimo dideliu...
Gediminas Milieška. Agile kelionės: nuo transformacijos iki planavimo dideliu...Gediminas Milieška. Agile kelionės: nuo transformacijos iki planavimo dideliu...
Gediminas Milieška. Agile kelionės: nuo transformacijos iki planavimo dideliu...
 
Denis Vanpoucke. Agile kelionės:nuo transformacijos iki planavimo dideliu mastu
Denis Vanpoucke. Agile kelionės:nuo transformacijos iki planavimo dideliu mastuDenis Vanpoucke. Agile kelionės:nuo transformacijos iki planavimo dideliu mastu
Denis Vanpoucke. Agile kelionės:nuo transformacijos iki planavimo dideliu mastu
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
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
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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...
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
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...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 

Audrys Kažukauskas - Introduction into Extreme Programming

  • 1. Introduction into Extreme Programming Audrys Kažukauskas audrys@kayak.com
  • 2. What is XP? • Agile software development methodology • Cares about customers, managers and developers
  • 3. Consider XP if • Code is a mess, many bugs, integration problems • Releases cause lots of stress • Difficult to release more frequently • Difficult to add new functionality • Testing takes too long
  • 4. or... if you use Scrum :)
  • 5. Comparing XP and Scrum XP Scrum Attributes AS PS NS AS PS NS Software Requirements 60% 40% 0% 60% 20% 20% Construction of Software 75% 25% 0% 0% 0% 100% Software Testing 100% 0% 0% 0% 0% 100% Software Engineering Management 80% 0% 20% 80% 20% 0% Agile Principles - Proposed Practices relation 75% 8% 17% 50% 17% 33% J.M. Fernandes and M. Almeida, "Classification and Comparison of Agile Methods", ;in Proc. AS - Adequately Satisfied QUATIC, 2010, pp.391-396. PS - Partially Satisfied NS - Not Satisfied
  • 6. What is special about XP? • XP practices • Emphasis on simplicity, quality and testing • Can keep cost of change low
  • 7. Cost of change Traditional Cost of change XP sweet promise :) Time
  • 8. XP practices Whole Team Continuous Integration Energized work Test Driven Development Stories Sit Together Pair Programming Refactoring Simple Design Informative Slack Workspace Weekly Quarterly Cycle Cycle
  • 9. Some XP practices aren’t very special
  • 10. Some general agile stuff • practice Stories • practice Weekly Cycle • practice Quarterly Cycle • practice Informative Workspace
  • 11. Whole Team • Cross-functional team • We belong • We are in this together • We support each others’ work, growth, and learning
  • 12. Sit Together • Put team in one open room • Communication!
  • 13. Show me the money!
  • 14. Simple Design • Do the Simplest Thing that Could Possibly Work • You Aren’t Going to Need It (YAGNI) • Simplicity according to Kent Beck: • Runs all the tests • Reveals all the intention • No duplication • Fewest number of classes or methods
  • 15. Test Driven Development • Tests as specification rather than verification • Test before code or test after code? • Red, green, refactor
  • 16. Hierarchy of tests Slower Fewer Acceptance tests Faster Integration tests More Unit tests
  • 17. Refactoring • Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior {Martin Fowler} • Keeps codebase in optimal state • Removes technical debt • Hardly possible without automated tests
  • 18. Continuous Integration • Integrate changes every couple of hours • Fast feedback: 10-minute build! • Split big product into multiple builds by component • Parallel builds and more hardware to reduce build time
  • 19. 10 min. 10 min. 10 min. 10 min. 10 min. 10 min. 10-minute build! 10 min. 10 min. 10 min. 10 min.
  • 20. Pair Programming • Better code, less bugs, know-how sharing • Driving and navigating • Avoid teacher/student situation • Personal hygiene!
  • 21. Energized Work • Maintain productivity for an indefinite interval of time • Limited working hours
  • 22. Slack • [Dictionary definition: lacking in activity; not busy: a slack season for the travel business.] • Deliver what you promise! • Include minor tasks into iteration, which can be dropped out • Include refactorings, researches or HackWeeks
  • 23. Key practices of XP Whole Team Continuous Integration Energized work Test Driven Development Stories Sit Together Pair Programming Refactoring Simple Design Slack Informative Workspace Weekly Quarterly Cycle Cycle
  • 24. Keep cost of change low Traditional Cost of change XP enabled by TDD, CI and Refactoring Time
  • 25. But I don’t hear much about XP recently...
  • 26. What’s happened • Agile is mainstream, hence abused • Agile = Scrum problem • XP is often combined with Scrum, but not mentioned explicitly • Nevertheless, XP is alive and kicking! :)
  • 27. Starting from scratch? • Start with XP. It will take you further • You don’t have to use all XP practices • If you start with Scrum, borrow technical XP practices
  • 28. Shape it your way! • Alwaysremember - Agile is about people over processes • None of the processes is a silver bullet • Combine the best of XP, Scrum, Lean - whatever works for you and your team
  • 29. Further readings • Kent Beck, Cynthia Andres. Extreme Programming Explained: Embrace Change, Addison-Wesley, 2nd edition. • Kent Beck, Martin Fowler. Planning Extreme Programming, Addison-Wesley • James Shore, Shane Warden. The Art of Agile Development, O’Reilly (some chapters available online jamesshore.com/Agile- Book/) • Martin Fowler’s website has lots of goodies martinfowler.com
  • 30. Discussion time :) Audrys Kažukauskas audrys@kayak.com