Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

54
Release a Day... Mythos oder Realität Mittwoch, 7. Oktober 2009

description

Jeden Tag ein Release - Mythos oder Realität? Eine ganzheitliche Betrachtung Die Erfahrungswerte aus unterschiedlichsten Projekten zeigen, dass die Implementierung des Release-Prozesses in Projekten inhaltlich und zeitlich oft unterschätzt wird. Der Release-Prozess sollte als ganzheitliches Produkt aller Projektbeteiligten verstanden werden und bereits in einer frühen Projektphase möglichst vollständig integriert werden. Der Vortrag beleuchtet das Thema aus den Blickwinkeln der Projektbeteiligten und soll Anregungen sowie eine initiale Checkliste liefern, um das Vorhaben „Release Everyday“ auch in eigenen Projekten umsetzen zu können.

Transcript of Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Page 1: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Release a Day...Mythos oder Realität

Mittwoch, 7. Oktober 2009

Page 2: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Markus GuskeMichael Kloss

Mittwoch, 7. Oktober 2009

Page 3: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Ein (nahezu) realistischer

Fall...

Mittwoch, 7. Oktober 2009

Page 4: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Ein (nahezu) realistischer Fall... der DialogFachabteilung: "Hi Micha, ich habe in 1 1/2 Wochen einen Termin in den Staaten, wo ich unsere Software präsentieren kann! Dazu brauche ich aber unbedingt noch die Funktionalität für X und Y..."

Projektleiter: "Hmm, klingt ja gut, aber ich kann dir so schnell nicht sagen, ob wir das noch alles hinbekommen..."

Fachabteilung: "Naja, an dem Termin hängt auch dein Budget..."

Projektleiter: "Ich rede mal mit den Leuten, mal sehen, was wir machen können."

Szenenwechsel: Projektleiter zu den Entwicklern

Projektleiter: "Unsere Fachabteilung hat in 1 1/2 Wochen einen Termin in den Staaten, brauchen aber Xund Y. Bekommt Ihr das hin?"

Entwickler: "Im Prinzip ja, werden vielleicht ein paar Tests weniger machen könne, da müsste dieTestabteilung einspringen..."

Projektleiter: "Gut, das sollten die hinbekommen..."

Szenenwechsel: Projektleiter zu den Testern

Projektleiter: "Unsere FA hat in 1 1/2 Wochen einen Termin in den Staaten, brauchen aber X und Y.Die Entwickler würden bis dahin die Funktionalität stemmen, aber etwas weniger Tests vorab schreiben können. Könnt Ihr das Testen bis dahin testen?"

Tester: "Nein!"

Projektleiter: "Naja, das ist schon wichtig...! (bettel)"

Tester: "Also, wenn überhaupt dann nur, wenn wir nur X und Y testen & der Rest weiter funktioniert"

Szenenwechsel: 1 Woche später

Projektleiter: "Könnt Ihr bitte die Software auf das Testsystem spielen & bei Freigabe übermorgen auf die Produktion?"

Betrieb: "Du bist ja sehr lustig..., wir haben hier gerade eine Patchwelle für die Betriebssysteme, in dieser Woche hat hier gar keiner Zeit!" ...

Mittwoch, 7. Oktober 2009

Page 5: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

"Die fertige und veröffentlichte Version einer Software wird als Release bezeichnet. Damit geht ein Hochzählen der Versionsnummer einher. [...]"

"Das Release Management ist ein Prozess, [...], welcher die Bündelung von Konfigurations-Änderungen zu einem Release oder Versionspaket und deren ordnungsgemäße Eingliederung in der Infrastruktur sicherstellt. Release Management bedeutet die Planung und Durchführung der Veröffentlichung, von der Idee bzw. den ersten Anforderung bis zum Erreichen des Endbenutzers. Es interagiert somit zwischen Change- und Konfigurationsmanagement."

Quelle Wikipedia

Mittwoch, 7. Oktober 2009

Page 6: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Mittwoch, 7. Oktober 2009

Page 7: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Interessen?

Mittwoch, 7. Oktober 2009

Page 8: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Fachabteilung / Kunde

Mittwoch, 7. Oktober 2009

Page 9: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Projektleiter

Mittwoch, 7. Oktober 2009

Page 10: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Entwickler

Mittwoch, 7. Oktober 2009

Page 11: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Tester

Mittwoch, 7. Oktober 2009

Page 12: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Betrieb

Mittwoch, 7. Oktober 2009

Page 13: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Wie kann man dem genügen?

Mittwoch, 7. Oktober 2009

Page 14: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Jeden Tag ein Build!

Mittwoch, 7. Oktober 2009

Page 15: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Mehr als checkout & compile...

Mittwoch, 7. Oktober 2009

Page 16: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Dev-Build

Mittwoch, 7. Oktober 2009

Page 17: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Checkout

Mittwoch, 7. Oktober 2009

Page 18: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Code Conventions

Mittwoch, 7. Oktober 2009

Page 19: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Compile

Mittwoch, 7. Oktober 2009

Page 20: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Unit Tests

Mittwoch, 7. Oktober 2009

Page 21: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Coverage

Mittwoch, 7. Oktober 2009

Page 22: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Metriken

Mittwoch, 7. Oktober 2009

Page 23: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Dev-Build != Release-Build

Mittwoch, 7. Oktober 2009

Page 24: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Release Build

Mittwoch, 7. Oktober 2009

Page 25: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Clean

Mittwoch, 7. Oktober 2009

Page 26: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Change Log

Mittwoch, 7. Oktober 2009

Page 27: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Version

Mittwoch, 7. Oktober 2009

Page 28: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Tagging

Mittwoch, 7. Oktober 2009

Page 29: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Dev-Build

Mittwoch, 7. Oktober 2009

Page 30: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Integrations-Tests

Mittwoch, 7. Oktober 2009

Page 31: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Publish der Artefakte

Mittwoch, 7. Oktober 2009

Page 32: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

"3rd Party-Tools"z.B. Deploytool

Mittwoch, 7. Oktober 2009

Page 33: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Automatisieren!

Mittwoch, 7. Oktober 2009

Page 34: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Morgens getestet!

Mittwoch, 7. Oktober 2009

Page 35: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Automatisieren!

Mittwoch, 7. Oktober 2009

Page 36: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Ganzheitlich...Mittwoch, 7. Oktober 2009

Page 37: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

...kein Ganzes

Viele Teile...

Mittwoch, 7. Oktober 2009

Page 38: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Das Ziel!Mittwoch, 7. Oktober 2009

Page 39: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Checklisten

Mittwoch, 7. Oktober 2009

Page 40: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Datum Aufgabe Anmerkungen

Datum Aufgabe Anmerkungen

Vorher Deployment Termin abgestimmt schriftlich und insbesondere auf Betriebsführungsseite (DBA, AppServer,....) abgestimmt und auch Telefonnummern und Verfügbarkeit eingeholt

Vorher Deployment Information geliefert Mail an alle, die es betrifft verteilt: Projektleitung, Fachabteilung, Deployment Manager, Betriebsführung, Testmanager

Vorher Entwicklungsteam: Codefree-Termin gesetzt

Vorher Der Verantwortliche prüft die Voraussetzungen für automatisches Changelog

Stimmen alle Einträge (Versionsnummer, Issue-Solution), vereinfacht über Filter möglich/notwendig!

D-Day Software paketiert / Auslieferungsformat Der Verantwortliche im Entwicklungsteam prüft, ob das Release den Freigabekriterien genügt

D-Day Final build und Entwicklungstest Der Verantwortliche im Entwicklungsteam prüft, ob das Release den Freigabekriterien genügt

D-Day Versionsnummer korrekt hinterlegt

D-Day Version im SCM markiert

D-Day Änderungen dokumentiert (Change Log)

D-Day Installationanweisung erstellt / aktualisiert

D-Day Installations- / Deinstallationsskript

D-Day Abnahme erfolgreich

D-Day externe Konfiguration dokumentiert / aktualisiert

D-Day Information über das Release verteilt

Zeitpunkt Prozess Aufgabe Anmerkungen

Vorher ✓ Release Termin abgestimmt

Schriftlich und insbesondere auf Betriebsführungsseite (DBA, AppServer,....) abgestimmt und auch Telefonnummern und Verfügbarkeit eingeholt

Vorher ✓ Release Abstimmungsergebnis verteilenInformation an alle, die es betrifft: Projektleitung, Fachabteilung, Deployment Manager, Betriebsführung, Testmanager

Vorher ✓ Entwicklungsteam: Codefreeze-Termin gesetzt

Vorher ✓ Inhaltliche Abstimmung über Releaseinhalte

Stimmen alle Rahmendaten (Versionsnummer, Issue-Solution), Abstimmung mit Entwicklungsteam wg. möglicher branches, Test-Manager (Stand der Qualität), ....

D-Day Versionsnummer korrekt hinterlegt

D-Day Version im SCM markiert

D-Day Änderungen dokumentiert (Change Log)

D-DayInstallations- und Deinstallationsanweisungen erstellt / aktualisiert

ggf. auch Datenbankänderungen usw.

D-Dayexterne Konfiguration dokumentiert / aktualisiert Konfiguration Anbindung externer Systeme

D-Day Finaler Release-Build und Release-TestDer Verantwortliche im Entwicklungsteam prüft, ob das Release den Freigabekriterien genügt, Testprotokoll beilegen

D-Day Software paketiert / Auslieferungsformat

D-Day ✓ Software-Release übergeben

Nachher ✓ Abnahme erfolgreich Abnahmeprotokoll dokumentieren

Nachher ✓ Information über Abnahme verteilen Information an das Gesamte Team.

Mittwoch, 7. Oktober 2009

Page 41: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Mittwoch, 7. Oktober 2009

Page 42: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Datum Aufgabe Anmerkungen

Datum Aufgabe Anmerkungen

Vorher Deployment Termin abgestimmt schriftlich und insbesondere auf Betriebsführungsseite (DBA, AppServer,....) abgestimmt und auch Telefonnummern und Verfügbarkeit eingeholt

Vorher Deployment Information geliefert Mail an alle, die es betrifft verteilt: Projektleitung, Fachabteilung, Deployment Manager, Betriebsführung, Testmanager

Vorher Entwicklungsteam: Codefree-Termin gesetzt

Vorher Der Verantwortliche prüft die Voraussetzungen für automatisches Changelog

Stimmen alle Einträge (Versionsnummer, Issue-Solution), vereinfacht über Filter möglich/notwendig!

D-Day Software paketiert / Auslieferungsformat Der Verantwortliche im Entwicklungsteam prüft, ob das Release den Freigabekriterien genügt

D-Day Final build und Entwicklungstest Der Verantwortliche im Entwicklungsteam prüft, ob das Release den Freigabekriterien genügt

D-Day Versionsnummer korrekt hinterlegt

D-Day Version im SCM markiert

D-Day Änderungen dokumentiert (Change Log)

D-Day Installationanweisung erstellt / aktualisiert

D-Day Installations- / Deinstallationsskript

D-Day Abnahme erfolgreich

D-Day externe Konfiguration dokumentiert / aktualisiert

D-Day Information über das Release verteilt

Zeitpunkt Prozess Aufgabe Anmerkungen

Vorher ✓ Release Termin abgestimmt

Schriftlich und insbesondere auf Betriebsführungsseite (DBA, AppServer,....) abgestimmt und auch Telefonnummern und Verfügbarkeit eingeholt

Vorher ✓ Release Abstimmungsergebnis verteilenInformation an alle, die es betrifft: Projektleitung, Fachabteilung, Deployment Manager, Betriebsführung, Testmanager

Vorher ✓ Entwicklungsteam: Codefreeze-Termin gesetzt

Vorher ✓ Inhaltliche Abstimmung über Releaseinhalte

Stimmen alle Rahmendaten (Versionsnummer, Issue-Solution), Abstimmung mit Entwicklungsteam wg. möglicher branches, Test-Manager (Stand der Qualität), ....

D-Day Versionsnummer korrekt hinterlegt

D-Day Version im SCM markiert

D-Day Änderungen dokumentiert (Change Log)

D-DayInstallations- und Deinstallationsanweisungen erstellt / aktualisiert

ggf. auch Datenbankänderungen usw.

D-Dayexterne Konfiguration dokumentiert / aktualisiert Konfiguration Anbindung externer Systeme

D-Day Finaler Release-Build und Release-TestDer Verantwortliche im Entwicklungsteam prüft, ob das Release den Freigabekriterien genügt, Testprotokoll beilegen

D-Day Software paketiert / Auslieferungsformat

D-Day ✓ Software-Release übergeben

Nachher ✓ Abnahme erfolgreich Abnahmeprotokoll dokumentieren

Nachher ✓ Information über Abnahme verteilen Information an das Gesamte Team.

Mittwoch, 7. Oktober 2009

Page 43: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Matrix

Mittwoch, 7. Oktober 2009

Page 44: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Dokumentiert Implementiert Automatisiert Integriert

Versionsnummer

Installationspaket

Installationsanweisungen

Deploytool

Build-Prozess

Issue-Management

Changelog / Release Notes

Versionsmanagement

Umgebungskonfiguration

Entwicklertests

Integrationstests

Mittwoch, 7. Oktober 2009

Page 45: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Schon gesehen...

Mittwoch, 7. Oktober 2009

Page 46: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Dokumentiert Implementiert Automatisiert Integriert

Versionsnummer

Installationspaket

Installationsanweisungen

Deploytool

Build-Prozess

Issue-Management

Changelog / Release Notes

Versionsmanagement

Umgebungskonfiguration

Entwicklertests

Integrationstests

✓(✓) ✓

(✓)

✓✓✓(✓)

(✓)

✓ ✓

Mittwoch, 7. Oktober 2009

Page 47: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Kurzfristigerreichbar...

Mittwoch, 7. Oktober 2009

Page 48: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Dokumentiert Implementiert Automatisiert Integriert

Versionsnummer

Installationspaket

Installationsanweisungen

Deploytool

Build-Prozess

Issue-Management

Changelog / Release Notes

Versionsmanagement

Umgebungskonfiguration

Entwicklertests

Integrationstests

✓ ✓ ✓✓ ✓ ✓ ✓✓✓ ✓ ✓

✓ ✓ ✓✓ ✓✓ ✓

✓ ✓ ✓✓✓ ✓ ✓ ✓✓ ✓ ✓

Mittwoch, 7. Oktober 2009

Page 49: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Ziel...

Mittwoch, 7. Oktober 2009

Page 50: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Dokumentiert Implementiert Automatisiert Integriert

Versionsnummer

Installationspaket

Installationsanweisungen

Deploytool

Build-Prozess

Issue-Management

Changelog / Release Notes

Versionsmanagement

Umgebungskonfiguration

Entwicklertests

Integrationstests

✓ ✓ ✓ ✓✓ ✓ ✓ ✓✓ ✓ ✓ ✓✓ ✓ ✓ ✓✓ ✓ ✓ ✓✓ ✓ ✓ ✓✓ ✓ ✓ ✓✓ ✓ ✓ ✓✓ ✓ ✓ ✓✓ ✓ ✓ ✓✓ ✓ ✓ ✓

Mittwoch, 7. Oktober 2009

Page 51: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Release a Day...Mythos oder Realität

Buste

d

Mittwoch, 7. Oktober 2009

Page 52: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Dankefür Ihre

Aufmerksamkeit!

Mittwoch, 7. Oktober 2009

Page 53: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Aktuelle VeranstaltungenHouse of open Scrum - 12:00

07. Oktober 2009 - Oberhaching, Kirchplatz Ecke Kybergstr, Kybergstraße 6-10

Entwicklertag: Praxisrelevante Anwendungsszenarien der modellgetriebenen Entwicklung

07. - 08. Oktober 2009 - Oldenburg

Xing und itemis verraten „Die Wahrheit über Scrum“, Dortmund - 16:15 - 21:00

08. Oktober 2009 - Harenberg City Center - Dr. Martin Wrangel

"Embedded Systems" von Dr. Jörn Seger - Vortragsreihe Dortmund – 18:30 - 21:00

12. Oktober 2009 - Harenberg City Center - Dr. Jörn Seger

MedConf: Modellgetriebene Generierung eines Softwareagenten zur Identifizierung von Studienpatienten - 09:00 - 17:45

13. - 15. Oktober 2009 - München-Dornach

Alle aktuellen Veranstaltungen und weiterführende Informationen auf: http://www.itemis.de/veranstaltungen

Mittwoch, 7. Oktober 2009

Page 54: Jeden Tag ein Release - Mythos oder Realität - Vortrag auf der Gearconf 09

Aktuelle VeranstaltungenEclipse Summit Europe

- "Advanced Programming Techniques with EMF and CDO" - 13:00- "Domain-Specific Languages mit Eclipse Modeling" – 13:00- "Combining Graphics and Text in Modeling Tools" - 17:00- "Eclipse Modeling Symposium“ - 18:00- "The B3 build platform - The PDE-Build successor" - 18:00

27. Oktober 2009 – Ludwigsburg, Forum am Schlosspark - Sven Efftinge und Jan Köhnlein – 08:00-17:00 Karsten Thoms, Sebastian Zarnekow, Markus Völter, Ed Merks

- "Xtext - From Galileo to Helios" - 14:10- "Lightweight Model-Driven Development for Embedded Systems" - 15:00- "Get lean with OSEE" - 17:50

28. Oktober 2009 - Nirmal Sasidharan, Markus Völter, Andreas Graf Sven Efftinge, Sebastian Zarnekow - 08:00-17:00

Scrum-Kompakt – mit Joseph Pelrine – Düsseldorf - 14:00

29. Oktober 2009 – Düsseldorf – Joseph Pelrine

W-JAX 09 - Mastering differentiated MDSD Requirements at Deutsche Boerse AG

10. November 2009 – München, Arabellastraße 6 - Heiko Behrens, Karsten Thoms

Eclipse Demo Camp Leipzig – 17:00 bis 20:00

17. November 2009 – Leipzig - Lars Martin

Alle aktuellen Veranstaltungen und weiterführende Informationen auf: http://www.itemis.de/veranstaltungen

Mittwoch, 7. Oktober 2009