35

Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines
Page 2: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Das Kommunikations-Problem

Architekten, Entwickler und die Code-Basis

Zusammenfassung

Page 3: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Miteinander, Nebeneinander, Durcheinander – Kommunikation und Koordination in Softwareprojekten

Page 4: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Kommunikation

Übertragung von Informationen

Quelle – Kanal – Senke

Beispiel: Mensch zu Mensch

Page 5: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Experiment

Page 6: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Welche Problem haben Sie erkannt?

Kommunikation ist unsicher!

Explizites und Implizites Wissen

UnvollständigeBeschreibung

MehrdeutigeBeschreibung

UnterschiedlicheBegriffswelten

KontextabhängigeInterpretation

Page 7: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Was hat das mit mir zu tun?

Skizze eines kleinen Projekt-Teams

Entwickler

Entwickler

Entwickler

Test

Architekt

Requirements-

Engineer

Operations

„Kunde“

Anwender

Projektleiter

Page 8: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Team A

Team B

Team C

Team …

CCB

TestKunde 1

Kunde 2

Ops

FunctionalTeam

Marketing Management

CS InfraStruct.

Page 9: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Hürden

IndirektionSprachlicheBarrieren

KulturelleDifferenzen

Veränderungenüber die Zeit

Zeitl./RäumlicheTrennung

Erfahrungsabh.Interpretation

Interessens-konflikte

OrganisatorischeTrennung

UnklareStrategie

Page 10: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Hürden

IndirektionSprachlicheBarrieren

KulturelleDifferenzen

Veränderungenüber die Zeit

Zeitl./RäumlicheTrennung

Erfahrungsabh.Interpretation

Interessens-konflikte

OrganisatorischeTrennung

UnklareStrategie

Fehlinterpretationen

Informationsverluste

Page 11: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

How Projects Really WorkQuelle: http://www.projectcartoon.com/cartoon/2

Page 12: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

How the customerexplained it

How the project leaderunderstood it

How the analystdesigned it

Page 13: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

How the programmerwrote it

What the beta testersreceived

How the businessconsultant described it

Page 14: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

How the project was documented

What operationsinstalled

How the customer was billed

Page 15: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

How it was supported What marketingadvertised

What the customerreally needed

Page 16: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Sind Software-Projektevon Vornherein

zum Scheitern verurteilt?

Page 17: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Software-Projekt = Beherrschung von Komplexität

OrganisatorischSchaffung eines geeigneten Rahmens

FachlichDen Kunden und seine Domäne verstehen

TechnischUmsetzung mit geeigneten

Technologien und Werkzeugen

Page 18: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Ansätze

Grundbegriffe agiler Ansätze

Klare Zuständigkeiten Und Verantwortlichkeiten

Kurze Feedback-Zyklen

Geeignete Besetzungvon Rollen

Abbau organisatorischerBarrieren

Definition undKommunikation

von Zielen und Prinzipien

Page 19: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Miteinander, Nebeneinander, Durcheinander – Kommunikation und Koordination in Softwareprojekten

Page 20: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Entwickler

Entwickler

Entwickler

Test

Architekt

Requirements-

Engineer

Operations

„Kunde“

Anwender

Projektleiter

Page 21: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Großer Umfang (10.000-100.000 Dateien, Mio. LoC)

Unterschiedliche Sichten und Interessen

CodebasisJava-Klassen und Packages

ModuleDatenbank-Skripte

KonfigurationsdateienBuild-Deskriptoren

Versionsverwaltungsystem…

Architekt

Entwickler

Integration

Entwickler

Page 22: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Architekt

Betrachtung auf abstrakter Ebene

funktionale Einheiten und deren Beziehungen

Schnittstellen

Entwickler

Betrachtung auf Detail-Ebene

Klassen, Methoden, Felder, Annotationen

Frameworks, Bibliotheken

Design

Quellcode umfasst mehrere semantische Ebenen

Explizit und implizit Kommunikationsproblem!

Page 23: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Sicht eines Architekten

CORE

Scanner Analysis Report

Plugin

Maven CLI

Page 24: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Sicht eines EntwicklersPlugin

public class CSVFileScannerPlugin extendsAbstractScannerPlugin<FileResource, CSVFileDescriptor> {

@Overridepublic boolean accepts(FileResource item, String path, Scope scope)throws IOException {return path.toLowerCase().endsWith(".csv");

}

@Overridepublic CSVFileDescriptor scan(FileResource item, String path,Scope scope, Scanner scanner) throws IOException {// Open the input stream for reading the file.try (InputStream stream = item.createStream()) {

Page 25: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Verletzung der Architektur

i.d.R. unbeabsichtigt, z.B. fehlendes Wissen

Sehr teuer, wenn zu spät erkannt

CORE

Scanner Analysis Report

Plugin

Maven CLI

Page 26: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Entwickler != Entwickler

Gleiches Problem – Verschiedene Lösungen

System.out.println()

LOGGER.info()

Unverständliche Lösung

for (int i=10; i>0; i--) {

}

„Principle of least Surprise“

Page 27: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Festlegung, Kommunikation und Durchsetzung von Regeln

Architektur

Design

Coding-Konventionen

Ziel

Kohärente Strukturen und Namen

Schnelle Orientierung

Einheitliche Design-Muster

Befriedigung von Erwartungshaltungen

Erleichterung von Refactorings

Implementierungen, die zum technologischen Umfeld passen

Page 28: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Rahmenbedingungen

Ständig wachsende Informationsmenge

Personelle Fluktuation

Unterschiedliche Skills und Einstellungen

Zeitdruck

Architekt

Entwickler

Entwickler

Page 29: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Dokumentation

Word, UML, Wiki, …

Ist immer veraltet

Oft nicht einem Softwarestand zuzuordnen

Zusammenführung mit Code

Generierung von Code aus Dokumentation

Modellgetriebene Ansätze

Generierung von Dokumentation aus Code

Entwickler-Dokumentation

Architektur-Dokumentation

Anwender-Dokumentation?

Page 30: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Definition von Verantwortlichkeiten

Nach Funktionalität

Teams mit kompletter Rollenverteilung

Nach Aspekt

Architektur (fachlich)

Architektur (technisch)

Build-/Integrationsmanagement

Pair-Programming und Reviews

Direkte Verteilung von Wissen

Aber: erreicht die Information alle Beteiligten?

Page 31: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Einsatz von Werkzeugen

Statische und dynamische Code-Analysen

Schnellstmögliches Feedback

Quality Gates

IDE

Lokaler Build

CI Build

Report Build

Entwickler

Page 32: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Miteinander, Nebeneinander, Durcheinander – Kommunikation und Koordination in Softwareprojekten

Page 33: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Kommunikation ist fehleranfällig

Verluste, Interpretation, Interessen, …

Softwareprojekte sind komplex

Fachlich, technisch, organisatorisch

Organisatorische Rahmenbedingungen sind wichtigster Faktor für Erfolg/Misserfolg eines Projektes

Abgleich von Organisations- und Projektstrukturen

Nähe zu allen Projektbeteiligten (Kunde bis Operations) schaffen

Schnelle Feedback-Zyklen ermöglichen

Page 34: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

Quellcode umfasst verschiedene semantische Ebenen

Nicht alle sind direkt sichtbar

Verschiedene Sichten auf die selben Artefakte

Rollenabhängig

Schaffung von Kohärenz ist elementar

Allen Rollen muss benötigtes Kontextwissen zugänglich sein

Kommunikationsproblem

Ansätze

Dokumentation

Pair-Programming, Reviews

Code-Generierung oder automatisiertes Feedback

Page 35: Das Kommunikations-Problem Architekten, …st.inf.tu-dresden.de/files/teaching/ws14/ring/Miteinander...Sicht eines Architekten CORE Scanner Analysis Report Plugin Maven CLI Sicht eines

buschmais.de

facebook.com/buschmais

twitter.com/buschmais