agile entwicklung „the eclipse way“ - xp days...agile entwicklung à la „the eclipse way“ 15...
TRANSCRIPT
Agile Entwicklung à la
„The Eclipse Way“
Dipl.-Inform. Martin LippertSenior IT-Berater
Agile Entwicklung à la „The Eclipse Way“ 2
Über mich
Martin LippertSenior-IT-Berater bei Akquinet Agile GmbH
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!!!
Spezieller Dank geht an Jeff McAffer, Erich Gamma und John Wiegand
Vielen Dank für die Aufmerksamkeit