SlideShare a Scribd company logo
1 of 31
Fundamentals of XPFundamentals of XP
Himanshu Gupta
Sr. Software Consultant
Knoldus Software LLP
Himanshu Gupta
Sr. Software Consultant
Knoldus Software LLP
XP – eXtreme ProgrammingXP – eXtreme Programming
● Lightweight
● Efficient
● Low-risk
● Flexible
● Predictable
● Scientific
● Fun way of programming
● Lightweight
● Efficient
● Low-risk
● Flexible
● Predictable
● Scientific
● Fun way of programming
DifferenceDifference
● Short Cycles
● Incremental planning approach
● Able to create flexible development schedules
● Rely on
● Automated tests
● Oral Communication
● Evolutionary design process
● Close collaboration of programmers
● Short Cycles
● Incremental planning approach
● Able to create flexible development schedules
● Rely on
● Automated tests
● Oral Communication
● Evolutionary design process
● Close collaboration of programmers
Problems & SolutionsProblems & Solutions
Problems
● Schedule Slips
● Project Canceled
● System goes sour
● Defect rate
● Business misunderstood
● Business changes
● False feature rich
● Staff turnover
Problems
● Schedule Slips
● Project Canceled
● System goes sour
● Defect rate
● Business misunderstood
● Business changes
● False feature rich
● Staff turnover
Solutions
● Short cycles
● MBS (Most Business Sense)
● Automated Tests
● Acceptance Tests
● Oral communication
● Short cycles
● Prioritizing tasks
● Individual ownership
Solutions
● Short cycles
● MBS (Most Business Sense)
● Automated Tests
● Acceptance Tests
● Oral communication
● Short cycles
● Prioritizing tasks
● Individual ownership
Day-to-day programming proceeds from a task clearly
connected to a feature the customer wants, to tests, to
implementation, to design, and through to integration. A
little of each of the activities of software development are
packed into each episode.
Day-to-day programming proceeds from a task clearly
connected to a feature the customer wants, to tests, to
implementation, to design, and through to integration. A
little of each of the activities of software development are
packed into each episode.
An EpisodeAn Episode
Four VariablesFour Variables
● Cost
● Time
● Quality
● Scope
● Cost
● Time
● Quality
● Scope
Cost of ChangeCost of Change
The cost of change may not rise dramatically over time
src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
Learning to DriveLearning to Drive
"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."
"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."
Four ValuesFour Values
● Communication
● Simplicity
● Feedback
● Courage
● Communication
● Simplicity
● Feedback
● Courage
* A value, that lies below the surface of the other these four is Respect.* A value, that lies below the surface of the other these four is Respect.
Basic PrinciplesBasic Principles
● Rapid feedback
● Assume simplicity
● Incremental change
● Embracing change
● Quality work
● Rapid feedback
● Assume simplicity
● Incremental change
● Embracing change
● Quality work
Fundamental PrinciplesFundamental Principles
Basic PrinciplesBasic Principles
● Teach learning
● Small initial investment
● Play to win
● Concrete experiments
● Open, honest communication
● Work with people's instincts, not against them
● Accepted responsibility
● Local adaptation
● Travel light
● Honest measurement
● Teach learning
● Small initial investment
● Play to win
● Concrete experiments
● Open, honest communication
● Work with people's instincts, not against them
● Accepted responsibility
● Local adaptation
● Travel light
● Honest measurement
Central PrinciplesCentral Principles
Back to BasicsBack to Basics
● Coding
● Testing
● Listening
● Designing
● Coding
● Testing
● Listening
● Designing
We code because if we don't code, we haven't done anything. We test
because if we don't test, we don't know when we are done coding. We
listen because if we don't listen we don't know what to code or what to
test. And we design so we can keep coding and testing and listening
indefinitely.
A Quick OverviewA Quick Overview
● The Planning Game
● Small Releases
● Metaphor
● Simple Design
● Testing
● Refactoring
● Pair Programming
● Collective Ownership
● Continuous Integration
● 40 Hour Week
● On-site Customer
● Coding Standards
● The Planning Game
● Small Releases
● Metaphor
● Simple Design
● Testing
● Refactoring
● Pair Programming
● Collective Ownership
● Continuous Integration
● 40 Hour Week
● On-site Customer
● Coding Standards
Practices Support each otherPractices Support each other
How could this Work ?How could this Work ?
src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
Management StrategyManagement Strategy
● Metrics
● Coaching
● Tracking
● Intervention
● Metrics
● Coaching
● Tracking
● Intervention
Facilities StrategyFacilities Strategy
src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
Splitting Business and
Technical Responsibility
Splitting Business and
Technical Responsibility
The choice between selecting a Ferrari and a Minivan is made
on the basis of:
● Cost – Ferrari($200,000) & Minivan($40,000)
● Requirement -
● Should be able to carry five people.
● Should be able to run at 200km/h.
The choice between selecting a Ferrari and a Minivan is made
on the basis of:
● Cost – Ferrari($200,000) & Minivan($40,000)
● Requirement -
● Should be able to carry five people.
● Should be able to run at 200km/h.
Planning StrategyPlanning Strategy
● The Goal
● The Strategy
● The Pieces
● The Players
● The Moves
● Iteration Planning
● Exploration Phase
● Commitment Phase
● Steering Phase
● Planning in a Week
● The Goal
● The Strategy
● The Pieces
● The Players
● The Moves
● Iteration Planning
● Exploration Phase
● Commitment Phase
● Steering Phase
● Planning in a Week
Development StrategyDevelopment Strategy
● Continuous Integration
Learn/Test/Code/Release
● Collective Ownership
Removes Complex Code from Project
● Pair Programming
● Continuous Integration
Learn/Test/Code/Release
● Collective Ownership
Removes Complex Code from Project
● Pair Programming
src: https://www.google.co.in/imghp?hl=en&tab=wi&ei=C2aDVvfcLYWgugTKs6_4Dg&ved=0EKouCBQoAQsrc: https://www.google.co.in/imghp?hl=en&tab=wi&ei=C2aDVvfcLYWgugTKs6_4Dg&ved=0EKouCBQoAQ
Design StrategyDesign Strategy
We should design for today's problems today, and tomorrow's
problems tomorrow
We should design for today's problems today, and tomorrow's
problems tomorrow
src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
Testing StrategyTesting Strategy
An outline that describes the testing approach of the Software
Development Cycle
- Wikipedia
An outline that describes the testing approach of the Software
Development Cycle
- Wikipedia
Adopting XPAdopting XP
How to adopt XP ?
1. Pick your worst problem.
2. Solve it the XP way.
3. When it's no longer your worst problem, repeat.
How to adopt XP ?
1. Pick your worst problem.
2. Solve it the XP way.
3. When it's no longer your worst problem, repeat.
Retrofitting XPRetrofitting XP
● Start with Testing
● Change Design
● Do Planning on regular basis
● Include everyone in Management
● Don't leave Development
● Start with Testing
● Change Design
● Do Planning on regular basis
● Include everyone in Management
● Don't leave Development
Lifecycle of an Ideal XP
Project
Lifecycle of an Ideal XP
Project
● Exploration
● Planning
● Iterations to First Release
● Productionizing
● Maintenance
● Death
● Exploration
● Planning
● Iterations to First Release
● Productionizing
● Maintenance
● Death
Roles for PeopleRoles for People
● Programmer
● Customer
● Tester
● Tracker
● Coach
● Consultant
● Big Boss
● Programmer
● Customer
● Tester
● Tracker
● Coach
● Consultant
● Big Boss
20-80 Rule20-80 Rule
80% of the benefit comes from 20% of the work.
XP makes use of this rule itself, by putting the most
valuable 20% of functionality into production, do
the most valuable 20% of the design
80% of the benefit comes from 20% of the work.
XP makes use of this rule itself, by putting the most
valuable 20% of functionality into production, do
the most valuable 20% of the design
What Makes XP Hard ?What Makes XP Hard ?
By adopting XP as our development process, we are accepting
responsibility for being aware and modifying it when there is
a problem.
By adopting XP as our development process, we are accepting
responsibility for being aware and modifying it when there is
a problem.
When You Shouldn't Try XP ?When You Shouldn't Try XP ?
● Complete Analysis of Design
● Too much Documentation
● Long Working Hours
● Large Team
● Expensive Technology
● Long gaps in Feedback
● Complete Analysis of Design
● Too much Documentation
● Long Working Hours
● Large Team
● Expensive Technology
● Long gaps in Feedback
Questions & Option[A]Questions & Option[A]
Thank youThank you
ReferencesReferences
● Extreme Programming Explained, Kent Beck
● http://www.extremeprogramming.org/
● Extreme Programming Explained, Kent Beck
● http://www.extremeprogramming.org/

More Related Content

What's hot

Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-model
Ali MasudianPour
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Mr SMAK
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
aaina_katyal
 
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)

Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-model
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
XP Explained
XP ExplainedXP Explained
XP Explained
 
XP In 10 slides
XP In 10 slidesXP In 10 slides
XP In 10 slides
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme Programming
 
Introduction to Extreme Programming
Introduction to Extreme ProgrammingIntroduction to Extreme Programming
Introduction to Extreme Programming
 
Audrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme ProgrammingAudrys Kažukauskas - Introduction into Extreme Programming
Audrys Kažukauskas - Introduction into Extreme Programming
 
Extreme Programming (XP) for Dummies
Extreme Programming (XP) for DummiesExtreme Programming (XP) for Dummies
Extreme Programming (XP) for Dummies
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XP
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)
 
Extreme Programming ppt
Extreme Programming pptExtreme Programming ppt
Extreme Programming ppt
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
extreme programming
extreme programmingextreme programming
extreme programming
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projects
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Scrum Plus Extreme Programming (XP) for Hyper Productivity
Scrum Plus Extreme Programming (XP) for Hyper ProductivityScrum Plus Extreme Programming (XP) for Hyper Productivity
Scrum Plus Extreme Programming (XP) for Hyper Productivity
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Extreme & pair programming Slides ppt
Extreme & pair programming Slides pptExtreme & pair programming Slides ppt
Extreme & pair programming Slides ppt
 

Similar to Extreme Programming

Similar to Extreme Programming (20)

Continuous Infrastructure First
Continuous Infrastructure FirstContinuous Infrastructure First
Continuous Infrastructure First
 
Devops is not about Tooling
Devops is not about ToolingDevops is not about Tooling
Devops is not about Tooling
 
Continous Delivery of your Infrastructure
Continous Delivery of your InfrastructureContinous Delivery of your Infrastructure
Continous Delivery of your Infrastructure
 
Pair Programming, TDD and other impractical things
Pair Programming, TDD and other impractical thingsPair Programming, TDD and other impractical things
Pair Programming, TDD and other impractical things
 
Devops, The future is here, it's just not evenly distributed
Devops, The future is here, it's just not evenly distributedDevops, The future is here, it's just not evenly distributed
Devops, The future is here, it's just not evenly distributed
 
From devoops to devops
From devoops to devopsFrom devoops to devops
From devoops to devops
 
Getting agile
Getting agileGetting agile
Getting agile
 
Devops its not about the tooling
Devops its not about the toolingDevops its not about the tooling
Devops its not about the tooling
 
Development Doesn't Stop at the Last Commit
Development Doesn't Stop at the Last CommitDevelopment Doesn't Stop at the Last Commit
Development Doesn't Stop at the Last Commit
 
Its not about the tooling
Its not about the toolingIts not about the tooling
Its not about the tooling
 
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org - Dev...
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org -  Dev...Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org -  Dev...
Real-Time Metrics and Distributed Monitoring - Jeff Pierce, Change.org - Dev...
 
From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove From Config Management Sucks to #cfgmgmtlove
From Config Management Sucks to #cfgmgmtlove
 
Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.Continuous Delivery of (y)our infrastructure.
Continuous Delivery of (y)our infrastructure.
 
The Agile PMP - Pillar Technology
The Agile PMP - Pillar TechnologyThe Agile PMP - Pillar Technology
The Agile PMP - Pillar Technology
 
PGConf.ASIA 2019 Bali - Patroni on GitLab.com - Jose Cores Finnoto
PGConf.ASIA 2019 Bali - Patroni on GitLab.com - Jose Cores FinnotoPGConf.ASIA 2019 Bali - Patroni on GitLab.com - Jose Cores Finnoto
PGConf.ASIA 2019 Bali - Patroni on GitLab.com - Jose Cores Finnoto
 
Agile intro module 1
Agile intro   module 1Agile intro   module 1
Agile intro module 1
 
Let's bring the teams back together
Let's bring the teams back togetherLet's bring the teams back together
Let's bring the teams back together
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as Code
 
Agile intro module 1
Agile intro   module 1Agile intro   module 1
Agile intro module 1
 
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
 

More from Knoldus Inc.

More from Knoldus Inc. (20)

Supply chain security with Kubeclarity.pptx
Supply chain security with Kubeclarity.pptxSupply chain security with Kubeclarity.pptx
Supply chain security with Kubeclarity.pptx
 
Mastering Web Scraping with JSoup Unlocking the Secrets of HTML Parsing
Mastering Web Scraping with JSoup Unlocking the Secrets of HTML ParsingMastering Web Scraping with JSoup Unlocking the Secrets of HTML Parsing
Mastering Web Scraping with JSoup Unlocking the Secrets of HTML Parsing
 
Akka gRPC Essentials A Hands-On Introduction
Akka gRPC Essentials A Hands-On IntroductionAkka gRPC Essentials A Hands-On Introduction
Akka gRPC Essentials A Hands-On Introduction
 
Entity Core with Core Microservices.pptx
Entity Core with Core Microservices.pptxEntity Core with Core Microservices.pptx
Entity Core with Core Microservices.pptx
 
Introduction to Redis and its features.pptx
Introduction to Redis and its features.pptxIntroduction to Redis and its features.pptx
Introduction to Redis and its features.pptx
 
GraphQL with .NET Core Microservices.pdf
GraphQL with .NET Core Microservices.pdfGraphQL with .NET Core Microservices.pdf
GraphQL with .NET Core Microservices.pdf
 
NuGet Packages Presentation (DoT NeT).pptx
NuGet Packages Presentation (DoT NeT).pptxNuGet Packages Presentation (DoT NeT).pptx
NuGet Packages Presentation (DoT NeT).pptx
 
Data Quality in Test Automation Navigating the Path to Reliable Testing
Data Quality in Test Automation Navigating the Path to Reliable TestingData Quality in Test Automation Navigating the Path to Reliable Testing
Data Quality in Test Automation Navigating the Path to Reliable Testing
 
K8sGPTThe AI​ way to diagnose Kubernetes
K8sGPTThe AI​ way to diagnose KubernetesK8sGPTThe AI​ way to diagnose Kubernetes
K8sGPTThe AI​ way to diagnose Kubernetes
 
Introduction to Circle Ci Presentation.pptx
Introduction to Circle Ci Presentation.pptxIntroduction to Circle Ci Presentation.pptx
Introduction to Circle Ci Presentation.pptx
 
Robusta -Tool Presentation (DevOps).pptx
Robusta -Tool Presentation (DevOps).pptxRobusta -Tool Presentation (DevOps).pptx
Robusta -Tool Presentation (DevOps).pptx
 
Optimizing Kubernetes using GOLDILOCKS.pptx
Optimizing Kubernetes using GOLDILOCKS.pptxOptimizing Kubernetes using GOLDILOCKS.pptx
Optimizing Kubernetes using GOLDILOCKS.pptx
 
Azure Function App Exception Handling.pptx
Azure Function App Exception Handling.pptxAzure Function App Exception Handling.pptx
Azure Function App Exception Handling.pptx
 
CQRS Design Pattern Presentation (Java).pptx
CQRS Design Pattern Presentation (Java).pptxCQRS Design Pattern Presentation (Java).pptx
CQRS Design Pattern Presentation (Java).pptx
 
ETL Observability: Azure to Snowflake Presentation
ETL Observability: Azure to Snowflake PresentationETL Observability: Azure to Snowflake Presentation
ETL Observability: Azure to Snowflake Presentation
 
Scripting with K6 - Beyond the Basics Presentation
Scripting with K6 - Beyond the Basics PresentationScripting with K6 - Beyond the Basics Presentation
Scripting with K6 - Beyond the Basics Presentation
 
Getting started with dotnet core Web APIs
Getting started with dotnet core Web APIsGetting started with dotnet core Web APIs
Getting started with dotnet core Web APIs
 
Introduction To Rust part II Presentation
Introduction To Rust part II PresentationIntroduction To Rust part II Presentation
Introduction To Rust part II Presentation
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Configuring Workflows & Validators in JIRA
Configuring Workflows & Validators in JIRAConfiguring Workflows & Validators in JIRA
Configuring Workflows & Validators in JIRA
 

Recently uploaded

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
 
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
Victor Rentea
 
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
Victor Rentea
 

Recently uploaded (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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...
 
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...
 
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
 
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
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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
 
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
 
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
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
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
 
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...
 
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
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Extreme Programming

  • 1. Fundamentals of XPFundamentals of XP Himanshu Gupta Sr. Software Consultant Knoldus Software LLP Himanshu Gupta Sr. Software Consultant Knoldus Software LLP
  • 2. XP – eXtreme ProgrammingXP – eXtreme Programming ● Lightweight ● Efficient ● Low-risk ● Flexible ● Predictable ● Scientific ● Fun way of programming ● Lightweight ● Efficient ● Low-risk ● Flexible ● Predictable ● Scientific ● Fun way of programming
  • 3. DifferenceDifference ● Short Cycles ● Incremental planning approach ● Able to create flexible development schedules ● Rely on ● Automated tests ● Oral Communication ● Evolutionary design process ● Close collaboration of programmers ● Short Cycles ● Incremental planning approach ● Able to create flexible development schedules ● Rely on ● Automated tests ● Oral Communication ● Evolutionary design process ● Close collaboration of programmers
  • 4. Problems & SolutionsProblems & Solutions Problems ● Schedule Slips ● Project Canceled ● System goes sour ● Defect rate ● Business misunderstood ● Business changes ● False feature rich ● Staff turnover Problems ● Schedule Slips ● Project Canceled ● System goes sour ● Defect rate ● Business misunderstood ● Business changes ● False feature rich ● Staff turnover Solutions ● Short cycles ● MBS (Most Business Sense) ● Automated Tests ● Acceptance Tests ● Oral communication ● Short cycles ● Prioritizing tasks ● Individual ownership Solutions ● Short cycles ● MBS (Most Business Sense) ● Automated Tests ● Acceptance Tests ● Oral communication ● Short cycles ● Prioritizing tasks ● Individual ownership
  • 5. Day-to-day programming proceeds from a task clearly connected to a feature the customer wants, to tests, to implementation, to design, and through to integration. A little of each of the activities of software development are packed into each episode. Day-to-day programming proceeds from a task clearly connected to a feature the customer wants, to tests, to implementation, to design, and through to integration. A little of each of the activities of software development are packed into each episode. An EpisodeAn Episode
  • 6. Four VariablesFour Variables ● Cost ● Time ● Quality ● Scope ● Cost ● Time ● Quality ● Scope
  • 7. Cost of ChangeCost of Change The cost of change may not rise dramatically over time src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
  • 8. Learning to DriveLearning to Drive "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." "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."
  • 9. Four ValuesFour Values ● Communication ● Simplicity ● Feedback ● Courage ● Communication ● Simplicity ● Feedback ● Courage * A value, that lies below the surface of the other these four is Respect.* A value, that lies below the surface of the other these four is Respect.
  • 10. Basic PrinciplesBasic Principles ● Rapid feedback ● Assume simplicity ● Incremental change ● Embracing change ● Quality work ● Rapid feedback ● Assume simplicity ● Incremental change ● Embracing change ● Quality work Fundamental PrinciplesFundamental Principles
  • 11. Basic PrinciplesBasic Principles ● Teach learning ● Small initial investment ● Play to win ● Concrete experiments ● Open, honest communication ● Work with people's instincts, not against them ● Accepted responsibility ● Local adaptation ● Travel light ● Honest measurement ● Teach learning ● Small initial investment ● Play to win ● Concrete experiments ● Open, honest communication ● Work with people's instincts, not against them ● Accepted responsibility ● Local adaptation ● Travel light ● Honest measurement Central PrinciplesCentral Principles
  • 12. Back to BasicsBack to Basics ● Coding ● Testing ● Listening ● Designing ● Coding ● Testing ● Listening ● Designing We code because if we don't code, we haven't done anything. We test because if we don't test, we don't know when we are done coding. We listen because if we don't listen we don't know what to code or what to test. And we design so we can keep coding and testing and listening indefinitely.
  • 13. A Quick OverviewA Quick Overview ● The Planning Game ● Small Releases ● Metaphor ● Simple Design ● Testing ● Refactoring ● Pair Programming ● Collective Ownership ● Continuous Integration ● 40 Hour Week ● On-site Customer ● Coding Standards ● The Planning Game ● Small Releases ● Metaphor ● Simple Design ● Testing ● Refactoring ● Pair Programming ● Collective Ownership ● Continuous Integration ● 40 Hour Week ● On-site Customer ● Coding Standards
  • 14. Practices Support each otherPractices Support each other How could this Work ?How could this Work ? src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
  • 15. Management StrategyManagement Strategy ● Metrics ● Coaching ● Tracking ● Intervention ● Metrics ● Coaching ● Tracking ● Intervention
  • 16. Facilities StrategyFacilities Strategy src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
  • 17. Splitting Business and Technical Responsibility Splitting Business and Technical Responsibility The choice between selecting a Ferrari and a Minivan is made on the basis of: ● Cost – Ferrari($200,000) & Minivan($40,000) ● Requirement - ● Should be able to carry five people. ● Should be able to run at 200km/h. The choice between selecting a Ferrari and a Minivan is made on the basis of: ● Cost – Ferrari($200,000) & Minivan($40,000) ● Requirement - ● Should be able to carry five people. ● Should be able to run at 200km/h.
  • 18. Planning StrategyPlanning Strategy ● The Goal ● The Strategy ● The Pieces ● The Players ● The Moves ● Iteration Planning ● Exploration Phase ● Commitment Phase ● Steering Phase ● Planning in a Week ● The Goal ● The Strategy ● The Pieces ● The Players ● The Moves ● Iteration Planning ● Exploration Phase ● Commitment Phase ● Steering Phase ● Planning in a Week
  • 19. Development StrategyDevelopment Strategy ● Continuous Integration Learn/Test/Code/Release ● Collective Ownership Removes Complex Code from Project ● Pair Programming ● Continuous Integration Learn/Test/Code/Release ● Collective Ownership Removes Complex Code from Project ● Pair Programming src: https://www.google.co.in/imghp?hl=en&tab=wi&ei=C2aDVvfcLYWgugTKs6_4Dg&ved=0EKouCBQoAQsrc: https://www.google.co.in/imghp?hl=en&tab=wi&ei=C2aDVvfcLYWgugTKs6_4Dg&ved=0EKouCBQoAQ
  • 20. Design StrategyDesign Strategy We should design for today's problems today, and tomorrow's problems tomorrow We should design for today's problems today, and tomorrow's problems tomorrow src: Extreme Programming Explained by Kent Beck, First Editionsrc: Extreme Programming Explained by Kent Beck, First Edition
  • 21. Testing StrategyTesting Strategy An outline that describes the testing approach of the Software Development Cycle - Wikipedia An outline that describes the testing approach of the Software Development Cycle - Wikipedia
  • 22. Adopting XPAdopting XP How to adopt XP ? 1. Pick your worst problem. 2. Solve it the XP way. 3. When it's no longer your worst problem, repeat. How to adopt XP ? 1. Pick your worst problem. 2. Solve it the XP way. 3. When it's no longer your worst problem, repeat.
  • 23. Retrofitting XPRetrofitting XP ● Start with Testing ● Change Design ● Do Planning on regular basis ● Include everyone in Management ● Don't leave Development ● Start with Testing ● Change Design ● Do Planning on regular basis ● Include everyone in Management ● Don't leave Development
  • 24. Lifecycle of an Ideal XP Project Lifecycle of an Ideal XP Project ● Exploration ● Planning ● Iterations to First Release ● Productionizing ● Maintenance ● Death ● Exploration ● Planning ● Iterations to First Release ● Productionizing ● Maintenance ● Death
  • 25. Roles for PeopleRoles for People ● Programmer ● Customer ● Tester ● Tracker ● Coach ● Consultant ● Big Boss ● Programmer ● Customer ● Tester ● Tracker ● Coach ● Consultant ● Big Boss
  • 26. 20-80 Rule20-80 Rule 80% of the benefit comes from 20% of the work. XP makes use of this rule itself, by putting the most valuable 20% of functionality into production, do the most valuable 20% of the design 80% of the benefit comes from 20% of the work. XP makes use of this rule itself, by putting the most valuable 20% of functionality into production, do the most valuable 20% of the design
  • 27. What Makes XP Hard ?What Makes XP Hard ? By adopting XP as our development process, we are accepting responsibility for being aware and modifying it when there is a problem. By adopting XP as our development process, we are accepting responsibility for being aware and modifying it when there is a problem.
  • 28. When You Shouldn't Try XP ?When You Shouldn't Try XP ? ● Complete Analysis of Design ● Too much Documentation ● Long Working Hours ● Large Team ● Expensive Technology ● Long gaps in Feedback ● Complete Analysis of Design ● Too much Documentation ● Long Working Hours ● Large Team ● Expensive Technology ● Long gaps in Feedback
  • 31. ReferencesReferences ● Extreme Programming Explained, Kent Beck ● http://www.extremeprogramming.org/ ● Extreme Programming Explained, Kent Beck ● http://www.extremeprogramming.org/

Editor's Notes

  1. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  2. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  3. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  4. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  5. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  6. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  7. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  8. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  9. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  10. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  11. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  12. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  13. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  14. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  15. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  16. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  17. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  18. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  19. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  20. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  21. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  22. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  23. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  24. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  25. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  26. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  27. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  28. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application
  29. Why javascript, why we are bothering to do javascript. beacuse as you know its typical to do web development without javascript. ITs the only language, that's basically supported web browser. So at some point you need javascript code. ITs scripting language, not designed to scale large rich web application