Practical Course eXtreme Programming Xt P i B-IT/IPEC S Summer - - PowerPoint PPT Presentation

practical course extreme programming xt p i
SMART_READER_LITE
LIVE PREVIEW

Practical Course eXtreme Programming Xt P i B-IT/IPEC S Summer - - PowerPoint PPT Presentation

Practical Course eXtreme Programming Xt P i B-IT/IPEC S Summer School 2008 S h l 2008 Organized by Organized by Prof. Dr. Armin B. Cremers, Holger Mgge, Daniel Speicher, Pascal Bihler, Mark Schmatz Bonn-Aachen International Center


slide-1
SLIDE 1

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
slide-2
SLIDE 2

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.“

slide-3
SLIDE 3

eXtreme Programming

An Introduction

slide-4
SLIDE 4

What is Extreme Programming? g g

  • XP is a

XP 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
slide-5
SLIDE 5

How expensive is change? p g

  • Traditional view / Experience
  • sts

Exponential growth

Change c

Exponential growth

Elicitation Analysis Design Implementation Testing Deployment Deployed

slide-6
SLIDE 6

How expensive is change? p g

  • Agile view / Experience

This is the core

  • sts

This is the core assumption (and goal)

  • f agile processes.

Change c

Growth of change costs change costs can be controlled

Progress

slide-7
SLIDE 7

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 tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding 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

slide-8
SLIDE 8

How can this be achieved? XP Practices!

slide-9
SLIDE 9

Rapid feedback is the secret of success p

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 ti a little correction this way, a little correction that way." (Kent Beck) (Kent Beck)

slide-10
SLIDE 10

Remain responsive to change at any time p g y

slide-11
SLIDE 11

eXtreme Programming

Experiences from our courses p

slide-12
SLIDE 12

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 cycle

Refactoring 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 course area 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
slide-13
SLIDE 13

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 developers p p – Demonstrates the value of realistic estimations. – Sometimes a little bit time consuming. But: Fun!

slide-14
SLIDE 14

Things that worked! (3/3) g )

  • Pair Programming
  • Daily stand up meeting

y 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 Retrospections

Regular 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

slide-15
SLIDE 15

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 estimate his 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.

slide-16
SLIDE 16

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

slide-17
SLIDE 17

Storycards y

slide-18
SLIDE 18

Simple Design, Testing p 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

slide-19
SLIDE 19

Tracking

  • 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

slide-20
SLIDE 20

Burn-Down Charts

slide-21
SLIDE 21

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 best

But those, that are, are the best

– Building a reliable testbed is really hard

slide-22
SLIDE 22

b-it: Excellent working environment g

slide-23
SLIDE 23

Our practical courses

slide-24
SLIDE 24

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 weeks

ECTS Credit Points 10 – ECTS Credit Points 10

slide-25
SLIDE 25

The „products“ of the practical courses p p

Rich 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]

slide-26
SLIDE 26

What have we developed? p

  • CSI-Customer requested products:

Fall 2005: An adapting location-aware Personal Information Manager g Fall 2006: A Context Sensitive Bike Tour Navigation Bike-Tour-Navigation

slide-27
SLIDE 27

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:

slide-28
SLIDE 28

This year: Mobile gaming platform y 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!

slide-29
SLIDE 29

This year’s challenge

The chase is on…

slide-30
SLIDE 30

Mobile gaming platform g 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!

slide-31
SLIDE 31

Studious and productive collaboration p

slide-32
SLIDE 32

Satisfied students, associates and prof. p