Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Extreme Programming

Extreme Programming

My presentation at Agile For Innovation http://www.agileforinnovation.com/ 14 march 2014

Matteo Vaccari

March 14, 2014
Tweet

More Decks by Matteo Vaccari

Other Decks in Technology

Transcript

  1. 5

  2. We were doing incremental development as early as 1957, ...

    the technique used was, as far as I can tell, indistinguishable from XP. Jerry Weinberg Craig Larman: Iterative and Incremental Development: A Brief History 6
  3. "Perlis: I’d like to read three sentences to close this

    issue. 1. A software system can best be designed if the testing is interlaced with the designing instead of being used after the design. 2. A simulation which matches the requirements contains the control which organizes the design of the system. 3. Through successive repetitions of this process of interlaced testing and design the model ultimately becomes the software system itself. 1968 NATO Conference on Software Engineering 7
  4. Involve the customer through small, incremental releases of a working

    program http://mgintravels.wordpress.com/2013/03/04/camping-in-the-olive-gardens-of-patara/ 9
  5. XP The Planning Game Small releases Metaphor Simple Design Testing

    Refactoring Pair Programming Collective Ownership Continuous Integration 40-Hour Week On-Site Customer Coding Standards Practices Values Simplicity Courage Communication Feedback 11
  6. 1. Planning Game (Scrum) Planning game Business people Scope Priority

    Dates Technical people Estimates Consequences Process 12
  7. 2. Small Releases (Continuous Delivery) Subversion Sviluppatori Jenkins Server di

    collaudo 1. Commit 2. Pull changes 3. Build 4. Unit test 5. Deploy 6. Acceptance tests 7. Success! or Failure! 13
  8. 4. Simple Design 1. Runs all the tests 2. Has

    no duplicated logic 3. States every intention important to the programmers 4. Has the fewest possible classes and methods 15
  9. 5. Testing (TDD, BDD, ATDD) The result is a program

    that becomes more and more confident over time---it becomes more capable of accepting change, not less. The customer writes Acceptance Tests 16
  10. 6. Refactoring When implementing a program feature, the programmers always

    ask if there is a way of changing the existing program to make adding the feature simpler. After they have added a feature, they ask if they can now see how to make the program simpler 17
  11. Community! Milano XPUG User Group Italian Agile Day Agile Coach

    Camp, 5-7 giugno milano-xpug.pbworks.com agileday.it accitaly.wordpress.com https://it.groups.yahoo.com/neo/groups/extremeprogramming-it/info 28
  12. Grazie per l’attenzione! Sono freelance! Contattami! Corso TDD: 17-18 aprile,

    Bologna 12-13 giugno, Milano www.avanscoperta.it 29