SlideShare une entreprise Scribd logo
1  sur  45
Extreme Programming
        (XP)
Introduction Extreme Programming?
   An agile development methodology XP is “a light-
    weight methodology for small to medium-sized
    teams developing software in the face of vague or
    rapidly changing requirements
   It works by bringing the whole team together in the
    presence of simple practices, with enough feedback
    to enable the team to see where they are and to
    tune the practices to their unique situation?
   Created by Kent Beck in the mid 1990’s
   A set of 12 key practices taken to their “extremes”
   A mindset for developers and customers
Extreme Programming
   Hence XP is a lightweight (agile) process:
     Instead  of lots of documentation nailing down what
      customer wants up front, XP emphasizes plenty of
      feedback
     Embrace change: iterate often, design and
      redesign, code and test frequently, keep the
      customer involved
     Deliver software to the customer in short (2 week)
      iterations
     Eliminate defects early, thus reducing costs
XP MODEL
(from www.extremeprogramming.org)
XP emphasizes iteration
XP emphasizes communication
Test-driven development
Four Core Values of XP

 Communication
 Simplicity
 Feedback
 Courage
XP Practices
   The Planning Game
   Small Releases
   Metaphor
   Simple Design
   Testing
   Refactoring
   Pair Programming
   Collective Ownership
   Continuous Integration
   40-Hour Workweek
   On-site Customer
   Coding Standards
The Planning Game
   Planning for the upcoming iteration
   Uses stories provided by the customer
   Technical persons determine schedules, estimates, costs, etc
   A result of collaboration between the customer and the
    developers
    Advantages
     Reduction in time wasted on useless features
     Greater customer appreciation of the cost of a feature
     Less guesswork in planning

    Disadvantages
     Customer   availability
     Is planning this often necessary?
Small Releases
   Small in terms of functionality
   Less functionality means releases happen more frequently
   Support the planning game
    Advantages
      Frequent feedback
      Tracking
      Reduce chance of overall project slippage
    Disadvantages
      Not easy for all projects
      Not needed for all projects
      Versioning issues
Metaphor

   The oral architecture of the system
   A common set of terminology
    Advantages
     Encourages a common set of terms for the system
     Reduction of buzz words and jargon
     A quick and easy way to explain the system

    Disadvantages
     Often the metaphor is the system
     Another opportunity for miscommunication
     The system is often not well understood as a metaphor
Simple Design

   K.I.S.S (Keep it simple Stupid)
   Do as little as needed, nothing more
    Advantages
     Time is not wasted adding superfluous functionality
     Easier to understand what is going on
     Refactoring and collective ownership is made possible
     Helps keeps programmers on track

    Disadvantages
     What is “simple?”
     Simple isn’t always best
Testing
   Unit testing
   Test-first design
   All automated
    Advantages
      Unit testing promote testing completeness
      Test-first gives developers a goal
      Automation gives a suite of regression test
    Disadvantages
      Automated unit testing isn’t for everything
      Reliance on unit testing isn’t a good idea
      A test result is only as good as the test itself
Refactoring
   Changing how the system does something but not what is done
   Improves the quality of the system in some way

    Advantages
      Prompts developers to proactively improve the product as a whole
      Increases developer knowledge of the system

     Disadvantages
      Not everyone is capable of refactoring
      Refactoring may not always be appropriate
      Would upfront design eliminate refactoring?
Pair Programming
   Two Developers, One monitor, One Keyboard
   One “drives” and the other thinks
   Switch roles as needed
Advantages
     Two heads are better than one
     Focus
     Two people are more likely to answer the following questions:
        Is this whole approach going to work?
        What are some test cases that may not work yet?
        Is there a way to simplify this?

    Disadvantages
     Many tasks really don’t require two programmers
     A hard sell to the customers
Collective Ownership

   The idea that all developers own all of the code
   Enables refactoring
    Advantages
     Helps mitigate the loss of a team member leaving
     Promotes developers to take responsibility for the system as a
      whole rather then parts of the system
    Disadvantages
     Loss of accountability
     Limitation to how much of a large system that an individual can
      practically “own”
Continuous Integration
   New features and changes are worked into the system
    immediately
   Code is not worked on without being integrated for more
    than a day
    Advantages
     Reduces to lengthy process
     Enables the Small Releases practice


    Disadvantages
     The one day limit is not always practical
     Reduces the importance of a well-thought-out architecture
40-Hour Week
   The work week should be limited to 40 hours
   Regular overtime is a symptom of a problem and not a long
    term solution
    Advantages
     Most developers lose effectiveness past 40-Hours
     Value is placed on the developers well-being
     Management is forced to find real solutions


    Disadvantages
     The underlying principle is flawed
     40-Hours is a magic number
     Some may like to work more than 40-Hours
On-Site Customer
   Acts to “steer” the project
   Gives quick and continuous feedback to the development team
    Advantages
      Can give quick and knowledgeable answers to real development
       questions
      Makes sure that what is developed is what is needed
      Functionality is prioritized correctly


    Disadvantages
      Difficult to get an On-Site Customer
      The On-Site customer that is given may not be fully knowledgeable about what
       the company
      May not have authority to make many decisions
      Loss of work to the customer’s company
Coding Standards
   All code should look the same
   It should not possible to determine who coded what
    based on the code itself
    Advantages
     Reduces the amount of time developers spend reformatting
      other peoples’ code
     Reduces the need for internal commenting
       Call for clear, unambiguous code
    Disadvantages
       Degrading the quality of inline documentation
Extreme Programming Roles

    Customer
      Writes User Stories and specifies Functional Tests
      Sets priorities, explains stories
      May or may not be an end-user
      Has authority to decide questions about the stories
    Programmer
      Estimates stories
      Defines Tasks from stories, and estimates
      Implements Stories and Unit Tests
    Coach
       Watches everything, sends obscure signals, makes sure
       the project stays on course
      Helps with anything
XP Roles continued
   Tracker
      Monitors Programmers’ progress, takes action if things seem to be
      going off track.
     Actions include setting up a meeting with Customer,
     Coach or another Programmer to help
   Tester
     Implements and runs Functional Tests (not Unit Tests!)
     Graphs results, and makes sure people know when test results decline.
   Doomsayer
      Ensures that everybody knows the risks involved
     Ensures that bad news isn't hidden, glossed over, or blown out of
      proportion
XP Roles continued
   Manager
        Schedules meetings (e.g. Iteration Plan, Release Plan), makes
        sure the meeting process is followed, records results of meeting
        for future reporting, and passes to the Tracker
       Possibly responsible to the Gold Owner.
       Goes to meetings, brings back useful information
       Gold Owner
        The person funding the project, which may or may not be the
        same as the Customer
Extreme Programming
Activities
   Coding: You code because if you don't code, at the end of the day
    you haven't done anything.
   Testing: You test because if you don't test, you don't know when
    you are done coding
   Listening: You listen because if you don't listen you don't know
    what to code or what to test
   Designing: And you design so you can keep coding and testing and
    listening indefinitely (good design allows extension of the system
    with changes in only one place)
Release Planning Phases
   Exploration Phase: In this phase the customer will provide a
    shortlist of high-value requirements for the system. These will be
    written down on user story cards.
   Commitment Phase: Within the commitment phase customer and
    developers will commit themselves to the functionality that will be
    included and the date of the next release.
   Steering Phase: In the steering phase the plan can be adjusted,
    new requirements can be added and/or existing requirements can
    be changed or removed
Exploration Phase
   Iterative process of gathering requirements and estimating the work
    impact of each of those requirements.
    Write a Story:
    Customer has come with a problem; during a meeting, Developer
    will try to define this problem and get requirements. Based on the
    business problem, a story (user story) has to be written. This is
    done by Customer, where they point out what they want a part of
    the system to do. It is important that developer has no influence on
    this story. The story is written on a user story card.
     Roles : Customer , Developer
     Artifact : User Stories
Exploration Phase
   Estimate a Story: Developer estimates how long it will
    take to implement the work implied by the story card.
    Developer can analyze or solve the problem. These
    solutions are used for estimation and discarded once
    everyone gets clear visualization of the problem. Again,
    this may not influence the business requirements.
   Split a Story: Design critical complexity has to be
    addressed before starting the iteration planning. If
    developer isn't able to estimate the story, it needs to be
    split up and written again.
Commitment phase
   This phase involves the determination of costs, benefits,
    and schedule impact. It has four components:
     Sort by Value: Customer sorts the user stories by business
      value
     Sort by Risk: Developer sorts the stories by risk.
     Set Velocity: Developer determines at what speed they can
      perform the project.
     Choose scope: The user stories that will be finished in the next
      release will be picked. Based on the user stories the release
      date is determined.
Steering phase
   Within the steering phase the developer
    and customer can "steer" the process.
    That is to say, they can make changes.
    Individual user stories, or relative priorities
    of different user stories, might change;
    estimates might prove wrong. This is the
    chance to adjust the plan accordingly.
Iteration Planning
 Plans the activities and tasks of the
  developers. In this process the customer
  is not involved..
  Role : Developers
 3 Phases of Iteration Planning
Iteration Planning Phases
   Exploration Phase: requirement will be translated to different tasks.
    The tasks are recorded on task cards.

   Commitment Phase: The tasks will be assigned to the programmers
    and the time it takes to complete will be estimated.

   Steering Phase: The tasks are performed and the end result is
    matched with the original user story
Exploration phase
   It is about creating tasks and estimating their
    implementation time.
   Translate the requirement to tasks: Place on task cards.
   Combine/Split task: If the programmer cannot estimate
    the task because it is too small or too big, the
    programmer will need to combine or split the task.
   Estimate task: Estimate the time it will take to implement
    the task
Commitment phase
   Within the commitment phase of the iteration planning
    programmers are assigned tasks that reference the different
    user stories.

   A programmer accepts a task, each programmer picks a task
    for which he or she takes responsibility.

   Programmer estimates the task, because the programmer is
    now responsible for the task, he or she should give the
    eventual estimation of the task.
Commitment phase                                Cont….

   Set load factor: The load factor represents the ideal amount of
    hands-on development time per programmer within one
    iteration. For example, in a 40-hour week, with 5 hours
    dedicated to meetings, this would be no more than 35 hours.

   Balancing: When all programmers within the team have been
    assigned tasks, a comparison is made between the estimated
    time of the tasks and the load factor. Then the tasks are
    balanced out among the programmers. If a programmer is
    overcommitted, other programmers must take over some of
    his or her tasks and vice versa.
Implementation
   The implementation of the tasks is done during the
    steering phase of the iteration planning.
   Get a task card: The programmer gets the task card for
    one of the tasks to which he or she has committed.
   Find a Partner: The programmer will implement this task
    along with another programmer. This is further discussed
    in the practice Pair Programming.
   Design the task: If needed, the programmers will design
    the functionality of the task.
Implementation                        Cont…

   Write unit test: Before the programmers start coding the
    functionality they first write automated tests. This is
    further discussed in the practice Unit Testing.
   Write code: The programmers start to code.
   Run test: The unit tests are run to test the code.
   Refactor: Remove any code smell from the code.
   Run Functional test: Functional tests (based on the
    requirements in the associated user story and task card)
    are run.
XP Artifacts
 Story Cards
 Task Cards
User Stories
   A short description of the behavior of the system from
    the point of view of the Customer
   Use the Customer’s terminology without technical jargon
   One for each major feature in the system
   Must be written by the users
   Are used to create time estimates for release planning
   Replace a large Requirements Document
User Stories continued
   Drive the creation of the acceptance tests
     Must be one or more tests to verify that a story has been
    properly implemented
   Should only provide enough detail to make a reasonably low
    risk estimate of how long the story will take to implement.
   Written by the Customer, not the Programmers, using the
    Customer’s terminology
   More “friendly” than formal Use Cases
User Stories continued
   User stories have three crucial aspects:
   Card
       Enough information to identify the story
   Conversation
      Customer and Programmers discuss the story to elaborate on
      the details
     Verbal when possible, but documented when required
   Confirmation
       Acceptance tests to confirm that the story has been properly
        implemented
User Story Examples
 A user wants access to the system, so
  they find a system administrator, who
  enters in the user's First Name, Last
  Name, Middle Initial, E-Mail Address,
  Username (unique), and Phone Number.
 Risk: Low Cost: 2 points
Research Issues
   What kind of projects can benefit from XP? What
    projects are “too big” and therefore outside the
    scope of XP?
   How do we reconcile past research, which suggests
    that the lack of a formal specification is a recipe for
    project disaster?
   What is the effect of the lack of focus, in general,
    with a formal requirements engineering process?
   XP requires customers that can write user stories,
    assist in planning releases, perform acceptance
    tests, and be available to answer questions on-site
    with the developers. Ideally, this is one person who
    can represent a group of users.
Research Issues
   What are the “ideal” characteristics that this person
    must possess? How are different, and potentially
    conflicting, stories from multiple “customers”
    handled?
   What are the implications of not having a formal
    document (such as an SRS) to serve as a binding
    contract?
   How is change managed after release? How is the
    potential impact of changes assessed? Can the
    “cost of change” curve truly be flattened with XP?
   Does the use of XP indeed result in project
    “success”? Are the success factors for XP
    implementation different than for the traditional
    methodologies?

Contenu connexe

Tendances

Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsHassan A-j
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPTMohit Kumar
 
What is agile model?Working of agile model
What is agile model?Working of agile modelWhat is agile model?Working of agile model
What is agile model?Working of agile modelzoomers
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLESwarnima Tiwari
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process FrameworkJAINAM KAPADIYA
 
SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING Abhinav Shukla
 
Agile Software Development Model
Agile Software Development ModelAgile Software Development Model
Agile Software Development ModelRitika Balagan
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)ShudipPal
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSaqib Raza
 
Agile software development
Agile software developmentAgile software development
Agile software developmentRajesh Piryani
 
Agile Process models
Agile Process modelsAgile Process models
Agile Process modelsStudent
 
Introduction To Agile
Introduction To AgileIntroduction To Agile
Introduction To AgileKnoldus Inc.
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software EngineeringPurvik Rana
 

Tendances (20)

Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPT
 
Software requirements
Software requirementsSoftware requirements
Software requirements
 
What is agile model?Working of agile model
What is agile model?Working of agile modelWhat is agile model?Working of agile model
What is agile model?Working of agile model
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 
Software testing
Software testing Software testing
Software testing
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Rad model
Rad modelRad model
Rad model
 
SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING
 
Agile Software Development Model
Agile Software Development ModelAgile Software Development Model
Agile Software Development Model
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Agile Methodology ppt
Agile Methodology pptAgile Methodology ppt
Agile Methodology ppt
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Agile Process models
Agile Process modelsAgile Process models
Agile Process models
 
Introduction To Agile
Introduction To AgileIntroduction To Agile
Introduction To Agile
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
 

Similaire à Extreme Programming (XP) Methodology

Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XPSemen Arslan
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsultingtalkwiseone
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsultingtalkwiseone
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineeringprogramizconsultancy
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandDavid O'Dowd
 
Using Agile Processes on Documentum Projects
Using Agile Processes on Documentum ProjectsUsing Agile Processes on Documentum Projects
Using Agile Processes on Documentum Projectsmufflerdog
 
Introduction to Scrum.ppt
Introduction to Scrum.pptIntroduction to Scrum.ppt
Introduction to Scrum.pptMohan Late
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Using Agile Processes on Documentum Projects
Using Agile Processes on Documentum ProjectsUsing Agile Processes on Documentum Projects
Using Agile Processes on Documentum ProjectsBlueFish
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile EngineeringJohn Lewis
 
Software presentation
Software presentationSoftware presentation
Software presentationJennaPrengle
 

Similaire à Extreme Programming (XP) Methodology (20)

Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XP
 
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
Extreme  Programming    Talk Wise  Consulting   Www.TalkwiseconsultingExtreme  Programming    Talk Wise  Consulting   Www.Talkwiseconsulting
Extreme Programming Talk Wise Consulting Www.Talkwiseconsulting
 
Extreme programming talk wise consulting - www.talkwiseconsulting
Extreme programming   talk wise consulting - www.talkwiseconsultingExtreme programming   talk wise consulting - www.talkwiseconsulting
Extreme programming talk wise consulting - www.talkwiseconsulting
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
xp.ppt programming softwares engineering
xp.ppt programming softwares engineeringxp.ppt programming softwares engineering
xp.ppt programming softwares engineering
 
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest IrelandMarkus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland
 
Using Agile Processes on Documentum Projects
Using Agile Processes on Documentum ProjectsUsing Agile Processes on Documentum Projects
Using Agile Processes on Documentum Projects
 
Introduction to Scrum.ppt
Introduction to Scrum.pptIntroduction to Scrum.ppt
Introduction to Scrum.ppt
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Using Agile Processes on Documentum Projects
Using Agile Processes on Documentum ProjectsUsing Agile Processes on Documentum Projects
Using Agile Processes on Documentum Projects
 
Lect7
Lect7Lect7
Lect7
 
Lect7
Lect7Lect7
Lect7
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile Engineering
 
01 the value of quality
01   the value of quality01   the value of quality
01 the value of quality
 
Ch17
Ch17Ch17
Ch17
 
software lecture
software lecturesoftware lecture
software lecture
 
Scrum overview
Scrum overviewScrum overview
Scrum overview
 
Software presentation
Software presentationSoftware presentation
Software presentation
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 

Dernier

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 

Dernier (20)

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 

Extreme Programming (XP) Methodology

  • 2. Introduction Extreme Programming?  An agile development methodology XP is “a light- weight methodology for small to medium-sized teams developing software in the face of vague or rapidly changing requirements  It works by bringing the whole team together in the presence of simple practices, with enough feedback to enable the team to see where they are and to tune the practices to their unique situation?  Created by Kent Beck in the mid 1990’s  A set of 12 key practices taken to their “extremes”  A mindset for developers and customers
  • 3. Extreme Programming  Hence XP is a lightweight (agile) process:  Instead of lots of documentation nailing down what customer wants up front, XP emphasizes plenty of feedback  Embrace change: iterate often, design and redesign, code and test frequently, keep the customer involved  Deliver software to the customer in short (2 week) iterations  Eliminate defects early, thus reducing costs
  • 8. Four Core Values of XP  Communication  Simplicity  Feedback  Courage
  • 9. XP Practices  The Planning Game  Small Releases  Metaphor  Simple Design  Testing  Refactoring  Pair Programming  Collective Ownership  Continuous Integration  40-Hour Workweek  On-site Customer  Coding Standards
  • 10. The Planning Game  Planning for the upcoming iteration  Uses stories provided by the customer  Technical persons determine schedules, estimates, costs, etc  A result of collaboration between the customer and the developers Advantages  Reduction in time wasted on useless features  Greater customer appreciation of the cost of a feature  Less guesswork in planning Disadvantages  Customer availability  Is planning this often necessary?
  • 11. Small Releases  Small in terms of functionality  Less functionality means releases happen more frequently  Support the planning game Advantages  Frequent feedback  Tracking  Reduce chance of overall project slippage Disadvantages  Not easy for all projects  Not needed for all projects  Versioning issues
  • 12. Metaphor  The oral architecture of the system  A common set of terminology Advantages  Encourages a common set of terms for the system  Reduction of buzz words and jargon  A quick and easy way to explain the system Disadvantages  Often the metaphor is the system  Another opportunity for miscommunication  The system is often not well understood as a metaphor
  • 13. Simple Design  K.I.S.S (Keep it simple Stupid)  Do as little as needed, nothing more Advantages  Time is not wasted adding superfluous functionality  Easier to understand what is going on  Refactoring and collective ownership is made possible  Helps keeps programmers on track Disadvantages  What is “simple?”  Simple isn’t always best
  • 14. Testing  Unit testing  Test-first design  All automated Advantages  Unit testing promote testing completeness  Test-first gives developers a goal  Automation gives a suite of regression test Disadvantages  Automated unit testing isn’t for everything  Reliance on unit testing isn’t a good idea  A test result is only as good as the test itself
  • 15. Refactoring  Changing how the system does something but not what is done  Improves the quality of the system in some way Advantages  Prompts developers to proactively improve the product as a whole  Increases developer knowledge of the system Disadvantages  Not everyone is capable of refactoring  Refactoring may not always be appropriate  Would upfront design eliminate refactoring?
  • 16. Pair Programming  Two Developers, One monitor, One Keyboard  One “drives” and the other thinks  Switch roles as needed Advantages  Two heads are better than one  Focus  Two people are more likely to answer the following questions:  Is this whole approach going to work?  What are some test cases that may not work yet?  Is there a way to simplify this? Disadvantages  Many tasks really don’t require two programmers  A hard sell to the customers
  • 17. Collective Ownership  The idea that all developers own all of the code  Enables refactoring Advantages  Helps mitigate the loss of a team member leaving  Promotes developers to take responsibility for the system as a whole rather then parts of the system Disadvantages  Loss of accountability  Limitation to how much of a large system that an individual can practically “own”
  • 18. Continuous Integration  New features and changes are worked into the system immediately  Code is not worked on without being integrated for more than a day Advantages  Reduces to lengthy process  Enables the Small Releases practice Disadvantages  The one day limit is not always practical  Reduces the importance of a well-thought-out architecture
  • 19. 40-Hour Week  The work week should be limited to 40 hours  Regular overtime is a symptom of a problem and not a long term solution Advantages  Most developers lose effectiveness past 40-Hours  Value is placed on the developers well-being  Management is forced to find real solutions Disadvantages  The underlying principle is flawed  40-Hours is a magic number  Some may like to work more than 40-Hours
  • 20. On-Site Customer  Acts to “steer” the project  Gives quick and continuous feedback to the development team Advantages  Can give quick and knowledgeable answers to real development questions  Makes sure that what is developed is what is needed  Functionality is prioritized correctly Disadvantages  Difficult to get an On-Site Customer  The On-Site customer that is given may not be fully knowledgeable about what the company  May not have authority to make many decisions  Loss of work to the customer’s company
  • 21. Coding Standards  All code should look the same  It should not possible to determine who coded what based on the code itself Advantages  Reduces the amount of time developers spend reformatting other peoples’ code  Reduces the need for internal commenting  Call for clear, unambiguous code Disadvantages  Degrading the quality of inline documentation
  • 22. Extreme Programming Roles  Customer  Writes User Stories and specifies Functional Tests  Sets priorities, explains stories  May or may not be an end-user  Has authority to decide questions about the stories  Programmer  Estimates stories  Defines Tasks from stories, and estimates  Implements Stories and Unit Tests  Coach  Watches everything, sends obscure signals, makes sure the project stays on course  Helps with anything
  • 23. XP Roles continued  Tracker  Monitors Programmers’ progress, takes action if things seem to be going off track.  Actions include setting up a meeting with Customer,  Coach or another Programmer to help  Tester  Implements and runs Functional Tests (not Unit Tests!)  Graphs results, and makes sure people know when test results decline.  Doomsayer  Ensures that everybody knows the risks involved  Ensures that bad news isn't hidden, glossed over, or blown out of proportion
  • 24. XP Roles continued  Manager  Schedules meetings (e.g. Iteration Plan, Release Plan), makes sure the meeting process is followed, records results of meeting for future reporting, and passes to the Tracker  Possibly responsible to the Gold Owner.  Goes to meetings, brings back useful information  Gold Owner  The person funding the project, which may or may not be the same as the Customer
  • 25. Extreme Programming Activities  Coding: You code because if you don't code, at the end of the day you haven't done anything.  Testing: You test because if you don't test, you don't know when you are done coding  Listening: You listen because if you don't listen you don't know what to code or what to test  Designing: And you design so you can keep coding and testing and listening indefinitely (good design allows extension of the system with changes in only one place)
  • 26. Release Planning Phases  Exploration Phase: In this phase the customer will provide a shortlist of high-value requirements for the system. These will be written down on user story cards.  Commitment Phase: Within the commitment phase customer and developers will commit themselves to the functionality that will be included and the date of the next release.  Steering Phase: In the steering phase the plan can be adjusted, new requirements can be added and/or existing requirements can be changed or removed
  • 27. Exploration Phase  Iterative process of gathering requirements and estimating the work impact of each of those requirements. Write a Story: Customer has come with a problem; during a meeting, Developer will try to define this problem and get requirements. Based on the business problem, a story (user story) has to be written. This is done by Customer, where they point out what they want a part of the system to do. It is important that developer has no influence on this story. The story is written on a user story card. Roles : Customer , Developer Artifact : User Stories
  • 28. Exploration Phase  Estimate a Story: Developer estimates how long it will take to implement the work implied by the story card. Developer can analyze or solve the problem. These solutions are used for estimation and discarded once everyone gets clear visualization of the problem. Again, this may not influence the business requirements.  Split a Story: Design critical complexity has to be addressed before starting the iteration planning. If developer isn't able to estimate the story, it needs to be split up and written again.
  • 29. Commitment phase  This phase involves the determination of costs, benefits, and schedule impact. It has four components:  Sort by Value: Customer sorts the user stories by business value  Sort by Risk: Developer sorts the stories by risk.  Set Velocity: Developer determines at what speed they can perform the project.  Choose scope: The user stories that will be finished in the next release will be picked. Based on the user stories the release date is determined.
  • 30. Steering phase  Within the steering phase the developer and customer can "steer" the process. That is to say, they can make changes. Individual user stories, or relative priorities of different user stories, might change; estimates might prove wrong. This is the chance to adjust the plan accordingly.
  • 31. Iteration Planning  Plans the activities and tasks of the developers. In this process the customer is not involved.. Role : Developers  3 Phases of Iteration Planning
  • 32. Iteration Planning Phases  Exploration Phase: requirement will be translated to different tasks. The tasks are recorded on task cards.  Commitment Phase: The tasks will be assigned to the programmers and the time it takes to complete will be estimated.  Steering Phase: The tasks are performed and the end result is matched with the original user story
  • 33. Exploration phase  It is about creating tasks and estimating their implementation time.  Translate the requirement to tasks: Place on task cards.  Combine/Split task: If the programmer cannot estimate the task because it is too small or too big, the programmer will need to combine or split the task.  Estimate task: Estimate the time it will take to implement the task
  • 34. Commitment phase  Within the commitment phase of the iteration planning programmers are assigned tasks that reference the different user stories.  A programmer accepts a task, each programmer picks a task for which he or she takes responsibility.  Programmer estimates the task, because the programmer is now responsible for the task, he or she should give the eventual estimation of the task.
  • 35. Commitment phase Cont….  Set load factor: The load factor represents the ideal amount of hands-on development time per programmer within one iteration. For example, in a 40-hour week, with 5 hours dedicated to meetings, this would be no more than 35 hours.  Balancing: When all programmers within the team have been assigned tasks, a comparison is made between the estimated time of the tasks and the load factor. Then the tasks are balanced out among the programmers. If a programmer is overcommitted, other programmers must take over some of his or her tasks and vice versa.
  • 36. Implementation  The implementation of the tasks is done during the steering phase of the iteration planning.  Get a task card: The programmer gets the task card for one of the tasks to which he or she has committed.  Find a Partner: The programmer will implement this task along with another programmer. This is further discussed in the practice Pair Programming.  Design the task: If needed, the programmers will design the functionality of the task.
  • 37. Implementation Cont…  Write unit test: Before the programmers start coding the functionality they first write automated tests. This is further discussed in the practice Unit Testing.  Write code: The programmers start to code.  Run test: The unit tests are run to test the code.  Refactor: Remove any code smell from the code.  Run Functional test: Functional tests (based on the requirements in the associated user story and task card) are run.
  • 38. XP Artifacts  Story Cards  Task Cards
  • 39. User Stories  A short description of the behavior of the system from the point of view of the Customer  Use the Customer’s terminology without technical jargon  One for each major feature in the system  Must be written by the users  Are used to create time estimates for release planning  Replace a large Requirements Document
  • 40. User Stories continued  Drive the creation of the acceptance tests  Must be one or more tests to verify that a story has been properly implemented  Should only provide enough detail to make a reasonably low risk estimate of how long the story will take to implement.  Written by the Customer, not the Programmers, using the Customer’s terminology  More “friendly” than formal Use Cases
  • 41. User Stories continued  User stories have three crucial aspects:  Card  Enough information to identify the story  Conversation  Customer and Programmers discuss the story to elaborate on the details  Verbal when possible, but documented when required  Confirmation  Acceptance tests to confirm that the story has been properly implemented
  • 42. User Story Examples  A user wants access to the system, so they find a system administrator, who enters in the user's First Name, Last Name, Middle Initial, E-Mail Address, Username (unique), and Phone Number.  Risk: Low Cost: 2 points
  • 43.
  • 44. Research Issues  What kind of projects can benefit from XP? What projects are “too big” and therefore outside the scope of XP?  How do we reconcile past research, which suggests that the lack of a formal specification is a recipe for project disaster?  What is the effect of the lack of focus, in general, with a formal requirements engineering process?  XP requires customers that can write user stories, assist in planning releases, perform acceptance tests, and be available to answer questions on-site with the developers. Ideally, this is one person who can represent a group of users.
  • 45. Research Issues  What are the “ideal” characteristics that this person must possess? How are different, and potentially conflicting, stories from multiple “customers” handled?  What are the implications of not having a formal document (such as an SRS) to serve as a binding contract?  How is change managed after release? How is the potential impact of changes assessed? Can the “cost of change” curve truly be flattened with XP?  Does the use of XP indeed result in project “success”? Are the success factors for XP implementation different than for the traditional methodologies?