Business Value-Driven Management and IT Consulting. Erfolgreiches Build- und Release-Management in großen Projekten



Ähnliche Dokumente
Konfigurationsmanagement

Java Entwicklung für Embedded Devices Best & Worst Practices!

Erfolgreicher Ums9eg auf Git

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

Konfigurationsmanagement mit Subversion, Ant und Maven

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

ITIL und Entwicklungsmodelle: Die zwei Kulturen

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Übersicht. Eclipse Foundation. Eclipse Plugins & Projects. Eclipse Ganymede Simultaneous Release. Web Tools Platform Projekt. WSDL Editor.

Entwicklungsumgebungen. Packer, Vagrant, Puppet. Alexander Pacnik Mannheim,

Entwicklungswerkzeuge

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Einreichung zum Call for Papers

Versionsverwaltung mit SVN

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]

IT-Projekt-Management

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Deployment Deployment Seite 1 / 25

Build-Pipeline mit Jenkins

Database Change Management für Continuous Delivery. Diana Lander und Andreas Falk NovaTec Consulting GmbH

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

Projektmanagement in der Spieleentwicklung

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern

Continuous Delivery in der Realität eines Großunternehmens

Kapitel 10: Dokumentation

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Dokumentation! Kapitel 21

Make-loses Java für mehr Produktivität: Das z 2 -Environment. Henning Blohm

Installationsanleitungen

Das Interceptor Muster

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Consultant & Geschäftsführer, enpit consulting OHG ugb@enpit.de

SPI-Seminar : Interview mit einem Softwaremanager

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Konfigurationsmanagement mit Subversion, Maven und Redmine

Konfiguration Management System. Konfiguration Management System. Versionierung Parallele Entwicklung Workspace

Microsoft SharePoint 2013 Designer

Kurzfassung der Studienarbeit

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Benötigen wir einen Certified Maintainer?

Die Entwicklung des Open-Source. Source-Tools. zum Datenbankabgleich von Karsten Panier. Inhalt

Ohne Build geht's besser: Makeloses Java mit dem z 2 -Environment. Henning Blohm

Git in großen Projekten

Software Engineering in der Praxis

Standardisiert aber flexibel

Continuous Integration mit Jenkins

Systemen im Wandel. Autor: Dr. Gerd Frenzen Coromell GmbH Seite 1 von 5

Conigma CCM (3G) - Überblick -

SERVICE SUCHE ZUR UNTERSTÜTZUNG

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Evaluation eines kooperativen Entwicklungswerkzeuges zur Unterstützung von Projektteams am Beispiel von IBM Rational Team Concert.

Fachapplikationen in heterogenen IT Landschaften

MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS

Mehr Umsatz durch Übersetzungen? Geht das?

SOA Starter Kit Einführungsstrategien und Einstiegspunkte

Qualitätsmanagement: Dokumentieren. Kontrollieren. Verfolgen.

Apache - Maven. Java-Erstellung auf Plugin-Basis. Martin Hoffmann

Agilität auf Unternehmensebene - Was hält uns davon ab?


Einleitung: Frontend Backend

How to do? Projekte - Zeiterfassung

Herausforderungen des Enterprise Endpoint Managements

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Persönliche Einladung. Zur IT Managers Lounge am 4. November 2009 in Köln, Hotel im Wasserturm.

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Gambio GX2 FAQ. Inhaltsverzeichnis

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

HSR git und subversion HowTo

Einführung in Subversion

Neue Funktionen in Innovator 11 R5

Softwareanforderungsanalyse

Anforderungen an die HIS

«PERFEKTION IST NICHT DANN ERREICHT, WENN ES NICHTS MEHR HINZUZUFÜGEN GIBT, SONDERN DANN, WENN MAN NICHTS MEHR WEGLASSEN KANN.»

oose. Was (noch) klassische Projekte von Scrum & Co lernen können eine empirische Studie

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

Das Compare-, Merge- und Versionierungstool für Microsoft Dynamics NAV. NAVObjectEditor RECY CLE

IT-SICHERHEIT IM UNTERNEHMEN Mehr Sicherheit für Ihre Entscheidung

Softwaren Engineering I

Professionelle Seminare im Bereich MS-Office

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Software Qualität Übung 1

Transparente SOA Governance mit Modellierung. OOP 2010 München, 28. Januar 2010, 12:30 Uhr Modeling Day

Fragebogen ISONORM 9241/110-S

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Titel BOAKdurch Klicken hinzufügen

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

Sonnenfinsternis in der Technischen Redaktion

Software Projekt 2 / Gruppe Knauth Lernziele:

Requirements Engineering für IT Systeme

Versionskontrolle mit Subversion

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Organisation des Qualitätsmanagements

Internet Explorer Version 6

Geyer & Weinig: Service Level Management in neuer Qualität.

Lead Architects Forum Architekten im Dialog zu ILOG BRMS Moderation: Lars Klein, S&D

Transkript:

Business Value-Driven Management and IT Consulting Erfolgreiches Build- und Release-Management in großen Projekten Stefan M. Heldt Holger Koschek Holisticon AG 20. April 2007 stefan.heldt@holisticon.de, holger.koschek@holisticon.de www.holisticon.de

Agenda Konfigurationsmanagement Build Management Eclipse 3.2, Equinox und OSGi Release Management Versionierung und Roll-out Der Open-Source-Werkzeugkasten Fazit Diskussion 2007 Holisticon AG 2 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Die Build am Sonntag -Redaktion Stefan M. Heldt Projektmanager (GPM-zertifiziert) Softwarearchitekt Build/Release Manager Java EE Holger Koschek Softwarearchitekt Build/Release Manager Java EE Technische Dokumentation Unternehmensportale Co-Autor Co-Autoren Gutachter Co-Autor 2007 Holisticon AG 3 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Kennen Sie das nicht auch...? 2007 Holisticon AG 4 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Konfigurationsmanagement Sichere Verwaltung Transparenter Zugriff sicher Kontrollierte Produktion aller Ergebnisse (Artefakte) eines (Software-)Projekts. transparent kontrolliert komplett 2007 Holisticon AG 5 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Ziele und Maßnahmen des Konfigurationsmanagements Kommunikation Meritokratie Revisionssicherheit Änderungen kontrollieren Produktivität steigern Qualität sicherstellen Transparenz verbessern Modultests Metriken Fehlermanagement Standardisierung Projektautomatisierung Projekt- Homepages nach G. Popp: Konfigurationsmanagement mit Subversion, Ant und Maven 2007 Holisticon AG 6 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Disziplinen des Konfigurationsmanagements Konfigurationsmanagement Build-Management Testmanagement Qualitätsmanagement Release-Management nach G. Popp: Konfigurationsmanagement mit Subversion, Ant und Maven 2007 Holisticon AG 7 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Es geht doch auch ohne! Ich weiß, wie ich meine Software baue. Die Releasefrequenz ist oft gering. Aber weiß das auch die Kollegin? Und der Kunde? Build- und Release-Management kostet nur Geld. Aber sie steigt nicht selten im Verlauf eines Projektes! Kurzfristig ja, aber mittel- bis langfristig spart es Geld. 2007 Holisticon AG 8 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Build-Management vs. Release-Management Build-Management Übersetzen, Testen und Bereitstellen der Software (Compile Build Test Deploy) Auflösen von (internen/externen) Abhängigkeiten verschiedener Module Release-Management Definition der Liefergegenstände einer Softwareversion (Code, Skripte, Tests, Dokumentation, ) Prüfen der Liefergegenstände auf Vollständigkeit und Kompatibilität der Module Planen und Durchführen der Prozesse zur Auslieferung der Software (Merge, Code Freeze, Integrationstest, Roll-out) 2007 Holisticon AG 9 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Versionsverwaltung Verschiedene Module möglichst identische Struktur standardisierte Build-Infrastruktur projektspezifische Konfiguration projektspezifisches Build-Skript ruft zentralen Build-Prozess Konfiguration statt Scripting (Maven-Ansatz) 2007 Holisticon AG 10 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Versionsverwaltung CVS / Subversion / ClearCase /? egal Hauptsache, die Entwickler beherrschen das Werkzeug! eine falsch benutzte Versionsverwaltung ist schlimmer als gar keine defekte Branches falsche Merges Reserved Check-out und ab in den Urlaub! Open Source ist gut, aber auch ClearCase hat seine Berechtigung Entwicklung an verteilten Standorten Replikation des Repository 2007 Holisticon AG 11 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Die hohe Kunst des Branch & Merge Organisation der Branches modulspezifisch Namen ausrichten an den Funktionen, nicht an den Versionen Branch- und Mergepunkte zentral dokumentieren Guten Tag! setzt man vor dem Branch vor dem Merge (in HEAD und Branch) nach dem Merge 2007 Holisticon AG 12 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Die hohe Kunst des Branch & Merge Verwendung des HEAD für die Weiterentwicklung der nächsten Version + Branch nur bei Bug Fixes notwendig nur eine Entwicklungslinie für Bug Fixes (Flying Fish Approach) + parallele Weiterentwicklung in Branches nach Merge kein Hot Fix mehr möglich! erfordert disziplinierte Entwickler (HEAD ist für die Weiterentwicklung tabu) 2007 Holisticon AG 13 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Der Regelkreis des Build- und Release- Prozesses Entwicklung Entwicklertest Freigabe Dokumentation Änderungsfreigabe (Check in) Qualitätskontrolle (Metriken, Testüberdeckung) Integrationstest 2007 Holisticon AG 14 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

DasDie Build-Ergebnisse Die gewünschten Build-Ergebnisse sind abhängig vom Kunden : Entwickler, CruiseControl, Nightly Build, Produktion Anwendungsfall: Übersetzen, Testen, Archivieren, Produzieren Beispiele: Ein Entwickler sollte in seiner Entwicklungsumgebung nur die Interfaces anderer (Teil-)Projekte sehen Zum Testen braucht der Entwickler die implementierenden Komponenten Die Produktion ist nicht an den Unit-Tests interessiert 2007 Holisticon AG 15 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Software-Baumarkt Der Kunde baut die Software selbst Auslieferung eines Source-Pakets Bauen des Binary-Pakets (Build) in der Zielumgebung 2007 Holisticon AG 16 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Die redundanzfreie Entwicklungsumgebung Entwickler müssen viele Einstellungen mehrfach vornehmen, z.b. und zwar Abhängigkeiten zu (bestimmten Versionen von) externen Bibliotheken Abhängigkeiten zu anderen (Teil-)Projekten Compiler-spezifische Einstellungen in ihrer Entwicklungsumgebung Gefahr von Inkonsistenzen für den zentralen Build-Prozess in der Entwicklungsumgebung läuft es, und trotzdem bricht der Build 2007 Holisticon AG 17 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Eclipse 3.2, Equinox und OSGi Das Equinox Technology Project wurde ins Leben gerufen, um eine neue Ablaufumgebung für Eclipse zu definieren und implementieren Mit Eclipse 3.0 M6 wurde die Eclipse-Ablaufumgebung komplett auf eine OSGi-kompatible Umgebung umgestellt Einige Ergebnisse dieser Entwicklung fanden Eingang in das Eclipse OSGi Framework Das Equinox Technology Project wurde in das Equinox Eclipse Project überführt Eclipse (Top-level) project PDE Plug-in development environment JDT Java development tools Equinox an OSGi framework Platform 2007 Holisticon AG 18 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Eclipse 3.2, Equinox und OSGi OSGi Service Platform [ ] a standardized, component oriented, computing environment for networked services that is the foundation of an enhanced service oriented architecture. Skalierbar von Embedded Devices bis zur Serverfarm Breites Anwendungsspektrum Telematik (z.b. BMW) Smart Phones (z.b. Nokia) Hausautomatisierung (z.b. Siemens) Softwaretechnik (z.b. Eclipse) 2007 Holisticon AG 19 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Eclipse 3.2, Equinox und OSGi Equinox ist heute eine Implementierung der OSGi R4 Core Framework-Spezifikation Verantwortlich für die OSGi Framework-Implementierung aller Eclipse- Projekte Ein Plug-in in Eclipse entspricht einem OSGi-Bundle Eclipse Feature integriert o d e r eigenständig Equinox OSGi Container Plugin Plugin Bundle Bundle Nightly Build Test Integration Test 2007 Holisticon AG 21 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Eclipse Plug-in Development Environment (PDE) Entwicklungs- und Build-Infrastruktur für Features und Plug-ins Editoren für Konfigurationselemente OSGi-Manifest (META-INF/MANIFEST.MF) build.properties Starten des Builds aus Eclipse heraus von der Kommandozeile (Headless Build) Callbacks erlauben das Erweitern des Standard-Buildprozesses an definierten Einstiegspunkten Beide Builds verwenden dieselben Konfigurationsinformationen! 2007 Holisticon AG 22 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

PDE Headless Build A B Platform Feature I Equinox an OSGi framework JDT Java development tools PDE Plug-in development environment Headless Build Feature 1 Build callbacks build Feature 1 Plug-in A Plug-in B Build callbacks 2007 Holisticon AG 23 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Das Release-Puzzle: 1000 Teile ergeben ein B(u)ild Liefergegenstände einer Softwareversion Version ID Change Descriptions (mit Bezug auf Version ID) Dokumentation (Installationsanleitung, fachliche Release Notes) und natürlich die Software selbst Prüfen auf Vollständigkeit und Kompatibilität der Module möglichst automatische Prüfungen Begleitung technischer Integrationstests Dokumentation der Releases mit den Version IDs der einzelnen Module 2007 Holisticon AG 24 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Messen Steuern Regeln Code-Metriken auf die sinnvolle Auswahl kommt es an Berechnung kostet Zeit und geht zu Lasten der Build-Turnarounds Einhaltung muss von den Entwicklungswerkzeugen weitgehend unterstützt werden (z.b. max. Zeilenlänge im Eclipse-Editor einstellen) Testüberdeckung JUnit-Tests sind gut aber testen sie wirklich alle Klassen/Methoden? Weitere Maßnahmen Peer Review 2007 Holisticon AG 25 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Messen Steuern Regeln Metriken allein genügen nicht nicht nur sammeln, sondern auch auswerten! wirklichen Aufschluss geben nur die Trends einzelner Metriken Aufzeichnung und Auswertung über längere Zeiträume aus den Erkenntnissen der Metrik-Analyse müssen konkrete Maßnahmen abgeleitet und umgesetzt werden Trainings Richtlinien Neuzuordnung von Aufgaben 2007 Holisticon AG 26 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Messen Steuern Regeln Commit/Checkin: Wann Was Wer? Update: Wann? Welche Änderungen kommen in welches Release? Wer darf Merges durchführen? Wer darf in welche Branches schreiben? Design Patterns, Best Practices 2007 Holisticon AG 27 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Versionierung Was? Build-Ergebnisse (JAR, etc.) Konfigurationsdateien Softwarekomponenten und Strukturelemente (z.b. Eclipse-Features und Plug-Ins) Wann? Wie? nach jedem Build: Build-ID erhöhen (Bestandteil der Versionsnummer) Nach jeder Änderung Abhängig von der Änderung (Implementierung, Schnittstelle, Architektur) 2007 Holisticon AG 28 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Das Eclipse-Versionsschema In Eclipse werden Versionsnummern aus drei Zahlen und einer Zeichenkette gebildet: major.minor.service.qualifier Jedes Segment hat eine eigene Bedeutung: the major segment indicates breakage in the API the minor segment indicates "externally visible" changes the service segment indicates bug fixes and the change of development stream the qualifier segment indicates a particular build Automatisch in die Versionsnummer des Plug-ins generierbar Bundle-Version: 1.0.0.200611301635 2007 Holisticon AG 29 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Rock'n'Roll-out Client-Roll-out in einem paneuropäischen Projekt 1 Client-Softwarepaket + 4 verschiedene Systemumgebungen + 4 verschiedene IT-Organisationen + 4 verschiedene Validierungsprozesse + 4 verschiedene Benutzerberechtigungskonzepte = eine Menge Probleme und viel Zeit 2007 Holisticon AG 30 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Der Open-Source-Werkzeugkasten für das Build- und Release-Management Vorlage Heise-Verlag/c t Versionskontrolle CVS Subversion Build Management Ant Maven Continuous Integration JUnit CruiseControl Entwicklungsumgebung Eclipse SDK + Plugins 2007 Holisticon AG 31 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Fazit Dem Build- und Release-Management wird in vielen Projekten nicht der nötige Stellenwert eingeräumt Ziel: Lieferung der Software den Anforderungen entsprechend termingerecht kostengerecht qualitativ hochwertig Maßnahmen: weitgehend standardisierter und automatisierter Prozess für das Erstellen der Software sorgfältige und rechtzeitige Planung der Software-Releases 2007 Holisticon AG 32 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Stefan M. Heldt Holger Koschek Holisticon AG 20. April 2007 stefan.heldt@holisticon.de, holger.koschek@holisticon.de www.holisticon.de 2007 Holisticon AG 33 stefan.heldt@holisticon.de, holger.koschek@holisticon.de

Vielen Dank für Ihre Aufmerksamkeit 2007 Holisticon AG 34 stefan.heldt@holisticon.de, holger.koschek@holisticon.de