kollaboration in java projekten - anspruch und realität
DESCRIPTION
Dieser Vortrag von der JAX 2008 beleuchtet verschiedene Application Lifecycle Management (ALM) Werkzeuge um die Zusammenarbeit in Java Teams zu unterstützen. Die Tools werden nach verschieden Stufen klassifiziert: Von Level 1 (ein wilder Mix aus lose gekoppelten Open Source Lösungen) bis Level 3 (die voll integrierte ALM Plattform) ist alles möglich. Beispielhaft vorgestellt werden: Subversion + Trac + Mylyn, Polarion ALM + FastTrack, Microsoft TFS, Eclipse Jazz / Rational Team ConcertTRANSCRIPT
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 1
Teamkollaboration in Java-Projekten
Torben Knerr, Dr. Georg Molter
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 2
Übersicht
• Herausforderungen räumlich verteilter Projekte
• Kollaborationsplattformen Level 1 Beispiel: Subversion + Trac + Mylyn
• Kollaborationsplattformen Level 2 Beispiel: Polarion ALM
• Kollaborationsplattformen Level 3 Beispiel: IBM Jazz
• Was wirklich wichtig ist…
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 3
Eigenheiten verteilter Projektdurchführung
Probleme aller Projekte – plus durch räumliche Verteilung herbeigeführte Schwierigkeiten
• Unzureichende Transparenz von Planung und Projektfortschritt
• Gefahr unterschiedlicher Interpretation von Requirements
• Gefahr von Kommunikationsfehlern
Weitere Implikationen der verteilten Projektdurchführung
• Einschränkung der Kommunikationsmittel (Telefon, Video, Chat, Filesharing, Application Sharing, ...)
• Hohe Latenzen, geringe(re) Netzwerkbandbreite
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 4
Erfolgsvoraussetzungen für verteilte Projekte
Einheitliche Grundlage für Planung, Steuerung, Controlling und Entwickung
Einheitliche Begriffswelt, Konzepte, Tools und Prozesse
an allen Projektstandorten
Toolunterstützung für kollaborative Entwicklung
- Work Items - Requirements
Arbeitspakete müssen eindeutig zu Requirements zuzuordnen sein, ansonsten geht Kontrollierbarkeit verloren Verständlichkeit für Entwickler, Tester als Voraussetzung für gemeinsames Verständnis
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 5
Werkzeugunterstützung für Kollaboration
Abdeckung der folgenden Disziplinen • Requirements Management und Change Request
Management • Test Management • Issue Tracking • Konfigurations- und Buildmanagement • Dokumentenverwaltung • Projekt- und Ressourcenplanung, Reporting • Kommunikation
Randbedingungen • Offline-Fähigkeit • Einsetzbarkeit in räumlich verteilten Umgebungen
– VPN / Kein VPN
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 6
Die Java-Perspektive
Spezielle Situation im Java-Umfeld
• Quasistandards und mächtige Tools – Enwicklungsumgebung – Buildautomatisierung (ant, maven, CruiseControl) – Testautomatisierung (*unit) – Sourcecode-Verwaltung
• Sprachunterstützung für Kapselung und Separation of Concerns
• Erfahrung mit Open Source-Projekten (generell kollaborativ entwickelt)
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 7
• Level 3: Integrierte Plattform, Einbettung in IDE + web-basiert
• Level 2: Integrierte Plattform, hauptsächlich web-basiert
• Level 1: Mix von einzelnen (meist Open Source) Tools
Aber: Gewünschter Grad der IDE-Integration ist rollenabhängig!
Ebenen von Kollaborationsplattformen
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 7
• Level 3: Integrierte Plattform, Einbettung in IDE + web-basiert
• Level 2: Integrierte Plattform, hauptsächlich web-basiert
• Level 1: Mix von einzelnen (meist Open Source) Tools
Aber: Gewünschter Grad der IDE-Integration ist rollenabhängig!
Ebenen von Kollaborationsplattformen
Grad der Konzept- Integration
Gra
d de
r To
ol-
Inte
grat
ion
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 7
• Level 3: Integrierte Plattform, Einbettung in IDE + web-basiert
• Level 2: Integrierte Plattform, hauptsächlich web-basiert
• Level 1: Mix von einzelnen (meist Open Source) Tools
Aber: Gewünschter Grad der IDE-Integration ist rollenabhängig!
Ebenen von Kollaborationsplattformen
Grad der Konzept- Integration
Gra
d de
r To
ol-
Inte
grat
ion
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 8
Kollaborationsplattformen Level 1 Mix einzelner (meist Open Source) Tools
Pro • Häufig frei von Lizenzkosten
• Viele Open Source Lösungen verfügbar
• Breite Benutzerbasis
Contra • Erhöhter Administrations- und Konfigurationsaufwand
Beispiele • Subversion + Trac + Mylyn + …
• CVS + BugZilla + TWiki + …
Konzeptintegration
Tool
inte
grat
ion
L1
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 9
Kollaborationsplattformen Level 1 Beispiel: Subversion + Trac + Mylyn
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 9
Kollaborationsplattformen Level 1 Beispiel: Subversion + Trac + Mylyn
Mylyn
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 9
Kollaborationsplattformen Level 1 Beispiel: Subversion + Trac + Mylyn
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 9
Kollaborationsplattformen Level 1 Beispiel: Subversion + Trac + Mylyn
Implizite Ver- knüpfung über Check-In Kommentar
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 10
Kollaborationsplattformen Level 1 Beispiel: Subversion + Trac + Mylyn
Disziplinen • Konfigurationsmanagement, Task/Defect Tracking,
Projektplanung, Kommunikation
Charakteristika • Open Source, keine Lizenzkosten
• Verknüpfung zwischen Tasks und Code-Änderungen über Check-In Kommentar
• Projektplanung auf Ebene von Tasks und Meilensteinen
• Beinhaltet ein Wiki
• Integration in Eclipse über Mylyn + SubClipse
RM / CRM
Issue Tracking
CM / Build Mgmt
Doc. Mgmt
Proj. Mgmt, Reporting
Test Mgmt
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 11
Kollaborationsplattformen Level 2 Integrierte Plattformen, hauptsächlich Web-basiert
Pro • Durchgängige Integration der Konzepte
• Einheitliche Benutzeroberfläche, Web-basiert
• Weniger Konfigurations- und Administrationsaufwand
Contra • Lizenzkosten
• Nur teilweise Integration in IDE über Plugins
Beispiele • Polarion ALM Enterprise (+ FastTrack)
• CollabNet Enterprise Edition (+ CollabNet Desktop)
Konzeptintegration
Tool
inte
grat
ion
L1 L2
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 14
Kollaborationsplattformen Level 2 Beispiel: Polarion ALM Enterprise
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 14
Kollaborationsplattformen Level 2 Beispiel: Polarion ALM Enterprise
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 14
Kollaborationsplattformen Level 2 Beispiel: Polarion ALM Enterprise
Work Item Ansicht Dashboard u.a. mit "Live Plan“ Portlet
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 15
Kollaborationsplattformen Level 2 Beispiel: Polarion ALM Enterprise + FastTrack
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 15
Kollaborationsplattformen Level 2 Beispiel: Polarion ALM Enterprise + FastTrack
Work Item Queries und Links zu Polarion Web UI
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 15
Kollaborationsplattformen Level 2 Beispiel: Polarion ALM Enterprise + FastTrack
Work Item T5UW17: HelloWorld soll implementiert werden
Work Item Queries und Links zu Polarion Web UI
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 16
Kollaborationsplattformen Level 2 Beispiel: Polarion ALM Enterprise + FastTrack
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 16
Kollaborationsplattformen Level 2 Beispiel: Polarion ALM Enterprise + FastTrack
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 16
Kollaborationsplattformen Level 2 Beispiel: Polarion ALM Enterprise + FastTrack
Explizites Hinzufügen von Work Items beim Commit
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 17
Kollaborationsplattformen Level 2 Beispiel: Polarion ALM Enterprise + FastTrack
Disziplinen • Alle Disziplinen werden abgedeckt
Charakteristika • Projektplanung basierend auf Work Items
• Ausgeprägte Integration mit MS Office
• Subversion als zentrales Repository für alle Artefakte
• Ausgeprägte Unterstützung für Requirements
FastTrack • Eclipse Plugin zur Verwaltung von Work Items
• Explizite Verknüpfung von Work Items zu Check-In
RM / CRM
Issue Tracking
CM / Build Mgmt
Doc. Mgmt
Proj. Mgmt, Reporting
Test Mgmt
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 18
Kollaborationsplattformen Level 3 Integrierte Plattform, Einbettung in IDE
Pro • Vollständige und disziplinenübergreifende Integration
• IDE als zentrales Tool, alternativ Web UI
• Hohe Usability durch „Rich Client“ Applikation
Contra • Signifikante Lizenzkosten
• Steigende Komplexität der IDE
Beispiele • IBM Rational Jazz Platform
• Microsoft Team Foundation Server (TFS)
Konzeptintegration
Tool
inte
grat
ion
L1 L2
L3
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 19
Kollaborationsplattformen Level 3 Beispiel: Microsoft Visual Studio Team System / Team Foundation Server
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 20
Kollaborationsplattformen Level 3 Beispiel: Microsoft Visual Studio Team System / Team Foundation Server
Disziplinen • Alle Disziplinen werden abgedeckt
Charakteristika • Verwaltung von WorkItems, Tests, Builds / Releases mit
SCM integriert
• VisualStudio als gemeinsame Oberfläche
• Datenbankgestützte Verwaltung von WorkItems etc.
• Komfortable Reporting-Möglichkeiten
RM / CRM
Issue Tracking
CM / Build Mgmt
Doc. Mgmt
Proj. Mgmt, Reporting
Test Mgmt
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 21
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 21
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Beispiel-Code für die JAX soll erstellt werden
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 22
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 22
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
SCM Konzepte: Streams und Repository Workspaces
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 22
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
SCM Konzepte: Streams und Repository Workspaces
Explizite Zuordnung von Work Items zu Change-Sets
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 22
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
SCM Konzepte: Streams und Repository Workspaces
Explizite Zuordnung von Work Items zu Change-Sets
„Delivern“ des Beispiel-Code in den Stream
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 23
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 23
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Continuous Integration mit Build Server
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 23
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Ooops… JUnit Test ist fehlgeschlagen
Continuous Integration mit Build Server
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 23
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Ooops… JUnit Test ist fehlgeschlagen
Continuous Integration mit Build Server
Erstelle „Defect“ für fehlgeschlagenen Build
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 24
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
„Defect“ wurde erstellt…
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 25
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 25
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Bug in JUnit Test wurde behoben
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 25
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Bug in JUnit Test wurde behoben
„Defect“ ist mit Change Set verknüpft
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 25
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Bug in JUnit Test wurde behoben
„Defect“ ist mit Change Set verknüpft
„Delivern“ des Bugfix und Schließen des „Defect“
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 26
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 26
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Build war erfolgreich!
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 26
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Build war erfolgreich!
Link zu eben geschlossenem „Defect“
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 27
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 27
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Rück-Verlinkung auf Change-Sets, Builds und andere Artefakte
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 28
Kollaborationsplattformen Level 3 Beispiel: IBM Rational Jazz Platform
Disziplinen • Alle Disziplinen werden abgedeckt
Charakteristika • Extrem hohe Integration über alle Disziplinen
• SCM basierend auf Unified Change Management
• Ausgeprägtes Build-Management
• Prozess-Templates und „Process Awareness“
• Umfassendes Reporting mit Eclipse BIRT
• Synchrone Kommunikation (Chat)
• Teilfunktionalität über Web UI
RM / CRM
Issue Tracking
CM / Build Mgmt
Doc. Mgmt
Proj. Mgmt, Reporting
Test Mgmt
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 30
What really matters…
Enge Abstimmung von Tooling und Prozessen ( Lücken im Tooling können durch Prozesse kompensiert werden) Aber: Tools können keine Prozesse ersetzen! Tooling für Kollaboration • Erfordert ein Adressieren aller für die Entwicklung
relevanter Disziplinen • Erfordert eine möglichst hohe Durchgängigkeit von
Konzepten über die Disziplinen hinweg
Voraussetzung für gemeinsames Verständnis, durchgängige Planung und durchgängiges Reporting
/ Absprachen
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 31
What really matters…
Parameter für die Auswahl der Kollaborationsumgebung • Organisatorische Komplexität des Projektes • Zuordnung von Aufgaben / Rollen zu Standorten • Lokale / gemeinsame Ownership von Subsystemen oder
Komponenten
Ziel: sinnvolle Balance zwischen • Vereinheitlichung / detaillierter Planung vs.
Gestaltungsfreiheit • Globaler Konsistenzsicherung vs. Performance
(Antwortzeiten / Netzwerkbandbreite) • Benefit durch die Toolunterstützung vs. Kosten /
Betriebsaufwand / Verlust von Freiheitsgraden
Teamkollaboration in Java-Projekten
© Zühlke 2008
21.04.2008
Torben Knerr, Dr. Georg Molter
Folie 32
Vielen Dank für Ihre Aufmerksamkeit!
Kontakt: Torben Knerr Dr. Georg Molter [email protected] [email protected] http://xing.to/tknerr http://xing.to/GeorgMolter
… oder besuchen Sie uns am Zühlke-Stand!