SlideShare a Scribd company logo
EXTREME
PROGRAMMING (XP)
DAVID TZEMACH
WWW.DTVISIONTECH.COM
DEC 26 2015
EXTREME PROGRAMING AS AN AGILE METHODOLOGY
“WE ARE UNCOVERING BETTER WAYS OF DEVELOPING SOFTWARE BY DOING IT AND HELPING OTHERS DO IT.
THROUGH THIS WORK WE HAVE COME TO VALUE:
INDIVIDUALS AND INTERACTIONS OVER PROCESSES AND TOOLS
WORKING SOFTWARE OVER COMPREHENSIVE DOCUMENTATION
CUSTOMER COLLABORATION OVER CONTRACT NEGOTIATION
RESPONDING TO CHANGE OVER FOLLOWING A PLAN
THAT IS, WHILE THERE IS VALUE IN THE ITEMS ON THE RIGHT, WE VALUE THE ITEMS ON THE LEFT MORE.”
-KENT BECK-
The Manifesto for Agile Software Development
EXTREME PROGRAMMING(XP)
• XP WAS DEVELOPED BY “KENT BECK” AND INTRODUCED IN HIS FIRST BOOK
“EXTREME PROGRAMMING EXPLAINED: EMBRACE CHANGE (ADDISON-WESLEY,
1999)”.
• IT WAS ONE OF THE EARLIEST AGILE METHODOLOGIES AND THE FIRST ONE THAT
CHALLENGE THE TRADITIONAL WATERFALL MODEL.
• XP IS A DESIGNED TO SUPPORT A SMALL/MEDIUM SOFTWARE DEVELOPMENT
TEAMS.
• IT’S CALLED “EXTREME PROGRAMMING” BECAUSE IT TAKES 12 KNOWN PROVEN
SOFTWARE DEVELOPMENT PRINCIPLES/PRACTICES AND PUSH THEM TO EXTREME
LEVELS.
THE VALUES OF
EXTREME PROGRAMMING
SIMPLICITY
• THE TEAM MEMBERS WILL FOCUS ON THINGS THAT MATTERS AND DON’T WASTE TIME
ON THINGS THAT THEY DOESN'T ASK FOR.
• DO THE SIMPLEST THAT COULD POSSIBLY WORK.
• REMOVE ANY CODE THAT YOU WILL NOT USE.
"XP is making a bet. It is betting that it is better
to do a simple thing today and pay a little
more tomorrow to change it if it needs it,
than to do a more complicated thing
today that may never be used anyway."
-Kent Beck-
COMMUNICATION
• THERE SHOULD BE A GOOD COMMUNICATION BETWEEN THE TEAM AND THE CLIENT.
• THE ENTIRE TEAM MEMBERS SHOULD WORK TOGETHER TO COMPLETE EACH TASK.
• FACE TO FACE COMMUNICATION WILL REDUCE THE NEED OF DOCUMENTATION.
• THE PROJECT COACH SHOULD VALIDATE THAT THERE IS A GOOD COMMUNICATION
(DEVELOPERS->DEVELOPERS, DEVELOPERS->CLIENT ETC.)
COURAGE
• DEVELOPERS SHOULD HAVE THE COURAGE TO TAKE
FAST DECISIONS DUE TO THE COLLECTIVE OWNERSHIP.
• DEVELOPERS SHOULD HAVE THE COURAGE TO MAKE
REAL CHANGES IN THE SOFTWARE DESIGN AND
ARCHITECTURE WHEN NEEDED.
• DEVELOPERS SHOULD HAVE THE COURAGE TO TELL THE
TRUTH ABOUT THE EFFORT THEY NEED TO COMPLETE
TASKS (TIME ESTIMATIONS, IMPLEMENTATION EFFORT
ETC.).
FEEDBACK
• EXTREME PROGRAMMING EMBRACES FEEDBACK AS
A GREAT WAY TO EVALUATE THE CURRENT STATE
OF THE DEVELOPMENT PROCESS.
• FAST FEEDBACK WILL INCREASE THE EFFECTIVENESS
OF THE PROCESS.
• EACH RESOURCE THAT INVOLVED IN THE PROJECT
IS RELEVANT, EXAMPLES:
• DEVELOPERS – ESTIMATE THE USER STORIES AND RESPOND
WITH ESTIMATIONS.
• CUSTOMER – TEST THE SOFTWARE AND SEND FEEDBACKS
THAT WILL INCREASE THE QUALITY.
RESPECT
• RESPECT THE OTHER TEAM MEMBERS.
• RESPECT THE CUSTOMER.
• RESPECT THE PROJECT.
ACTIVITIES IN EXTREME
PROGRAMMING
CODING
• ALL DEVELOPERS SHOULD FOLLOW A PREDEFINED CODE STANDARDS.
• CONTINUOUS INTEGRATION THROUGHOUT THE ENTIRE PROCESS.
• THE CODE IS BASED ON THE CUSTOMER USER STORIES.
• THE CUSTOMER SHOULD BE AVAILABLE AT ALL TIME.
• FIRST CODE IS WRITTEN FOR UNIT TESTS.
• COLLECTIVE CODE OWNERSHIP.
• PAIR PROGRAMMING.
• EVERY PART OF THE CODE SHOULD BE TESTED WITH A DEDICATED UNIT TEST.
• YOU CANNOT SAY THAT YOUR CODE IS WORKING UNTIL YOU TEST IT.
• ALL TESTS SHOULD RUN ON EVERY NEW BUILD.
• TESTING IS MADE BY THE DEVELOPERS(UNIT) AND BY THE CUSTOMER (ATP FOR
FUNCTIONALITY).
TESTING
LISTENING
• DEVELOPERS SHOULD LISTEN TO THE CLIENT REQUIREMENTS ABOUT HOW THE
SYSTEM SHOULD DEVELOPED.
• DEVELOPERS SHOULD LISTEN TO EACH OTHER TO DEVELOP A BETTER AND
RESILIENCE SOFTWARE.
• DEVELOPERS SHOULD LISTEN TO THE CLIENT FEEDBACK ABOUT THE GENERATED
CODE.
DESIGNING
• A GOOD AND SIMPLE DESIGN WILL REDUCE THE COMPLEXITY OF THE SYSTEM.
• EVERY DEVELOPER CAN TAKE AN ACTIVE PART IN THE DESIGN PROCESS.
• THE DESIGN IS MADE AT THE START AND DURING THE PROCESS.
• REFACTORING IS A DECISIVE PART OF THE DESIGN PROCESS.
• ALTHOUGH XP EMBRACES FAST DEVELOPMENT THAT ADD BUSINESS VALUE, IT DOESN'T MEAN
THAT THE DESIGNING PROCESS IS EXCLUDED.
EXTREME PROGRAMMING
THE CORE PRACTICES
THE 12 KEY PRACTICES OF EXTREME PROGRAMMING
1. THE PLANNING GAME
2. SMALL RELEASES
3. SYSTEM METAPHOR
4. SIMPLE DESIGN
5. CONTINUOUS TESTING
6. REFACTORING
7. PAIR PROGRAMMING
8. CONTINUOUS INTEGRATION
9. COLLECTIVE OWNERSHIP
10. ON-SITE CUSTOMER
11. THE 40-HOUR WEEK
12. CODING STANDARDS
THE PLANNING GAME (1)
• THE COMPANY EVALUATES THE CLIENT REQUESTS AGAINST THE COST ESTIMATIONS AND
DEVELOPMENT TIME.
• THE PRIMARY GOAL IS TO PRODUCE THE MAXIMUM BUSINESS VALUE IN THE FASTEST WAY.
• THERE ARE THREE BASIC RULES TO FOLLOW ON THIS PHASE:
1. BUSINESS COMES UP WITH THE LIST OF REQUIREMENTS FROM THE CLIENT (USER STORIES).
2. ENGINEERING TEAM REVIEW THE “USER STORIES", AND THEN ANSWER THESE TWO QUESTIONS:
• WHAT IS THE TIME ESTIMATION AND EFFORT WILL THEY NEED TO PUT IN ORDER TO DELIVER
EACH USER STORY…?
• HOW MUCH EFFORT THE TEAM CAN PRODUCE PER ITERATION (HOW MANY USER STORIES
THEY CAN DELIVER PER ITERATION)…?
3. BUSINESS REVIEW THE ESTIMATIONS AND DECIDE WHAT ARE THE USER STORIES THAT WILL BE
DEVELOPED AND IN WHAT ORDER.
SMALL RELEASES (2)
• THE MAIN TARGET IS TO RELEASE A WORKING AND TESTED SOFTWARE EARLY AS POSSIBLE.
• THE FIRST RELEASE IS DEVELOPED WITH THE SMALLEST USEFUL SET OF FEATURES TO INCREASE
THE BUSINESS VALUE.
• SOFTWARE UPDATES SHOULD BE DEVELOPED OFTEN TO SUPPORT FAST RELEASES.
• THE CUSTOMER CAN USE THIS SOFTWARE IN IT’S OWN ENVIRONMENT THAT INVOLVE REAL
USERS(WHICH ALLOWING THE CUSTOMER TO EVALUATE THE SOFTWARE AND SEND HIS
FEEDBACKS).
• METAPHOR IN XP IS THE COMMON VISION OF THE TEAM MEMBERS ON HOW THE
PROGRAM SHOULD DEVELOP AND WORK.
• EACH PROJECT AS IT’S “METAPHOR”, IS JOB IS TO GUIDE THE PROJECT RESOURCES
ON HOW THE WHOLE SYSTEM WORKS (COMPONENTS, INTEGRATIONS,ETC).
• ANOTHER RESPONSIBILITY OF THE “METAPHOR”, IS TO DETERMINE A SET OF
KEYWORDS THAT DESCRIBES A COMMON TECHNICAL ENTITIES (COMMON TERMS,
CLASS NAMES ETC.).
SYSTEM METAPHOR (3)
• IN AGILE METHODOLOGY THE REQUIREMENTS
ARE FREQUENTLY CHANGED, BASED ON THIS
ASSUMPTION, YOU SHOULD ALWAYS USE THE
MOST SIMPLIFIED SOFTWARE DESIGNS THAT
ALLOWING YOU TO MAKE THE JOB DONE.
SIMPLE DESIGN(4)
CONTINUOUS TESTING (5)
• TESTING IS DONE THROUGHOUT THE ENTIRE PROCESS.
• ALL TESTS MUST RUN AND PASS WITH 100% BEFORE A NEW DEVELOPMENT.
• THERE ARE TWO TYPE OF TESTS THAT INVOLVE IN THIS PROCESS:
TEST DRIVEN DEVELOPMENT (TDD)
• PROGRAMS WRITE THE TESTS PRIOR TO THE APPLICATION CODE DEVELOPMENT.
• THE CODE IS PRODUCED WITH ALMOST 100% TEST COVERAGE.
• AUTOMATED TESTS THAT ARE WRITTEN BY THE DEVELOPMENT TEAM(PER FUNCTIONALITY)
ACCEPTANCE TESTS
• THIS TESTS IS THE “CONTRACT” BETWEEN THE CUSTOMER AND THE COMPANY
• THE CLIENT CAN VALIDATE THAT THE SOFTWARE IS DEVELOPED AS SPECIFIED.
• TESTS THAT ARE SPECIFIED BY THE CUSTOMER.
REFACTORING (6)
• TO ACHIEVE VALUE PER ITERATION, THE DEVELOPMENT TEAM MUST BUILD THE
SOFTWARE BASED ON SIMPLE AND EFFECTIVE DESIGN.
• REFACTORING IS A CONTINUES DESIGN IMPROVEMENT THAT DEVELOPERS CAN DO AT
ANY TIME.
• REFACTORING CANNOT BE MADE WITHOUT A CORRESPONDING TESTING TO ENSURE
THAT NOTHING WAS BROKEN.
• DURING THE REFACTORING PHASE, PROGRAMMERS CAN:
• EDIT THEIR CODE (EDIT CODE BUT, WITHOUT CHANGING THE FUNCTIONALITY).
• IMPROVE THE SOFTWARE DESIGN.
• REMOVE ANY CODE DUPLICATION.
PAIR PROGRAMMING (7)
• TWO PROGRAMMERS ARE WORKING ON THE SAME COMPUTER TO COMPLETE A
SINGLE TASK.
• PROGRAMMER NO’1 – RESPONSIBLE TO WRITE AND IMPLEMENT THE CODE.
• PROGRAMMER NO’2 – WATCH THE IMPLEMENTATION AND IDENTIFIES ANY
CODE ERRORS.
THE ASSUMPTIONS
• PROGRAMMERS WILL GAIN MORE CONFIDENCE IN THEIR CODE.
• DEVELOPERS WILL ENJOY WORKING TOGETHER.
• TASKS WILL BE RESOLVED FASTER.
• PRODUCE HIGHER QUALITY CODE.
CONTINUOUS INTEGRATION (8)
• IN XP DEVELOPERS MUST KEEP THE SYSTEM FULLY INTEGRATED AT ALL TIMES
• ALL UNIT TESTS MUST BE RUN AND PASS WITH 100%.
• NEW BUILDS ARE CREATED DAILY WITH THE FULL CODE(THE ENTIRE CODE THAT WAS
DEVELOPED BY THIS POINT).
• ANY DEVELOPMENT IS INTEGRATED TO A SINGLE LOCATION WHEN THE CODE IS
READY.
• ANY DEVELOPER MUST HAVE THE ABILITY TO WORK ON ANY PART OF THE CODE.
• NO SPECIFIC DEVELOPER THAT RESPONSIBLE FOR A SPECIFIC COMPONENT.
• CODE CAN BE CHANGED BY ANY DEVELOPER WITHOUT DELAY.
• A NEW CODE IS REVIEWED BY THE ENTIRE TEAM.
• INCREASE THE RESPONSIBILITY OF DEVELOPERS.
COLLECTIVE CODE OWNERSHIP (9)
• THE CUSTOMER SHOULD LEAD THE PROJECT (REQUIREMENTS, PRIORITIES AND TIMELINES).
• THE CUSTOMER SHOULD BE AVAILABLE AT ALL TIME (FACE TO FACE COMMUNICATION).
• DEVELOPERS WILL NOT USE ANY ASSUMPTIONS DURING THE DEVELOPMENT PROCESS.
• THE CUSTOMER IS ONE OF THE MOST IMPORTANT RESOURCES IN XP PROCESS.
• THE CUSTOMER SHOULD ANSWER ANY OPEN QUESTIONS.
• DEVELOPERS CAN ACCESS TO A REAL CLIENT ENVIRONMENT(WHERE THE SOFTWARE IS
IMPLEMENTED.).
ON-SITE CUSTOMER (10)
• THE TEAM WILL GO HOME ON TIME, THERE IS NO REASON TO DO OVERTIME HOURS.
• THE PROJECT SHOULDN’T INTERFERE WITH THE DEVELOPER’S PERSONAL LIFE.
• THE WORK WEEK SHOULD BE NO MORE THAN 40 HOURS.
• TIRED DEVELOPERS DO MORE CODING MISTAKES.
• IN MOST PROJECTS, THIS PRACTICE IS NOT RELEVANT, THE REAL WORLD IS DIFFERENT FROM THE
THEORETICAL ONE 
• CONSECUTIVE OVERTIME HOURS WILL INDICATE THAT THERE IS SOMETHING WRONG IN THE
PROCESS.
THE 40-HOUR WEEK (11)
• CODING STANDARDS WILL HELP TO DEVELOP A BETTER CODE.
• EVERY DEVELOPER SHOULD FOLLOW THE CODE STANDARDS.
• CODE REVIEW SHOULD BE USED AS A METHOD TO VALIDATE THAT THE EXPECTED
STANDARD IS ENFORCED.
• EXAMPLES FOR “CODE STANDARDS”:
• THE CODE MUST INCLUDE COMMENTS PER METHOD.
• CODING CONVENTIONS (FORMATTING, NAMING, LOG).
• DEVELOP BASED ON A SPECIFIC DESIGN PATTERN.
• THE CODE SHOULD BE EASY TO MAINTAIN.
CODING STANDARDS (12)
EXTREME PROGRAMING
PARTICIPANTS ROLES
CUSTOMER
• RESPONSIBLE TO SPECIFY AND TEST THE SOFTWARE FUNCTIONALITY.
• SPECIFY THE SOFTWARE REQUIREMENTS AND SPECIFICATIONS.
• DETERMINES THE DEVELOPMENT PRIORITIES.
• CREATE AND EXPLAINS THE USER STORIES.
COACH
• MONITOR THE ENTIRE PROCESS AND VALIDATE THAT THE PROJECT STAYS ON COURSE.
• GUIDES AND MENTORS THE TEAM MEMBERS.
• SHOULD LEAD BY EXAMPLE.
DEVELOPER
• MAINTAIN THE SOFTWARE THROUGH THE PROCESS AND AFTER IMPLEMENTATION.
• MAKE THE CODE IMPLEMENTATION( USER STORIES INTO WORKING CODE).
• ESTIMATES THE TIME AND EFFORT OF THE USER STORIES.
• TEST THE CODE (AUTOMATED UNIT TESTS).
DOOMSAYER
• RESPONSIBLE TO MAKE SURE THAT WHEN A CRISES OCCURS, EVERYONE WILL KNOW ABOUT IT.
• VALIDATE THAT EACH RESOURCES KNOWS THE RISK INVOLVED.
• RESPONSIBLE TO MAKE SURE THAT SMALL ISSUES REMAIN SMALL AND NOT GET OUT OF
PROPORTION
TRACKER
• VALIDATE THAT EACH DEVELOPER IS ON TRACK WITH HIS ASSIGNED TASKS.
• VALIDATE THAT EACH DEVELOPER IS SYNCHRONIZED AT ALL TIME.
• ARRANGE MEETINGS WITH THE CLIENT WHEN NECESSARY.
• VALIDATE THAT THE PROJECT IS GOING AS SCHEDULED.
TESTER
• REPORT FOR DEFECTS AND ANY OTHER ISSUES THAT MAY AFFECT THE USER EXPERIENCE.
• TEST THE SOFTWARE FUNCTIONALITY.
FOR ADDITIONAL KB’S PLEASE
VISIT MY TECHNICAL BLOG
WWW.DTVISIONTECH.COM

More Related Content

What's hot

Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overviewguestb4c770
 
Agile software development and extreme Programming
Agile software development and extreme Programming  Agile software development and extreme Programming
Agile software development and extreme Programming
Fatemeh Karimi
 
Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...
Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...
Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...
Red Gate Software
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
Bilal Shah
 
Scrum - Agile a brief history
Scrum - Agile a brief historyScrum - Agile a brief history
Scrum - Agile a brief history
Hannah A. Molette , PMP® CSM®
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
Amit Verma
 
Kanban presentation
Kanban presentationKanban presentation
Kanban presentation
Bijo Joseph
 
Agile methodologiesvswaterfall
Agile methodologiesvswaterfallAgile methodologiesvswaterfall
Agile methodologiesvswaterfall
Muthu Natarajan
 
Agile best practices
Agile best practicesAgile best practices
Agile best practices
Areeba jabeen
 
Agile Methodology(SCRUM)
Agile Methodology(SCRUM)Agile Methodology(SCRUM)
Agile Methodology(SCRUM)KhushSlideShare
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
Mohamed Abdelrahman
 
Agile Unified Process (AUP).pptx
Agile Unified Process (AUP).pptxAgile Unified Process (AUP).pptx
Agile Unified Process (AUP).pptx
Karim Monir
 
Lean Software Development
Lean Software Development Lean Software Development
Lean Software Development
Christopher Grant
 
XP Explained
XP ExplainedXP Explained
XP Explained
vineet
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
Omar Al-Sabek
 
Agile Scrum Training Process
Agile Scrum Training ProcessAgile Scrum Training Process
Agile Scrum Training Process
Clarion Marketing
 
Ken Schwaber
Ken SchwaberKen Schwaber
Ken Schwaber
Shiraz316
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
MuaazZubairi
 
Scrum - Agile Methodology
Scrum - Agile MethodologyScrum - Agile Methodology
Scrum - Agile Methodology
Niel Deckx
 
Agile Scrum
Agile ScrumAgile Scrum
Agile Scrum
Ram Srivastava
 

What's hot (20)

Agile Development Overview
Agile Development OverviewAgile Development Overview
Agile Development Overview
 
Agile software development and extreme Programming
Agile software development and extreme Programming  Agile software development and extreme Programming
Agile software development and extreme Programming
 
Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...
Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...
Everything You Need to Know About the 2019 DORA Accelerate State of DevOps Re...
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Scrum - Agile a brief history
Scrum - Agile a brief historyScrum - Agile a brief history
Scrum - Agile a brief history
 
Introduction agile scrum methodology
Introduction agile scrum methodologyIntroduction agile scrum methodology
Introduction agile scrum methodology
 
Kanban presentation
Kanban presentationKanban presentation
Kanban presentation
 
Agile methodologiesvswaterfall
Agile methodologiesvswaterfallAgile methodologiesvswaterfall
Agile methodologiesvswaterfall
 
Agile best practices
Agile best practicesAgile best practices
Agile best practices
 
Agile Methodology(SCRUM)
Agile Methodology(SCRUM)Agile Methodology(SCRUM)
Agile Methodology(SCRUM)
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Agile Unified Process (AUP).pptx
Agile Unified Process (AUP).pptxAgile Unified Process (AUP).pptx
Agile Unified Process (AUP).pptx
 
Lean Software Development
Lean Software Development Lean Software Development
Lean Software Development
 
XP Explained
XP ExplainedXP Explained
XP Explained
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Agile Scrum Training Process
Agile Scrum Training ProcessAgile Scrum Training Process
Agile Scrum Training Process
 
Ken Schwaber
Ken SchwaberKen Schwaber
Ken Schwaber
 
Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
Scrum - Agile Methodology
Scrum - Agile MethodologyScrum - Agile Methodology
Scrum - Agile Methodology
 
Agile Scrum
Agile ScrumAgile Scrum
Agile Scrum
 

Viewers also liked

Extreme programming
Extreme programmingExtreme programming
Extreme programmingMr SMAK
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme Programming
Joe Drumgoole
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
pamungkas utomo
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-modelAli MasudianPour
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
Shankar Dahal
 
Scrum In 15 Minutes
Scrum In 15 MinutesScrum In 15 Minutes
Scrum In 15 Minutes
Srikanth Shreenivas
 
Metodologi extreme programming
Metodologi extreme programmingMetodologi extreme programming
Metodologi extreme programming
Annisa Shabrina
 
The basics of UNIT testing
The basics of UNIT testing The basics of UNIT testing
The basics of UNIT testing
David Tzemach
 
Extreme Programming(Agile Methodology)
Extreme Programming(Agile Methodology)Extreme Programming(Agile Methodology)
Extreme Programming(Agile Methodology)
Abhinav Srivastava
 
The evolution of agile development process
The evolution of agile development processThe evolution of agile development process
The evolution of agile development process
David Tzemach
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
An Introduction to Performance Testing
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance Testing
David Tzemach
 
All you need to know about regression testing | David Tzemach
All you need to know about regression testing | David TzemachAll you need to know about regression testing | David Tzemach
All you need to know about regression testing | David Tzemach
David Tzemach
 
Unified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptUnified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptShweta Ghate
 
Agile vs. waterfall - The fundamentals differences
Agile vs. waterfall - The fundamentals differencesAgile vs. waterfall - The fundamentals differences
Agile vs. waterfall - The fundamentals differences
David Tzemach
 
User Interface Testing | Best Practices
User Interface Testing | Best Practices User Interface Testing | Best Practices
User Interface Testing | Best Practices
David Tzemach
 
Agile scrum roles
Agile scrum rolesAgile scrum roles
Agile scrum roles
David Tzemach
 
Agile Project Management - An introduction to Agile and the new PMI-ACP
Agile Project Management - An introduction to Agile and the new PMI-ACPAgile Project Management - An introduction to Agile and the new PMI-ACP
Agile Project Management - An introduction to Agile and the new PMI-ACP
Dimitri Ponomareff
 
Scrum 101: Introduction to Scrum
Scrum 101: Introduction to ScrumScrum 101: Introduction to Scrum
Scrum 101: Introduction to Scrum
Arrielle Mali
 

Viewers also liked (20)

Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme Programming
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-model
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Scrum In 15 Minutes
Scrum In 15 MinutesScrum In 15 Minutes
Scrum In 15 Minutes
 
Metodologi extreme programming
Metodologi extreme programmingMetodologi extreme programming
Metodologi extreme programming
 
The basics of UNIT testing
The basics of UNIT testing The basics of UNIT testing
The basics of UNIT testing
 
Extreme Programming(Agile Methodology)
Extreme Programming(Agile Methodology)Extreme Programming(Agile Methodology)
Extreme Programming(Agile Methodology)
 
The evolution of agile development process
The evolution of agile development processThe evolution of agile development process
The evolution of agile development process
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
An Introduction to Performance Testing
An Introduction to Performance TestingAn Introduction to Performance Testing
An Introduction to Performance Testing
 
All you need to know about regression testing | David Tzemach
All you need to know about regression testing | David TzemachAll you need to know about regression testing | David Tzemach
All you need to know about regression testing | David Tzemach
 
Unified process,agile process,process assesment ppt
Unified process,agile process,process assesment pptUnified process,agile process,process assesment ppt
Unified process,agile process,process assesment ppt
 
Agile vs. waterfall - The fundamentals differences
Agile vs. waterfall - The fundamentals differencesAgile vs. waterfall - The fundamentals differences
Agile vs. waterfall - The fundamentals differences
 
User Interface Testing | Best Practices
User Interface Testing | Best Practices User Interface Testing | Best Practices
User Interface Testing | Best Practices
 
Unified process
Unified processUnified process
Unified process
 
Agile scrum roles
Agile scrum rolesAgile scrum roles
Agile scrum roles
 
Agile Project Management - An introduction to Agile and the new PMI-ACP
Agile Project Management - An introduction to Agile and the new PMI-ACPAgile Project Management - An introduction to Agile and the new PMI-ACP
Agile Project Management - An introduction to Agile and the new PMI-ACP
 
Scrum 101: Introduction to Scrum
Scrum 101: Introduction to ScrumScrum 101: Introduction to Scrum
Scrum 101: Introduction to Scrum
 

Similar to Extreme programming (xp) | David Tzemach

01 Pendahuluan DRPL vREVHLZ100221.pdf
01 Pendahuluan DRPL vREVHLZ100221.pdf01 Pendahuluan DRPL vREVHLZ100221.pdf
01 Pendahuluan DRPL vREVHLZ100221.pdf
AidilAfriansyah3
 
A Proven Software Development Process for the Non Technical Founder
A Proven Software Development Process for the Non Technical FounderA Proven Software Development Process for the Non Technical Founder
A Proven Software Development Process for the Non Technical Founder
Founders Workshop
 
A Software Engineer
A Software EngineerA Software Engineer
A Software Engineer
Abbasgulu Allahverdili
 
Agile software development, principles, patterns, and practices Chapter 1
Agile software development, principles, patterns, and practices Chapter 1Agile software development, principles, patterns, and practices Chapter 1
Agile software development, principles, patterns, and practices Chapter 1
Eugenio Romano
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering MethodologiesDamian T. Gordon
 
The Waterfall Model
The Waterfall ModelThe Waterfall Model
The Waterfall Model
Damian T. Gordon
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
MarriamNawaz
 
My feedback on ddd europe
My feedback on ddd europeMy feedback on ddd europe
My feedback on ddd europe
Guillaume Saint Etienne
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOps
Luca Minudel
 
Software engineering unit 1
Software engineering unit 1Software engineering unit 1
Software engineering unit 1
gondwana university
 
Introduction to Scrum - 1 day workshop
Introduction to Scrum - 1 day workshopIntroduction to Scrum - 1 day workshop
Introduction to Scrum - 1 day workshop
Evan Leybourn
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
ShudipPal
 
Lect2 conventional software management
Lect2 conventional software managementLect2 conventional software management
Lect2 conventional software management
meena466141
 
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALAlex Tarra
 
Dev ops
Dev opsDev ops
Dev ops
PHAGUNJAIN1
 
BSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IVBSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IV
YamunaP6
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
UnknownPerson201264
 
Overview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxOverview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptx
BypassFrp
 
Cost estimation
Cost estimationCost estimation
Cost estimation
Nameirakpam Sundari
 

Similar to Extreme programming (xp) | David Tzemach (20)

01 Pendahuluan DRPL vREVHLZ100221.pdf
01 Pendahuluan DRPL vREVHLZ100221.pdf01 Pendahuluan DRPL vREVHLZ100221.pdf
01 Pendahuluan DRPL vREVHLZ100221.pdf
 
RRC RUP
RRC RUPRRC RUP
RRC RUP
 
A Proven Software Development Process for the Non Technical Founder
A Proven Software Development Process for the Non Technical FounderA Proven Software Development Process for the Non Technical Founder
A Proven Software Development Process for the Non Technical Founder
 
A Software Engineer
A Software EngineerA Software Engineer
A Software Engineer
 
Agile software development, principles, patterns, and practices Chapter 1
Agile software development, principles, patterns, and practices Chapter 1Agile software development, principles, patterns, and practices Chapter 1
Agile software development, principles, patterns, and practices Chapter 1
 
Software Engineering Methodologies
Software Engineering MethodologiesSoftware Engineering Methodologies
Software Engineering Methodologies
 
The Waterfall Model
The Waterfall ModelThe Waterfall Model
The Waterfall Model
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
My feedback on ddd europe
My feedback on ddd europeMy feedback on ddd europe
My feedback on ddd europe
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOps
 
Software engineering unit 1
Software engineering unit 1Software engineering unit 1
Software engineering unit 1
 
Introduction to Scrum - 1 day workshop
Introduction to Scrum - 1 day workshopIntroduction to Scrum - 1 day workshop
Introduction to Scrum - 1 day workshop
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Lect2 conventional software management
Lect2 conventional software managementLect2 conventional software management
Lect2 conventional software management
 
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINALJun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
Jun 08 - PMWT Featured Paper -Tarabykin - XP PAPER - FINAL
 
Dev ops
Dev opsDev ops
Dev ops
 
BSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IVBSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IV
 
Lecture 1.pptx
Lecture 1.pptxLecture 1.pptx
Lecture 1.pptx
 
Overview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptxOverview of Software Engineering Principles - SCPS311.pptx
Overview of Software Engineering Principles - SCPS311.pptx
 
Cost estimation
Cost estimationCost estimation
Cost estimation
 

More from David Tzemach

Best practices for test automation
Best practices for test automationBest practices for test automation
Best practices for test automation
David Tzemach
 
The new manager role in scrum teams and beyond | SupremeAgile
The new manager role in scrum teams and beyond | SupremeAgileThe new manager role in scrum teams and beyond | SupremeAgile
The new manager role in scrum teams and beyond | SupremeAgile
David Tzemach
 
Top Agile Myths & Misconceptions
Top Agile Myths & MisconceptionsTop Agile Myths & Misconceptions
Top Agile Myths & Misconceptions
David Tzemach
 
Scrum Master (SM) - Practical Approach
Scrum Master (SM) - Practical ApproachScrum Master (SM) - Practical Approach
Scrum Master (SM) - Practical Approach
David Tzemach
 
Expectations of scrum masters - How to choose a true great scrum master?
Expectations of scrum masters - How to choose a true great scrum master?Expectations of scrum masters - How to choose a true great scrum master?
Expectations of scrum masters - How to choose a true great scrum master?
David Tzemach
 
Top 10 challenges faced by the scrum master
Top 10 challenges faced by the scrum masterTop 10 challenges faced by the scrum master
Top 10 challenges faced by the scrum master
David Tzemach
 
SDLC vs STLC
SDLC vs STLCSDLC vs STLC
SDLC vs STLC
David Tzemach
 
What is component testing | David Tzemach
What is component testing | David TzemachWhat is component testing | David Tzemach
What is component testing | David Tzemach
David Tzemach
 
What is automation testing | David Tzemach
What is automation testing | David TzemachWhat is automation testing | David Tzemach
What is automation testing | David Tzemach
David Tzemach
 
The role of the product owner in scrum team | David Tzemach
The role of the product owner in scrum team | David TzemachThe role of the product owner in scrum team | David Tzemach
The role of the product owner in scrum team | David Tzemach
David Tzemach
 
The complete guide for software integration testing | David Tzemach
The complete guide for software integration testing | David TzemachThe complete guide for software integration testing | David Tzemach
The complete guide for software integration testing | David Tzemach
David Tzemach
 
The complete guide for negative testing | David Tzemach
The complete guide for negative testing | David TzemachThe complete guide for negative testing | David Tzemach
The complete guide for negative testing | David Tzemach
David Tzemach
 
Software testing metrics | David Tzemach
Software testing metrics | David Tzemach Software testing metrics | David Tzemach
Software testing metrics | David Tzemach
David Tzemach
 
An introduction to api testing | David Tzemach
An introduction to api testing | David TzemachAn introduction to api testing | David Tzemach
An introduction to api testing | David Tzemach
David Tzemach
 
Agile User Stories | The complete Review
Agile User Stories | The complete ReviewAgile User Stories | The complete Review
Agile User Stories | The complete Review
David Tzemach
 

More from David Tzemach (15)

Best practices for test automation
Best practices for test automationBest practices for test automation
Best practices for test automation
 
The new manager role in scrum teams and beyond | SupremeAgile
The new manager role in scrum teams and beyond | SupremeAgileThe new manager role in scrum teams and beyond | SupremeAgile
The new manager role in scrum teams and beyond | SupremeAgile
 
Top Agile Myths & Misconceptions
Top Agile Myths & MisconceptionsTop Agile Myths & Misconceptions
Top Agile Myths & Misconceptions
 
Scrum Master (SM) - Practical Approach
Scrum Master (SM) - Practical ApproachScrum Master (SM) - Practical Approach
Scrum Master (SM) - Practical Approach
 
Expectations of scrum masters - How to choose a true great scrum master?
Expectations of scrum masters - How to choose a true great scrum master?Expectations of scrum masters - How to choose a true great scrum master?
Expectations of scrum masters - How to choose a true great scrum master?
 
Top 10 challenges faced by the scrum master
Top 10 challenges faced by the scrum masterTop 10 challenges faced by the scrum master
Top 10 challenges faced by the scrum master
 
SDLC vs STLC
SDLC vs STLCSDLC vs STLC
SDLC vs STLC
 
What is component testing | David Tzemach
What is component testing | David TzemachWhat is component testing | David Tzemach
What is component testing | David Tzemach
 
What is automation testing | David Tzemach
What is automation testing | David TzemachWhat is automation testing | David Tzemach
What is automation testing | David Tzemach
 
The role of the product owner in scrum team | David Tzemach
The role of the product owner in scrum team | David TzemachThe role of the product owner in scrum team | David Tzemach
The role of the product owner in scrum team | David Tzemach
 
The complete guide for software integration testing | David Tzemach
The complete guide for software integration testing | David TzemachThe complete guide for software integration testing | David Tzemach
The complete guide for software integration testing | David Tzemach
 
The complete guide for negative testing | David Tzemach
The complete guide for negative testing | David TzemachThe complete guide for negative testing | David Tzemach
The complete guide for negative testing | David Tzemach
 
Software testing metrics | David Tzemach
Software testing metrics | David Tzemach Software testing metrics | David Tzemach
Software testing metrics | David Tzemach
 
An introduction to api testing | David Tzemach
An introduction to api testing | David TzemachAn introduction to api testing | David Tzemach
An introduction to api testing | David Tzemach
 
Agile User Stories | The complete Review
Agile User Stories | The complete ReviewAgile User Stories | The complete Review
Agile User Stories | The complete Review
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
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
 
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
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
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
 
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
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
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
 
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
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
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
 
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
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
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
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
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
 
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
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
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
 
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
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
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...
 
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
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
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
 
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
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
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...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

Extreme programming (xp) | David Tzemach

  • 2. EXTREME PROGRAMING AS AN AGILE METHODOLOGY “WE ARE UNCOVERING BETTER WAYS OF DEVELOPING SOFTWARE BY DOING IT AND HELPING OTHERS DO IT. THROUGH THIS WORK WE HAVE COME TO VALUE: INDIVIDUALS AND INTERACTIONS OVER PROCESSES AND TOOLS WORKING SOFTWARE OVER COMPREHENSIVE DOCUMENTATION CUSTOMER COLLABORATION OVER CONTRACT NEGOTIATION RESPONDING TO CHANGE OVER FOLLOWING A PLAN THAT IS, WHILE THERE IS VALUE IN THE ITEMS ON THE RIGHT, WE VALUE THE ITEMS ON THE LEFT MORE.” -KENT BECK- The Manifesto for Agile Software Development
  • 3. EXTREME PROGRAMMING(XP) • XP WAS DEVELOPED BY “KENT BECK” AND INTRODUCED IN HIS FIRST BOOK “EXTREME PROGRAMMING EXPLAINED: EMBRACE CHANGE (ADDISON-WESLEY, 1999)”. • IT WAS ONE OF THE EARLIEST AGILE METHODOLOGIES AND THE FIRST ONE THAT CHALLENGE THE TRADITIONAL WATERFALL MODEL. • XP IS A DESIGNED TO SUPPORT A SMALL/MEDIUM SOFTWARE DEVELOPMENT TEAMS. • IT’S CALLED “EXTREME PROGRAMMING” BECAUSE IT TAKES 12 KNOWN PROVEN SOFTWARE DEVELOPMENT PRINCIPLES/PRACTICES AND PUSH THEM TO EXTREME LEVELS.
  • 4. THE VALUES OF EXTREME PROGRAMMING
  • 5. SIMPLICITY • THE TEAM MEMBERS WILL FOCUS ON THINGS THAT MATTERS AND DON’T WASTE TIME ON THINGS THAT THEY DOESN'T ASK FOR. • DO THE SIMPLEST THAT COULD POSSIBLY WORK. • REMOVE ANY CODE THAT YOU WILL NOT USE. "XP is making a bet. It is betting that it is better to do a simple thing today and pay a little more tomorrow to change it if it needs it, than to do a more complicated thing today that may never be used anyway." -Kent Beck-
  • 6. COMMUNICATION • THERE SHOULD BE A GOOD COMMUNICATION BETWEEN THE TEAM AND THE CLIENT. • THE ENTIRE TEAM MEMBERS SHOULD WORK TOGETHER TO COMPLETE EACH TASK. • FACE TO FACE COMMUNICATION WILL REDUCE THE NEED OF DOCUMENTATION. • THE PROJECT COACH SHOULD VALIDATE THAT THERE IS A GOOD COMMUNICATION (DEVELOPERS->DEVELOPERS, DEVELOPERS->CLIENT ETC.)
  • 7. COURAGE • DEVELOPERS SHOULD HAVE THE COURAGE TO TAKE FAST DECISIONS DUE TO THE COLLECTIVE OWNERSHIP. • DEVELOPERS SHOULD HAVE THE COURAGE TO MAKE REAL CHANGES IN THE SOFTWARE DESIGN AND ARCHITECTURE WHEN NEEDED. • DEVELOPERS SHOULD HAVE THE COURAGE TO TELL THE TRUTH ABOUT THE EFFORT THEY NEED TO COMPLETE TASKS (TIME ESTIMATIONS, IMPLEMENTATION EFFORT ETC.).
  • 8. FEEDBACK • EXTREME PROGRAMMING EMBRACES FEEDBACK AS A GREAT WAY TO EVALUATE THE CURRENT STATE OF THE DEVELOPMENT PROCESS. • FAST FEEDBACK WILL INCREASE THE EFFECTIVENESS OF THE PROCESS. • EACH RESOURCE THAT INVOLVED IN THE PROJECT IS RELEVANT, EXAMPLES: • DEVELOPERS – ESTIMATE THE USER STORIES AND RESPOND WITH ESTIMATIONS. • CUSTOMER – TEST THE SOFTWARE AND SEND FEEDBACKS THAT WILL INCREASE THE QUALITY.
  • 9. RESPECT • RESPECT THE OTHER TEAM MEMBERS. • RESPECT THE CUSTOMER. • RESPECT THE PROJECT.
  • 11. CODING • ALL DEVELOPERS SHOULD FOLLOW A PREDEFINED CODE STANDARDS. • CONTINUOUS INTEGRATION THROUGHOUT THE ENTIRE PROCESS. • THE CODE IS BASED ON THE CUSTOMER USER STORIES. • THE CUSTOMER SHOULD BE AVAILABLE AT ALL TIME. • FIRST CODE IS WRITTEN FOR UNIT TESTS. • COLLECTIVE CODE OWNERSHIP. • PAIR PROGRAMMING.
  • 12. • EVERY PART OF THE CODE SHOULD BE TESTED WITH A DEDICATED UNIT TEST. • YOU CANNOT SAY THAT YOUR CODE IS WORKING UNTIL YOU TEST IT. • ALL TESTS SHOULD RUN ON EVERY NEW BUILD. • TESTING IS MADE BY THE DEVELOPERS(UNIT) AND BY THE CUSTOMER (ATP FOR FUNCTIONALITY). TESTING
  • 13. LISTENING • DEVELOPERS SHOULD LISTEN TO THE CLIENT REQUIREMENTS ABOUT HOW THE SYSTEM SHOULD DEVELOPED. • DEVELOPERS SHOULD LISTEN TO EACH OTHER TO DEVELOP A BETTER AND RESILIENCE SOFTWARE. • DEVELOPERS SHOULD LISTEN TO THE CLIENT FEEDBACK ABOUT THE GENERATED CODE.
  • 14. DESIGNING • A GOOD AND SIMPLE DESIGN WILL REDUCE THE COMPLEXITY OF THE SYSTEM. • EVERY DEVELOPER CAN TAKE AN ACTIVE PART IN THE DESIGN PROCESS. • THE DESIGN IS MADE AT THE START AND DURING THE PROCESS. • REFACTORING IS A DECISIVE PART OF THE DESIGN PROCESS. • ALTHOUGH XP EMBRACES FAST DEVELOPMENT THAT ADD BUSINESS VALUE, IT DOESN'T MEAN THAT THE DESIGNING PROCESS IS EXCLUDED.
  • 16. THE 12 KEY PRACTICES OF EXTREME PROGRAMMING 1. THE PLANNING GAME 2. SMALL RELEASES 3. SYSTEM METAPHOR 4. SIMPLE DESIGN 5. CONTINUOUS TESTING 6. REFACTORING 7. PAIR PROGRAMMING 8. CONTINUOUS INTEGRATION 9. COLLECTIVE OWNERSHIP 10. ON-SITE CUSTOMER 11. THE 40-HOUR WEEK 12. CODING STANDARDS
  • 17. THE PLANNING GAME (1) • THE COMPANY EVALUATES THE CLIENT REQUESTS AGAINST THE COST ESTIMATIONS AND DEVELOPMENT TIME. • THE PRIMARY GOAL IS TO PRODUCE THE MAXIMUM BUSINESS VALUE IN THE FASTEST WAY. • THERE ARE THREE BASIC RULES TO FOLLOW ON THIS PHASE: 1. BUSINESS COMES UP WITH THE LIST OF REQUIREMENTS FROM THE CLIENT (USER STORIES). 2. ENGINEERING TEAM REVIEW THE “USER STORIES", AND THEN ANSWER THESE TWO QUESTIONS: • WHAT IS THE TIME ESTIMATION AND EFFORT WILL THEY NEED TO PUT IN ORDER TO DELIVER EACH USER STORY…? • HOW MUCH EFFORT THE TEAM CAN PRODUCE PER ITERATION (HOW MANY USER STORIES THEY CAN DELIVER PER ITERATION)…? 3. BUSINESS REVIEW THE ESTIMATIONS AND DECIDE WHAT ARE THE USER STORIES THAT WILL BE DEVELOPED AND IN WHAT ORDER.
  • 18. SMALL RELEASES (2) • THE MAIN TARGET IS TO RELEASE A WORKING AND TESTED SOFTWARE EARLY AS POSSIBLE. • THE FIRST RELEASE IS DEVELOPED WITH THE SMALLEST USEFUL SET OF FEATURES TO INCREASE THE BUSINESS VALUE. • SOFTWARE UPDATES SHOULD BE DEVELOPED OFTEN TO SUPPORT FAST RELEASES. • THE CUSTOMER CAN USE THIS SOFTWARE IN IT’S OWN ENVIRONMENT THAT INVOLVE REAL USERS(WHICH ALLOWING THE CUSTOMER TO EVALUATE THE SOFTWARE AND SEND HIS FEEDBACKS).
  • 19. • METAPHOR IN XP IS THE COMMON VISION OF THE TEAM MEMBERS ON HOW THE PROGRAM SHOULD DEVELOP AND WORK. • EACH PROJECT AS IT’S “METAPHOR”, IS JOB IS TO GUIDE THE PROJECT RESOURCES ON HOW THE WHOLE SYSTEM WORKS (COMPONENTS, INTEGRATIONS,ETC). • ANOTHER RESPONSIBILITY OF THE “METAPHOR”, IS TO DETERMINE A SET OF KEYWORDS THAT DESCRIBES A COMMON TECHNICAL ENTITIES (COMMON TERMS, CLASS NAMES ETC.). SYSTEM METAPHOR (3)
  • 20. • IN AGILE METHODOLOGY THE REQUIREMENTS ARE FREQUENTLY CHANGED, BASED ON THIS ASSUMPTION, YOU SHOULD ALWAYS USE THE MOST SIMPLIFIED SOFTWARE DESIGNS THAT ALLOWING YOU TO MAKE THE JOB DONE. SIMPLE DESIGN(4)
  • 21. CONTINUOUS TESTING (5) • TESTING IS DONE THROUGHOUT THE ENTIRE PROCESS. • ALL TESTS MUST RUN AND PASS WITH 100% BEFORE A NEW DEVELOPMENT. • THERE ARE TWO TYPE OF TESTS THAT INVOLVE IN THIS PROCESS: TEST DRIVEN DEVELOPMENT (TDD) • PROGRAMS WRITE THE TESTS PRIOR TO THE APPLICATION CODE DEVELOPMENT. • THE CODE IS PRODUCED WITH ALMOST 100% TEST COVERAGE. • AUTOMATED TESTS THAT ARE WRITTEN BY THE DEVELOPMENT TEAM(PER FUNCTIONALITY) ACCEPTANCE TESTS • THIS TESTS IS THE “CONTRACT” BETWEEN THE CUSTOMER AND THE COMPANY • THE CLIENT CAN VALIDATE THAT THE SOFTWARE IS DEVELOPED AS SPECIFIED. • TESTS THAT ARE SPECIFIED BY THE CUSTOMER.
  • 22. REFACTORING (6) • TO ACHIEVE VALUE PER ITERATION, THE DEVELOPMENT TEAM MUST BUILD THE SOFTWARE BASED ON SIMPLE AND EFFECTIVE DESIGN. • REFACTORING IS A CONTINUES DESIGN IMPROVEMENT THAT DEVELOPERS CAN DO AT ANY TIME. • REFACTORING CANNOT BE MADE WITHOUT A CORRESPONDING TESTING TO ENSURE THAT NOTHING WAS BROKEN. • DURING THE REFACTORING PHASE, PROGRAMMERS CAN: • EDIT THEIR CODE (EDIT CODE BUT, WITHOUT CHANGING THE FUNCTIONALITY). • IMPROVE THE SOFTWARE DESIGN. • REMOVE ANY CODE DUPLICATION.
  • 23. PAIR PROGRAMMING (7) • TWO PROGRAMMERS ARE WORKING ON THE SAME COMPUTER TO COMPLETE A SINGLE TASK. • PROGRAMMER NO’1 – RESPONSIBLE TO WRITE AND IMPLEMENT THE CODE. • PROGRAMMER NO’2 – WATCH THE IMPLEMENTATION AND IDENTIFIES ANY CODE ERRORS. THE ASSUMPTIONS • PROGRAMMERS WILL GAIN MORE CONFIDENCE IN THEIR CODE. • DEVELOPERS WILL ENJOY WORKING TOGETHER. • TASKS WILL BE RESOLVED FASTER. • PRODUCE HIGHER QUALITY CODE.
  • 24. CONTINUOUS INTEGRATION (8) • IN XP DEVELOPERS MUST KEEP THE SYSTEM FULLY INTEGRATED AT ALL TIMES • ALL UNIT TESTS MUST BE RUN AND PASS WITH 100%. • NEW BUILDS ARE CREATED DAILY WITH THE FULL CODE(THE ENTIRE CODE THAT WAS DEVELOPED BY THIS POINT). • ANY DEVELOPMENT IS INTEGRATED TO A SINGLE LOCATION WHEN THE CODE IS READY.
  • 25. • ANY DEVELOPER MUST HAVE THE ABILITY TO WORK ON ANY PART OF THE CODE. • NO SPECIFIC DEVELOPER THAT RESPONSIBLE FOR A SPECIFIC COMPONENT. • CODE CAN BE CHANGED BY ANY DEVELOPER WITHOUT DELAY. • A NEW CODE IS REVIEWED BY THE ENTIRE TEAM. • INCREASE THE RESPONSIBILITY OF DEVELOPERS. COLLECTIVE CODE OWNERSHIP (9)
  • 26. • THE CUSTOMER SHOULD LEAD THE PROJECT (REQUIREMENTS, PRIORITIES AND TIMELINES). • THE CUSTOMER SHOULD BE AVAILABLE AT ALL TIME (FACE TO FACE COMMUNICATION). • DEVELOPERS WILL NOT USE ANY ASSUMPTIONS DURING THE DEVELOPMENT PROCESS. • THE CUSTOMER IS ONE OF THE MOST IMPORTANT RESOURCES IN XP PROCESS. • THE CUSTOMER SHOULD ANSWER ANY OPEN QUESTIONS. • DEVELOPERS CAN ACCESS TO A REAL CLIENT ENVIRONMENT(WHERE THE SOFTWARE IS IMPLEMENTED.). ON-SITE CUSTOMER (10)
  • 27. • THE TEAM WILL GO HOME ON TIME, THERE IS NO REASON TO DO OVERTIME HOURS. • THE PROJECT SHOULDN’T INTERFERE WITH THE DEVELOPER’S PERSONAL LIFE. • THE WORK WEEK SHOULD BE NO MORE THAN 40 HOURS. • TIRED DEVELOPERS DO MORE CODING MISTAKES. • IN MOST PROJECTS, THIS PRACTICE IS NOT RELEVANT, THE REAL WORLD IS DIFFERENT FROM THE THEORETICAL ONE  • CONSECUTIVE OVERTIME HOURS WILL INDICATE THAT THERE IS SOMETHING WRONG IN THE PROCESS. THE 40-HOUR WEEK (11)
  • 28. • CODING STANDARDS WILL HELP TO DEVELOP A BETTER CODE. • EVERY DEVELOPER SHOULD FOLLOW THE CODE STANDARDS. • CODE REVIEW SHOULD BE USED AS A METHOD TO VALIDATE THAT THE EXPECTED STANDARD IS ENFORCED. • EXAMPLES FOR “CODE STANDARDS”: • THE CODE MUST INCLUDE COMMENTS PER METHOD. • CODING CONVENTIONS (FORMATTING, NAMING, LOG). • DEVELOP BASED ON A SPECIFIC DESIGN PATTERN. • THE CODE SHOULD BE EASY TO MAINTAIN. CODING STANDARDS (12)
  • 30. CUSTOMER • RESPONSIBLE TO SPECIFY AND TEST THE SOFTWARE FUNCTIONALITY. • SPECIFY THE SOFTWARE REQUIREMENTS AND SPECIFICATIONS. • DETERMINES THE DEVELOPMENT PRIORITIES. • CREATE AND EXPLAINS THE USER STORIES. COACH • MONITOR THE ENTIRE PROCESS AND VALIDATE THAT THE PROJECT STAYS ON COURSE. • GUIDES AND MENTORS THE TEAM MEMBERS. • SHOULD LEAD BY EXAMPLE.
  • 31. DEVELOPER • MAINTAIN THE SOFTWARE THROUGH THE PROCESS AND AFTER IMPLEMENTATION. • MAKE THE CODE IMPLEMENTATION( USER STORIES INTO WORKING CODE). • ESTIMATES THE TIME AND EFFORT OF THE USER STORIES. • TEST THE CODE (AUTOMATED UNIT TESTS). DOOMSAYER • RESPONSIBLE TO MAKE SURE THAT WHEN A CRISES OCCURS, EVERYONE WILL KNOW ABOUT IT. • VALIDATE THAT EACH RESOURCES KNOWS THE RISK INVOLVED. • RESPONSIBLE TO MAKE SURE THAT SMALL ISSUES REMAIN SMALL AND NOT GET OUT OF PROPORTION
  • 32. TRACKER • VALIDATE THAT EACH DEVELOPER IS ON TRACK WITH HIS ASSIGNED TASKS. • VALIDATE THAT EACH DEVELOPER IS SYNCHRONIZED AT ALL TIME. • ARRANGE MEETINGS WITH THE CLIENT WHEN NECESSARY. • VALIDATE THAT THE PROJECT IS GOING AS SCHEDULED. TESTER • REPORT FOR DEFECTS AND ANY OTHER ISSUES THAT MAY AFFECT THE USER EXPERIENCE. • TEST THE SOFTWARE FUNCTIONALITY.
  • 33. FOR ADDITIONAL KB’S PLEASE VISIT MY TECHNICAL BLOG WWW.DTVISIONTECH.COM