![Page 1: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/1.jpg)
Practical CourseXt P ieXtreme Programming
B-IT/IPEC S S h l 2008Summer School 2008
Organized byOrganized byProf. Dr. Armin B. Cremers, Holger Mügge, Daniel Speicher, Pascal Bihler, Mark Schmatz
![Page 2: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/2.jpg)
Bonn-Aachen International Center for Information Technology for Information Technology
Established in fall 2002 by:
International Program of Excellence (IPEC)International Program of Excellence (IPEC)
„The International Program of Excellence in Computer Science (IPEC)at the B-IT offers, mainly in the time between terms, compact teaching units on the highest level This results in a speed up of teaching units on the highest level. This results in a speed-up of studying and in a simultaneous increase of quality.“
![Page 3: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/3.jpg)
eXtreme Programming
An Introduction
![Page 4: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/4.jpg)
What is Extreme Programming?g g
• XP is aXP is a …– lightweight, – efficient, – low-risk, – flexible,
di t bl – predictable, – scientific and – fun fun
… way to develop software.
• Kent Beck, eXtreme Programming eXplained, Addison Wesley 1999
![Page 5: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/5.jpg)
How expensive is change?p g• Traditional view / Experience
osts
Exponential growth
Chan
ge c Exponential growth
Elicitation Analysis Design Implementation Testing Deployment Deployed
![Page 6: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/6.jpg)
How expensive is change?p g• Agile view / Experience
This is the core
osts
This is the core assumption (and goal)
of agile processes.
Chan
ge c
Growth of change costs change costs
can be controlled
Progress
![Page 7: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/7.jpg)
How can this be achieved? Values!• Agile Manifesto ought to value…
Individuals and interactions processes and tools
http://agilemanifesto.org
Individuals and interactions over processes and toolsWorking software over comprehensive documentation
Customer collaboration over contract negotiationResponding to change over following a plan
There is value in the right side items, but we value the left ones more.g
• Extreme Programming Values
– Communication– Simplicity
http://en.wikipedia.org/wiki/Extreme_Programming#XP_values
p y– Feedback– Courage– Respect
![Page 8: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/8.jpg)
How can this be achieved? XP Practices!
![Page 9: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/9.jpg)
Rapid feedback is the secret of successp
XP is like driving.
"Driving is not about getting the car going in the right direction. g
Driving is about constantly paying constantly paying
attention,making
littl tia little correctionthis way,
a little correctionthat way."
(Kent Beck)(Kent Beck)
![Page 10: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/10.jpg)
Remain responsive to change at any timep g y
![Page 11: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/11.jpg)
eXtreme Programming
Experiences from our coursesp
![Page 12: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/12.jpg)
Things that worked! (1/3)g )• Refactoring exercise as acceptance test
– Provided a realistic picture of the required skills– Improved OO knowledge
• Repair a broken JUnit test.• Refactoring 1: Break dependency cycleRefactoring 1: Break dependency cycle
by introduction of observer pattern.• Refactoring 2: Eliminate code duplication and parallel inheritance
hierarchy by introduction of state pattern.
• Each participants makes himself an expert of a special area before the beginning of the coursearea before the beginning of the course– Necessary because very much knowledge needed– Makes the value of team communication obvious
• Wiki as a common knowledge base
![Page 13: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/13.jpg)
Things that worked! (2/3)g )• First 3 days: Development of a trivial application.
Meanwhile teach…– XP basics, Test First, Pair Programming
• Four iterations (each at 5 days)– Structure:
• planning game• Implementation• Implementation• presentation + acceptance test
• Planning poker (see later)Planning poker (see later)• XP-Game to explain the planning Game
– Clarifies responsibilities of customers and developersp p– Demonstrates the value of realistic estimations.– Sometimes a little bit time consuming. But: Fun!
![Page 14: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/14.jpg)
Things that worked! (3/3)g )• Pair Programming• Daily stand up meetingy p g
– Everybody answers questions like: • What did I do yesterday?• What obstacles do I have? • What obstacles do I have? • What am I going to do today? • What else should the team know about?
N t t k i t bl th ld l– No one gets stuck into problems others could solve.– Builds team spirit.
• Regular RetrospectionsRegular Retrospections– THE key to excellence by rapid adaptation– Example: Burn-Down Charts (see later)
• Non-conflicting roles (Keep What and How separate)– customer ≠ team leader ≠ expert
![Page 15: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/15.jpg)
Planning Poker (adapted from James W. Grenning, Object Mentor, 2002)
• Accelerates story estimation
Bricks = Estimated effort for a
http://www.objectmentor.com/resources/articles/PlanningPoker.zip
Accelerates story estimation.• Keeps the whole team involved.
story
• Mechanics:C t d t – Customer reads a story.
– Each programmer selects the card corresponding to his estimatehis estimate.
– Cards are turned over simultaneously.
– In case of agreement: In case of agreement: Record the estimate and move on to the next story.
Infeasible story
Risk that the real effort might be much higher.
Chance that the real effort might be much lower.
![Page 16: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/16.jpg)
The XP-Game (adapted from Belgian XP/Agile User Group)
Clear responsibilites („We are developers“)
Story descriptions. Business value
i
Business value printed on each
card.
Funny „stories“ to „implement“
Already used planning poker like in the real planning
game.g
http://www.xp.be/xpgame.html
![Page 17: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/17.jpg)
Storycardsy
![Page 18: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/18.jpg)
Simple Design, Testingp g g• Simple Design
– (+) CRC cards nice tool for fast architectural sketches( )– (−) Difficult to get everybody involved– (+) Explore protocols by role playing simulations– (−) Hard to explain the difference between simple and quick
premature design
• Testing– Recommended but rarely practiced by the students– Recommended but rarely practiced by the students– Requires severe discipline– GUI testing is really hard– Round trip testing even harder (Java Compiler
JTransformer Prolog Predicate Evaluation)Untested code forms legacy code after the course– Untested code forms legacy code after the course
![Page 19: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/19.jpg)
Trackingg• Essential to estimate capacity of the next iteration
• Motivation for tracking (estimation + consequent logging of time spent) is hard to find:gg g t p t) t– The XP coach really has to care about this– Fast feedback about the quality of the estimates might help
(E d )(Exercised once)– Hard to avoid to pessimistic estimates– Burn down charts (see SCRUM) might be a better way because – Burn down charts (see SCRUM) might be a better way because
they constantly visualize the remaining effort
• Virtual unit for effort (bricks, see above)– facilitates relative estimates– are not always taken serious
![Page 20: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/20.jpg)
Burn-Down Charts
![Page 21: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/21.jpg)
Reality Check
• The “ideal world” of our courses – Our customer is much more friendly than real customers Our customer is much more friendly than real customers
usually are.– Employees have much more interfering responsibilities
th t d t h f th ti f th than our students have for the time of the course.
Problems that also occ r in the “real orld”• Problems that also occur in the “real world”– Development teams are seldom self-organizing
• But those, that are, are the bestBut those, that are, are the best
– Building a reliable testbed is really hard
![Page 22: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/22.jpg)
b-it: Excellent working environment g
![Page 23: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/23.jpg)
Our practical courses
![Page 24: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/24.jpg)
What we are offering the students...g• Good supervision
– 2 (+4) research associate for 12 students– ... 8 hours a day!
Ideal orking en ironment• Ideal working environment– Our own office– Up-to-date technical equipment (computer, beamer)– Wikis, Eclipse, UMPCs, ...
• An interesting and realistic project• An interesting and realistic project– Developing process is an essential parts of research projects– Industry partner ensures quality of product
• A certificate after four and a half weeksECTS Credit Points 10– ECTS Credit Points 10
![Page 25: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/25.jpg)
The „products“ of the practical courses p pRich Client Applications on Mobile Device
• 2007b: Scotland Yard to go (see next slides)
• 2006b: Context Sensitive Mobile Application (CSI Navigator)
• 2005b: Context Sensitive Mobile Application (CSI PimPro)
Plug-Ins for the Java Development Platform Eclipse
• 2005a: Visual Tool Support for Refactoring to Pattern (Cultivate, PatchWork))
• 2004b: Program Analysis by Logic Meta Programming (JTransformer, Cultivate)
2004 2 T l S t f P tt M t (P t hW k)• 2004a2: Tool Support for Pattern Management (PatchWork)
• 2004a1: Synchronized Logic Representation of Java Code (JTransformer)( )
• 2003b: Improved Editor for Conditional Transformations (ConTraCT) [based on the result of two earlier practical courses]
![Page 26: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/26.jpg)
What have we developed?p
• CSI-Customer requested products:
Fall 2005: An adapting location-aware Personal Information Managerg
Fall 2006:A Context Sensitive Bike Tour NavigationBike-Tour-Navigation
![Page 27: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/27.jpg)
Last year: Scotland Yard to go!y g• Use case: Adaptive Mobile Gaming• Mobile Games:Mobile Games:
– PDA/UMPC based– Use context data– Augment reality
supported by:
![Page 28: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/28.jpg)
This year: Mobile gaming platformy g g p• Based on our experiences from last year• Buzzwords:Buzzwords:
– Modularization– Community– Game 2.0– User centric design
C ll b ti– Collaboration– Cooperation– Fun!Fun!
![Page 29: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/29.jpg)
This year’s challenge
The chase is on…
![Page 30: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/30.jpg)
Mobile gaming platformg g p• Based on our experiences with Scotland Yard to go!• Buzzwords:Buzzwords:
– Modularization– Community– Game 2.0– User centric design
C ll b ti– Collaboration– Cooperation– Fun!Fun!
![Page 31: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/31.jpg)
Studious and productive collaborationp
![Page 32: Practical Course eXt P iXtreme Programming · • Agile view / Experience This is the core osts assumption (and goal) of agile processes. ... – GUI testing is really hard ... Visual](https://reader033.vdocument.in/reader033/viewer/2022050208/5f5b4e0be4c85068556b1706/html5/thumbnails/32.jpg)
Satisfied students, associates and prof.p