Introduction to eXtreme Programming (XP) Collaboration in Software Development Process.
Introduction To Extreme Programming
-
Upload
joe-drumgoole -
Category
Technology
-
view
3.068 -
download
0
description
Transcript of Introduction To Extreme Programming
![Page 1: Introduction To Extreme Programming](https://reader036.fdocuments.net/reader036/viewer/2022082920/5556f5ced8b42a4a418b4610/html5/thumbnails/1.jpg)
Introduction to Extreme Programming
Joe Drumgoole
10-December-2004
![Page 2: Introduction To Extreme Programming](https://reader036.fdocuments.net/reader036/viewer/2022082920/5556f5ced8b42a4a418b4610/html5/thumbnails/2.jpg)
Global Product Engineering Slide 2 10-Dec-2004
What is Extreme Programming?
Doing things we know work to the extreme! Testing is Good –
– Write tests for everything– Write tests first– Write tests that fail and then fix them
Code Review is Good –– Review every line of code by ensuring that all code is written by
programmers working in pairs (pair-programming)
Integration is Good –– Integrate as often as possible (daily, hourly builds)– Use tests to identify regressions
![Page 3: Introduction To Extreme Programming](https://reader036.fdocuments.net/reader036/viewer/2022082920/5556f5ced8b42a4a418b4610/html5/thumbnails/3.jpg)
Global Product Engineering Slide 3 10-Dec-2004
Manifesto for Agile Software Development
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
![Page 4: Introduction To Extreme Programming](https://reader036.fdocuments.net/reader036/viewer/2022082920/5556f5ced8b42a4a418b4610/html5/thumbnails/4.jpg)
Global Product Engineering Slide 4 10-Dec-2004
XP – The Players
The Customer– Onsite– Engaged– Writes user stories– Defines Priorities
The Programmer– Volunteers to implement specific stories– Provides estimates– Splits stories where required– Identifies risks/difficulties– Implements
The Project Manager– Removes obstacles– Tracks Progress– Plots Project Velocity
![Page 5: Introduction To Extreme Programming](https://reader036.fdocuments.net/reader036/viewer/2022082920/5556f5ced8b42a4a418b4610/html5/thumbnails/5.jpg)
Global Product Engineering Slide 5 10-Dec-2004
XP – Planning – User Stories
Requirements = User Stories User Stories are :-
– Short (Capture on a post-it sized note)– High level– Always express end-user functionality and/or features
User Stories are always written by the Customer User Stories lead to the creation of Acceptance Tests Acceptance Tests are executable demonstrations of features The complete set of stories is then used to create Release Plan
![Page 6: Introduction To Extreme Programming](https://reader036.fdocuments.net/reader036/viewer/2022082920/5556f5ced8b42a4a418b4610/html5/thumbnails/6.jpg)
Global Product Engineering Slide 6 10-Dec-2004
XP – Planning – Release Planning
Each programmer gives an estimate as to the time need to complete a given story
The development cycle is divided into Iterations Each iteration should span about 2 to 3 weeks Programmers plan each iteration when it starts Customer assigns priority at the start of each iteration Number of Stories per Iteration = Project Velocity Project Velocity for the next iteration is defined by what
happened in the last iteration
![Page 7: Introduction To Extreme Programming](https://reader036.fdocuments.net/reader036/viewer/2022082920/5556f5ced8b42a4a418b4610/html5/thumbnails/7.jpg)
Global Product Engineering Slide 7 10-Dec-2004
XP - Coding
Customer is always available Coding is to agreed standards Test driven development Code is written in pairs (Pair Programming) Code is owned by everybody One pair integrates at a time Integration is continuous throughout the project NO OVERTIME
![Page 8: Introduction To Extreme Programming](https://reader036.fdocuments.net/reader036/viewer/2022082920/5556f5ced8b42a4a418b4610/html5/thumbnails/8.jpg)
Global Product Engineering Slide 8 10-Dec-2004
XP - Design
The Simplest Possible Solution Spike solutions for thorny situations Refactor for simplicity and clarity No Design for tomorrow
![Page 9: Introduction To Extreme Programming](https://reader036.fdocuments.net/reader036/viewer/2022082920/5556f5ced8b42a4a418b4610/html5/thumbnails/9.jpg)
Global Product Engineering Slide 9 10-Dec-2004
XP - Testing
Test Driven Development– Inverts your point of view– Forces you to think about integration– Leads to cleaner interfaces– Tests prove existence
All code must pass unit tests prior to integration All bugs lead to unit tests GUIs are code free, put the code in the model Acceptance Tests are run weekly and the score is a progress
measure What to test ? Test everything that might break
![Page 10: Introduction To Extreme Programming](https://reader036.fdocuments.net/reader036/viewer/2022082920/5556f5ced8b42a4a418b4610/html5/thumbnails/10.jpg)
Global Product Engineering Slide 10 10-Dec-2004
Test Driven Development
Write Tests First Tests force user view/integration view/interface view Tests demonstrate progress Tests prove existence Automated test for everything that could break
![Page 11: Introduction To Extreme Programming](https://reader036.fdocuments.net/reader036/viewer/2022082920/5556f5ced8b42a4a418b4610/html5/thumbnails/11.jpg)
Global Product Engineering Slide 11 10-Dec-2004
XP - Problems
Many customers No Customer Reluctant Customer Team skill set Release Constraints User Training No time for tests Architecture Astronautics Waterfall Documentation
![Page 12: Introduction To Extreme Programming](https://reader036.fdocuments.net/reader036/viewer/2022082920/5556f5ced8b42a4a418b4610/html5/thumbnails/12.jpg)
Global Product Engineering Slide 12 10-Dec-2004
Conclusions
XP has a proven track record Its easy to implement Has excellent tool support Might be a good fit at Oracle if we can engage our customers!