practical course ext p ixtreme programming · • agile view / experience this is the core osts...

32
Practical Course Xt P i eXtreme Programming B-IT/IPEC S S h l 2008 Summer School 2008 Organized by Organized by Prof. Dr. Armin B. Cremers, Holger Mügge, Daniel Speicher, Pascal Bihler, Mark Schmatz

Upload: others

Post on 19-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Satisfied students, associates and prof.p