Getting Started Introducing the Core XP Practices Based on Extreme Software Engineering Daniel H. Steinberg & Daniel W. Palmer.

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

Based on the XP Game by Vera Peeters and Pascal Van Cauwenberghe ( 1Software Engineering /Spring.
System Analysis & Design Methods V Extreme Programming XP/dX.
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
BTS530: Major Project Planning and Design Iterative Development References: Agile & Iterative Development, by Craig Larman, 2004, Addison Wesley. Agile.
Agile Development.
Extreme Programming Collaboration in Software Development Process.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Designing Course-Level Performance Measures Aligned with Program-Level Learning Outcomes Steven Beyerlein, Mechanical Engineering University of Idaho Daniel.
Project title Team Members. Project Title Brief description of the project in bullet form.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Diane Pozefsky. 1960’s  60’s “Cowboys” wrote software anyway that they could Difference between best programmers and worst as high as 28:1 (many sources)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Test-Driven Development With Visual Studio 2005 Erno de Weerd Info Support.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Extreme programming overview Agenda  Extreme programming goals  Extreme programming values  Extreme programming practices  The Extreme programming.
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP (not Microsoft) e X treme P rogramming Can KOMAR
EXtreme Programming Development Adrian Williamson People, Technology and People and Technology Consultant.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Methodologies Extreme Programming.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Extreme Programming (XP) XP is an agile methodology: –aims to be responsive to change Theme running through XP is the importance of communication –amongst.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Extreme Programming Based on and
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Toward Maturity Model for eXtreme Programming Copyright, 2001 © J. Nawrocki, B. Walter, A.. Wojciechowski
Continuous Delivery and Quality Monitoring 1 iCSC2016, Kamil Henryk Król, CERN Continuous Delivery and Quality Monitoring Kamil Henryk Król CERN Inverted.
Continuous Delivery and Quality Monitoring
Keeping Long-term Training Programs Alive Kate Baade & Nathan Wale
Appendix B Agile Methodologies

MANAGEMENT OF STATISTICAL PRODUCTION PROCESS METADATA IN ISIS
Tools for integrating learning and knowledge practice into non-profits
Iterative and Agile Development
Station Method in Education
Etrics XP Metrics.
Extreme Programming.
Software Maintenance
Two part course Software Engineering option only!
What do you need to know about XP?
LO3 - Create the Game 2016 Specification - L/615/1355
Agile and XP Development
COMP 208/214/215/216 Lecture 3 Planning.
ICTSAS305 Provide Advice to Clients
Agile and XP Development
Chapter 3 – Agile Software Development
Agile and XP Development
Practical Software Engineering
Software Engineering Fundamentals
Coming up: What is Agile?
Planning and Estimation.
Project Planning and Estimation
Agile Development – a new way of software development?
Extreme Programming.
Computational Thinking
Iteration Planning.
Planning and Estimation.
Extreme Programming (and Pair Programming)
Presentation transcript:

Getting Started Introducing the Core XP Practices Based on Extreme Software Engineering Daniel H. Steinberg & Daniel W. Palmer

2 A Spike Is A Quick Investigation An estimate based on no data is worthless. When estimating the time for a kind of task that is new to you, spike the task. Example If you are to do a Java RMI task, implement a Java RMI “Hello, world” program before estimating the task’s time.

3 Advice: Spike the XP Process Experiment with some core XP practices before starting a client’s project.

4 Practice: User Stories A user story is a brief description of some application function. Process –Client initiates a user story –Developers refine it via a Q&A process –Team determines tests for the function. –Developers estimate the story (I.e., the time to design, implement, & test it).

5 Practice: Estimates Be self-aware as a developer –Publicly record your estimate. –Note the actual time. –Investigate what needs to be changed in your estimation process. This self-awareness process improves your estimation skill dramatically.

6 Practice: Living with Set Priorities Client prioritizes the user stories Developers decompose stories into a poset of tasks Developers estimate the tasks Developers develop (in pairs) highest priority stories that can be done within time limit. –Estimates may change –Immediately communicate changes to team.

7 Practice: Pairing Pair with all developers on your team during the XP spike. Reserve judgment about pairing’s merits until you have paired with all other developers. Self-awareness: What have you learned from the process of completing the task at hand? Spread your knowledge: Change partners.

8 Practice: Test First “Test first” is special case of general advice: Clearly understand a problem before attempting to solve it. If you develop tests first, you know when you have completed the task. (to the extent that your tests are thorough) Tests monitor the integrity of the system when code is added/modified Test enable change w/o worry. (to the extent that your tests are thorough)

9 Practice: Continuous Design Improvement Improve the code immediately, even in small ways. –Improve the name of variables, methods, & classes. –Decompose methods so the name clearly indicates what it does. –Never duplicate code. –Spot patterns (with experience)

10 Synergies Refactoring is safe because tests protect you. You learn patterns & other practices from pairing, yielding more –opportunities for refactoring –skill at estimating Pairing makes it easier to do the right thing (e.g., test first).

11 Choosing an XP Spike You don’t need to finish the spike. Pick something fun or interesting. –The bowling scoring problem –Tetris or some other video game –Visualizing the Mandelbrot set –Family tree application –Medical history application –Spike a Java technology Java RMI JDBC