david stotts dept. of computer science univ. of north carolina at chapel hill extreme programming
TRANSCRIPT
![Page 1: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/1.jpg)
DAVID STOTTS
DEPT. OF COMPUTER SCIENCEUNIV. OF NORTH CAROLINA AT CHAPEL HILL
Extreme Programming
![Page 2: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/2.jpg)
In Reaction to…
“Big Process”
SEI Capability Maturity Model (CMM)
“Heavy” development practices
Hard to steer, unresponsive
Can we do better for smaller efforts?
![Page 3: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/3.jpg)
Extreme Programming
Kent Beck, late 90’s
One of several “Agile” processes
Small teams (2 to 8 people)
Modest projects
Emphasis on customer as project driver
![Page 4: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/4.jpg)
“Change Happens”
Embrace change as normal
Not an aberration whose cause needs to be found
Process must be lightweight and agile to respond to change
“Steer”able
![Page 5: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/5.jpg)
XP Core Values
CommunicationSimplicityFeedbackCourage (fearlessness)
![Page 6: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/6.jpg)
XP Practices
Pair programmingTest-first developmentSimple design: Add no function
before its timeRe-factoringThe planning gameUser/client on-site
![Page 7: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/7.jpg)
XP Practices
Small releasesContinuous integrationCollective code ownershipCoding standards (and self-
documenting code)No overtimeSystem metaphor
![Page 8: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/8.jpg)
Why Agile Methods?
Why is change inevitable?People…People are noisy and unpredictableProcess involving people needs
small steps, constant measurement to be steerable
![Page 9: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/9.jpg)
eXtreme Programming
Try it …
Further reading: “XP” by J. Highsmith
![Page 10: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/10.jpg)
Test-first development
If a class does not have automatic tests, you must assume it does not work
Regression testing … tests retain value
JUnit (Beck & Gamma): industrial-strength regression testing for the common man
![Page 11: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/11.jpg)
JUnit
Small, easy to learn, easy to use, effective
Java classes
TestCase, Suite, runners
15 other language implementations
http://www.junit.orghttp://www.xprogramming.com/software.htm
![Page 12: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/12.jpg)
JUnit Test Class
One test method per target method
“test anything that can break” …
“don’t test anything that can’t”
Can we give better guidance?
Can we systematically produce consistent and complete test classes?
![Page 13: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/13.jpg)
The Planning Game
Informal brainstorming… few hours to a few days
Customer talks about what he/she wants
Engineers listen, ask questions, make “user stories”
Each story is a card, a few sentences, describes some function of the system
![Page 14: DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming](https://reader036.vdocuments.site/reader036/viewer/2022070404/56649f335503460f94c502d5/html5/thumbnails/14.jpg)
The Planning Game
Engineers “cost” each story
Customer “values” each story
Rank order of cards
Customer selects top 4 or 5 items…
Engineers produce Release One