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!