27
Agile Entwicklung à la „The Eclipse Way“ Dipl.-Inform. Martin Lippert Senior IT-Berater [email protected]

Agile Entwicklung „The Eclipse Way“ - XP Days...Agile Entwicklung à la „The Eclipse Way“ 15 Live Betas funktionieren “Also, let me say that I was using the Eclipse milestone

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Agile Entwicklung à la

„The Eclipse Way“

Dipl.-Inform. Martin LippertSenior IT-Berater

[email protected]

Agile Entwicklung à la „The Eclipse Way“ 2

Über mich

Martin LippertSenior-IT-Berater bei Akquinet Agile GmbH

[email protected]

Schwerpunkte:Agile Softwareentwicklung

Refactoring

Eclipse-Technologie

Committer im Equinox Incubator Projekt

Agile Entwicklung à la „The Eclipse Way“ 3

Überblick

Teil 1: “The Eclipse Way”Werte und Techniken

Der Rhythmus des Projektes

Die Schluss-Phase

Teil 2: Den Prozess für eigene Projekte nutzenWas funktioniert ohne Änderungen?

Was muss angepasst werden?

Agile Entwicklung à la „The Eclipse Way“ 4

Motivation

Was ist so bemerkenswert an der Art und Weise,

wie das Eclipse-SDK entwickelt wird?

Über Jahre hinweg pünktliche Auslieferungen

Kontinuierlicher Fortschritt

Sehr hohe Qualität

Welches Projekt schafftdas schon? ;-)

1.0Nov 2001

2.0June 2002

2.1Mar 2003

3.0June 2004

3.1June 2005

3.2June 2006

Agile Entwicklung à la „The Eclipse Way“ 5

Erfolgsfaktoren

Wieso ist das Eclipse-SDK-Team so erfolgreich?Sehr gute Entwickler

Langjährige Erfahrung mit dem Bau von IDEs

Kleine Teams

Aber vor allem:Ein agiler Entwicklungsprozess

Agile Entwicklung à la „The Eclipse Way“ 6

Die grundlegende Annahme

“people and interactions over processes and tools”--agile manifesto

Agile Entwicklung à la „The Eclipse Way“ 7

Werte

Software ausliefern

VorhersagbarkeitPünktliche Auslieferungen

TransparenzKeine Geheimnisse über den Status des Projektes

FeedbackWie ist der Stand? Können wir ausliefern?

Agile Entwicklung à la „The Eclipse Way“ 8

Techniken

milestonesfirst

APIfirst

endgame

retrospectives

always havea client

built tolast

continuousintegration

community involvement

new & noteworthy

early incremental planning

continuous testing

consume yourown output

componentcentric

drive with open eyes

validate

reduce stress

learn

enable

attract to latest

transparency

validateupdate

dynamic teams

show progress

enable

explore

validate

livebetas

feedback

signoff

Agile Entwicklung à la „The Eclipse Way“ 9

Techniken

milestonesfirst

APIfirst

endgame

retrospectives

always havea client

built tolast

continuousintegration

community involvement

new & noteworthy

early incremental planning

continuous testing

consume yourown output

componentcentric

drive with open eyes

validate

reduce stress

learn

enable

attract to latest

transparency

validateupdate

dynamic teams

show progress

enable

explore

validate

livebetas

feedback

signoff

Agile Entwicklung à la „The Eclipse Way“ 10

Der Herzschlag des Projektes

release 3.2

M1

plan

deve

lop

stab

ilize

6 weeks

warm-upre

tros

pect

ive

initi

al re

leas

e pl

an

deco

mpr

essi

on3.1

sign-offsign-off sign-off

M2

plan

deve

lop

stab

ilize

6 weeks

plan

deve

lop

stab

ilize

6 weeks

endgame

fitness

release 3.2

M1

plan

deve

lop

stab

ilize

6 weeks

M1

plan

deve

lop

stab

ilize

6 weeks

M1

plan

deve

lop

stab

ilize

6 weeks

warm-upre

tros

pect

ive

initi

al re

leas

e pl

an

deco

mpr

essi

on

warm-upre

tros

pect

ive

initi

al re

leas

e pl

an

deco

mpr

essi

on3.1

sign-offsign-off sign-off sign-offsign-off sign-off

M2

plan

deve

lop

stab

ilize

6 weeks

M2

plan

deve

lop

stab

ilize

6 weeks

M2

plan

deve

lop

stab

ilize

6 weeks

plan

deve

lop

stab

ilize

6 weeks

plan

deve

lop

stab

ilize

6 weeks

plan

deve

lop

stab

ilize

6 weeks

endgameendgameendgame

fitnessfitness

Agile Entwicklung à la „The Eclipse Way“ 11

Kontinuierliche Builds, kontinuierliche Tests

Nightly BuildAlle Unit-Tests werden ausgeführt

Ergebnisse publiziert

Integration BuildEinmal pro Woche

Alle Unit-Tests werden ausgeführt

Rebuild, bis alle Tests erfolgreich durchlaufen

Milestone BuildAlle sechs Wochen

Alle Unit-Tests werden ausgeführt und müssen grün sein

Wie ein kleines Release

Agile Entwicklung à la „The Eclipse Way“ 12

Unit- und Performance-Tests

Neben der umfangreichen Unit-Test-Sammlung werden automatisierte Performance-Tests durchgeführt

Agile Entwicklung à la „The Eclipse Way“ 13

Milestones

Alle 6 Wochen gibt es einen Milestone BuildReduziert Stress

Sorgt für schnelles Feedback

Feedback gibt es nicht automatischNew and Noteworthy (Werbung)

Neue Features

Agile Entwicklung à la „The Eclipse Way“ 14

Live Betas

Das Projekt befindet sich immer im Beta-Status!

Kontinuierlich…… verwendbare Software

… interessante Neuerungen

… zuhören und Einfluss ermöglichen (das motiviert Feedback)

… „consume your own output“ (auch bekannt als „eat your own dogfood“)

Agile Entwicklung à la „The Eclipse Way“ 15

Live Betas funktionieren

“Also, let me say that I was using the Eclipse milestone releasesfrom about November to do real work with Java 5/Generics. I

have always been impressed with the quality of Eclipse milestone builds, and about the only time you will find me using an actual official release build is during the quiet period just after an official release (such as 3.0 or 3.1).”

- http://www.theserverside.com/news/thread.tss?thread_id=37183

Agile Entwicklung à la „The Eclipse Way“ 16

Endgame

Vom Beta-Status zum ReleaseWechsel zwischen festen Test- und Bugfix-Phasen

Defects TestingDefects Testing

Agile Entwicklung à la „The Eclipse Way“ 17

Je später der Fix, desto…

… schwieriger wird es, den Fix einzuspielen

# bu

gs f

ixed

604

21060

fix passtest pass

578

May 21 May 28 June 11 June 20 June 25

velocity process rules

# bu

gs f

ixed

604

21060

fix passtest pass

578

May 21 May 28 June 11 June 20 June 25

velocity process rules

process rules

Agile Entwicklung à la „The Eclipse Way“ 18

Typisch agil: Den Prozess verbessern

continuous transparent planning

continuous design/refactoring

continuous integration

continuous testing

continuous listening

continuous demos

continuous consumption of our own output

continuous feedback

continuous learning

continuous health (siehe auch Kent Beck, Project Health)

Agile Entwicklung à la „The Eclipse Way“ 19

Eigene Projekte

Ist es möglich, den Eclipse-Prozess für eigene Projekte einzusetzen?

Die schnelle Antwort: Ja !!!Andere Eclipse-Projekte

Einige Produkt-Teams bei IBM

Eigene Erfahrungen mit der Prozess-Adaption aus einem Versicherungs-Projekt

Agile Entwicklung à la „The Eclipse Way“ 20

Was spricht dagegen?

„Wir entwickeln keine Open-Source-Software. Wir haben einen richtigen Kunden und können nicht machen, was wir wollen.“

Der flexible Umgang mit Anforderungen ist fester Bestandteil vieler agiler Methoden

Auch das Eclipse-Team muss sich mit vielen Anforderungen auseinandersetzen und priorisieren

Agile Entwicklung à la „The Eclipse Way“ 21

Was spricht dagegen?

„Wir bauen keine Anwendungen für Entwickler. Wir können unseren eigenen Output nicht selbst konsumieren.“

Richtig, das ist ein besonderer Vorteil des Eclipse-Teams

Aber es geht um das schnelle Feedback!

Also:

Echte Anwender in das Projekt integrieren

Daily Deployment (aus XP)

Agile Entwicklung à la „The Eclipse Way“ 22

Einiges wird sogar einfacher!

In der Regel keine „Published-API“-ProblematikMan hat in den meisten Projekten nur sehr selten echte veröffentlichte APIs

In der Regel kein über die Welt verteiltes TeamEinfachere und schnellere Kommunikation

Entwicklungsteams in der Regel deutlich kleinerWeniger Overhead für Sub-Team-Bildung

Agile Entwicklung à la „The Eclipse Way“ 23

Meine Einschätzungen

Ist nicht so gut geeignet für:kleine Projekte mit wenigen Entwicklern

kleine Projekte mit kurzen Laufzeiten

Spielt seine Stärken aus bei:größeren, länger laufenden Projekt

größeren Teams

bei verteilt arbeitenden Teams

Agile Entwicklung à la „The Eclipse Way“ 24

Hintergrund der Erfahrungen

Projekt mit …… durchschnittlich 10 Entwicklern

… 3 Fachleuten

… 1 Build- und Test-Management

… 1 Anforderungs-Management

… einer Laufzeit von 3 Jahren

… und 3 Releases

Neu-Ordnung des Prozesses nach zwei Releases

Agile Entwicklung à la „The Eclipse Way“ 25

Erfahrungen

Der Prozess funktioniert gut für In-House-Projekte !!!

Schnelles Feedback unersetzlichJe schneller man Feedback bekommt, desto besser

Kontinuierlicher Build-ProzessMit Unit-Tests, Deployment, etc.

Milestone-Builds (6-wöchig)Gute Planungs-EinheitMüssen aber ausgiebig vom Kunden getestet werden

Live-BetasAnwender ernst nehmen und „echt“ einbeziehen, sonst bekommt man kein ehrliches und schnelles Feedback

Agile Entwicklung à la „The Eclipse Way“ 26

Schwierigkeiten für eigene Projekte

Das Eclipse-Team besitzt eine sehr ausgereifte Infrastrukturz. B. vollständig automatisierter Build-Prozess, so etwas kostet erheblichen Aufwand

Das Eclipse-Team ist sehr eingespieltIn vielen Projekten muss sich das Team erst einmal finden und aufeinander einstellen

Der Eclipse-Prozess gibt wenig für die konkrete Entwicklung im Kleinen vor

Er geht davon aus, dass jeder Entwickler für sich gute Arbeit leistet (egal wie)

Agile Entwicklung à la „The Eclipse Way“ 27

Fragen? Jederzeit gerne!!!

[email protected]

Spezieller Dank geht an Jeff McAffer, Erich Gamma und John Wiegand

Vielen Dank für die Aufmerksamkeit