25.12.2014 Aufrufe

Konzeptionelle Integrität im Scrum Prozess - agil

Konzeptionelle Integrität im Scrum Prozess - agil

Konzeptionelle Integrität im Scrum Prozess - agil

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Konzeptionelle</strong> Integrität<br />

<strong>im</strong> <strong>Scrum</strong> <strong>Prozess</strong><br />

Agile World 2012<br />

Ulf Schneider<br />

+49 163 2505164<br />

us@datenlabor.net<br />

www.alles<strong>agil</strong>.net<br />

Datenlabor GmbH<br />

Hillebrandstr. 6<br />

33102 Paderborn<br />

www.datenlabor.net


1<br />

<strong>Konzeptionelle</strong><br />

Integrität<br />

D A T E N L A B O R


Benutzer<br />

Ein konzeptionell integrer Entwurf ist<br />

- intuitiv verständlich,<br />

- längerfristig sinnvoll und klar.<br />

Entwickler<br />

Betreiber<br />

D A T E N L A B O R


D A T E N L A B O R<br />

Wie entsteht konzeptionelle Integrität


Problem<br />

Lösung<br />

D A T E N L A B O R


Vom Problem zur Lösung<br />

Problemraum<br />

Lösungsraum<br />

Zielsetzung Anforderungen Architektur Design Implementierung<br />

Überprüfung und<br />

Anpassung<br />

D A T E N L A B O R


Mut zur Vision und Demut dem Detail<br />

Vom Problem zur Lösung<br />

Problemraum<br />

Lösungsraum<br />

Zielsetzung<br />

Anforderungen Architektur Design Implementierung<br />

<strong>Konzeptionelle</strong> Integrität ist über alle Disziplinen herzustellen, aber besonders über die Architektur.<br />

Überprüfung und<br />

Anpassung<br />

D A T E N L A B O R


2<br />

Architektur<br />

und <strong>Scrum</strong><br />

D A T E N L A B O R


Softwareentwicklung als definierter <strong>Prozess</strong><br />

Problemraum<br />

Change<br />

Request<br />

Change<br />

Request<br />

Change<br />

Request<br />

Change<br />

Request<br />

Analyse<br />

Lösungsraum * * * *<br />

Architektur und<br />

Design Implementierung Test Auslieferung<br />

Inter-Domänen<br />

Kommunikation<br />

*<br />

Das<br />

Problem, oder das Verständnis des Problems ändert sich.<br />

D A T E N L A B O R


Deliver early and decide late!<br />

<strong>Scrum</strong> folgt einem empirischen <strong>Prozess</strong>modell<br />

Problemraum<br />

Lösungsraum<br />

Analyse<br />

Architektur<br />

Design<br />

Implementierung<br />

Test<br />

Auslieferung<br />

Analyse<br />

Architektur<br />

Design<br />

Implementierung<br />

Test<br />

Auslieferung<br />

Analyse<br />

Architektur<br />

Design<br />

Implementierung<br />

Test<br />

Auslieferung<br />

Analyse<br />

Architektur<br />

Design<br />

Implementierung<br />

Test<br />

Auslieferung<br />

Inter-Domänen<br />

Kommunikation<br />

D A T E N L A B O R


Wie werden <strong>im</strong> <strong>Scrum</strong><br />

die Architekturentscheidungen getroffen<br />

D A T E N L A B O R


Die Architektin hat das letzte Wort bei Architekturentscheidungen<br />

Analog dem Product Owner bei Geschäftsentscheidungen<br />

D A T E N L A B O R<br />

Vgl. F.P. Brooks, The Design of Design, Addison Wesley 2010, S. 79 ff.


Der Architekt führt Entscheidungen partizipativ herbei<br />

<br />

divergentes<br />

konvergentes<br />

✔<br />

Denken<br />

Denken<br />

emergenter<br />

Entscheidungsbedarf<br />

• der Teilnehmerkreis wird<br />

durch den Architekten<br />

eingeladen<br />

• der Architekt hat das<br />

letzte Wort<br />

Vgl. Sam Kaner, Facilitators Guide to Participatory Decision-Making, Jossey-Bass, 2007, S. 3-21<br />

D A T E N L A B O R


3<br />

Der<br />

Architekt <strong>im</strong> <strong>Scrum</strong><br />

D A T E N L A B O R


Eingliederung in das Projekt<br />

Ein <strong>Scrum</strong> Team<br />

ARC<br />

PO<br />

<strong>Scrum</strong> Team<br />

SM<br />

D A T E N L A B O R


Eingliederung in das Projekt<br />

Ein <strong>Scrum</strong> Team<br />

Mehrere <strong>Scrum</strong> Teams<br />

PO<br />

ARC<br />

ARC<br />

PO<br />

<strong>Scrum</strong> Team<br />

PO<br />

<strong>Scrum</strong> Team<br />

SM<br />

SM<br />

PO<br />

<strong>Scrum</strong> Team<br />

SM<br />

D A T E N L A B O R


Der Architekt gehört zum Projekt und<br />

stiftet dem Projekt Nutzen<br />

Der Architekt kann programmieren<br />

Der Architekt bildet aus<br />

D A T E N L A B O R


4<br />

Der<br />

Architekt in der Organisation<br />

D A T E N L A B O R


Keine Architektur durch Gremien<br />

Gremienarchitektur ist die Garantie für ein aufgeblähtes Produkt<br />

Vgl. F.P. Brooks, The Design of Design, Addison Wesley 2010, S. 71<br />

D A T E N L A B O R


Stattdessen: Ein Architekturgremium gibt unternehmensweite<br />

Architekturziele und Randbedingungen vor<br />

D A T E N L A B O R


Der Architekt entscheidet für sein Projekt unter<br />

Beachtung der Vorgaben<br />

D A T E N L A B O R


Große Projektorganisationen führen<br />

zu aufgeblähten Produkten.<br />

Hochleistungsorganisationen sind<br />

flach.<br />

Conway's Law<br />

Melvin Conway, 1968<br />

Any organization that designs a system<br />

will produce a design whose structure<br />

is a copy of the organization's<br />

communication structure.<br />

Vgl. http://www.melconway.com/Home/Conways_Law.html<br />

D A T E N L A B O R


5<br />

Einige<br />

Werkzeuge des Architekten<br />

D A T E N L A B O R


Architekturziele für das Projekt ermitteln<br />

Ziel: Erkennen, was wichtig ist<br />

Niemals ohne Festlegung und<br />

Abst<strong>im</strong>mung dieser Ziele beginnen.<br />

Interessenvertreter<br />

identifizieren<br />

Architekturziele<br />

ermitteln<br />

Architekturziele<br />

explizit machen, z.B.<br />

in der Produkt- oder<br />

Architekturvision *),<br />

und kommunizieren<br />

Der Architekt<br />

denkt sich die<br />

Architekturziele<br />

nicht selbst aus.<br />

• Erweiterbarkeit<br />

• Verfügbarkeit<br />

• Performance<br />

• Bedienbarkeit<br />

• Sicherheit<br />

• ...<br />

Architekturziele<br />

müssen bekannt<br />

und abgest<strong>im</strong>mt<br />

sein.<br />

*)<br />

http://alles<strong>agil</strong>.net/2012/01/01/der-erste-knopf/<br />

http://www.scrumalliance.org/articles/115-the-product-vision<br />

http://www.sigs-datacom.de/fileadmin/user_upload/zeitschriften/os/2011/04/pichler_roock_OS_04_11.pdf<br />

D A T E N L A B O R


Beispiele für verschiedene Architekturziele<br />

Repräsentation<br />

Villa La Rotonda, Quelle: Wik<strong>im</strong>edia<br />

Verteidigung<br />

Festung Hohensalzburg,<br />

Foto Andrew Bossi, Quelle: Wik<strong>im</strong>edia<br />

Mobilität<br />

Aquarell von Karl Bodmer, Quelle: Wik<strong>im</strong>edia<br />

D A T E N L A B O R


Systemkontext<br />

Ziel: Belastung und Schnittstellen des Systems erkennen<br />

Sachbearbeiter<br />

500<br />

Bestandssystem<br />

Spezialist<br />

0..10<br />

2 Fälle pro Tag<br />

Synchronisation<br />

330.000 einmal <strong>im</strong> Jahr<br />

300 bis 2000 Neugeschäft pro Tag<br />

20000 pro Jahr Abgang. E1<br />

http Web GUI<br />

E2<br />

330.000 an einem Tag <strong>im</strong> Jahr<br />

100 pro Tag<br />

Antwort auf<br />

Anfrage<br />

50 pro Tag<br />

A5<br />

JMS<br />

JMS<br />

System<br />

Bestand 2010:<br />

330.000<br />

JMS<br />

Konfig. + Logging<br />

Dateien<br />

JMS<br />

JMS<br />

JMS<br />

JMS<br />

Administrator<br />

0..10<br />

A1<br />

A2<br />

A3<br />

A4<br />

Ausgabe<br />

A1<br />

Ausgabe<br />

A2<br />

Ausgabe<br />

A3<br />

Ausgabe<br />

A4<br />

10.000 pro Jahr,<br />

an 12 Terminen<br />

10.000 pro Jahr,<br />

an 4 Terminen<br />

330.000 pro Jahr,<br />

an einem Termin<br />

330.000 pro Jahr,<br />

an einem Termin<br />

D A T E N L A B O R


Begrenzende Ressource<br />

Ziel: Die wesentliche Schwierigkeit aktiv behandeln<br />

NFA in die Fertigstellungskriterien<br />

(DoD) aufnehmen<br />

Begrenzende Ressource ermitteln und<br />

mit den Fertigstellungskriterien<br />

überprüfen<br />

Vgl. F.P. Brooks, The Design of Design, Addison Wesley 2010, S. 119 ff.<br />

D A T E N L A B O R


Komponentensicht<br />

Komponenten<br />

A<br />

B<br />

C<br />

Ziel: Innere Struktur des Systems<br />

mit seinen Komponenten sichtbar<br />

machen.<br />

E<br />

D<br />

D A T E N L A B O R


End-to-end Skeleton<br />

Ziel: Frühe, ganzheitliche Sicht und durchgehender Datenfluss<br />

Komponenten und ggf. <strong>Scrum</strong> Teams<br />

A<br />

B<br />

C<br />

Schnittstellen früh definieren (in der<br />

Hand des Architekten)<br />

Bei Bedarf Mocks in den<br />

Komponenten verwenden<br />

E<br />

D<br />

Vgl. F.P. Brooks, The Mythical Man Month (überarbeitete Ausgabe), Addison Wesley 1995, S. 267<br />

D A T E N L A B O R


Story-Board<br />

Ziel: Verständnis gemeinsam mit dem <strong>Scrum</strong> Team (bzw. den Team's) vertiefen<br />

User Story<br />

Aufgaben zur<br />

Umsetzung der Story<br />

Komponenten<br />

User Story in Aufgaben zergliedern<br />

Aufgaben visuell den Komponenten<br />

A<br />

B<br />

C<br />

zuordnen<br />

Fehlende Komponenten oder neu zu<br />

strukturierende Komponenten<br />

erkennen<br />

E<br />

D<br />

D A T E N L A B O R


Box-Bullet-Line (BBL)<br />

Ziel: Kommunikation für alle<br />

A<br />

1<br />

B<br />

2<br />

C<br />

3<br />

1. A sendet eine Nachricht an B<br />

2. C holt eine Nachricht von B ab<br />

3. C übermittelt eine Nachricht an A<br />

vgl. http://alles<strong>agil</strong>.net/2011/04/17/box-bullet-line-notation/<br />

D A T E N L A B O R


Architekturentscheidungen dokumentieren<br />

Ziel: bewusste und nachvollziehbare Architektur<br />

Dieses Modell haben wir Stefan Zörner zu verdanken! Vgl.: S. Zörner, Historisch gewachsen - Entscheidungen festhalten, in: Java Magazin 04/2009<br />

D A T E N L A B O R


Softwaresysteme werden nicht gebaut, sondern sie<br />

wachsen.<br />

Gute Architekturen werden von guten - kreativen -<br />

Architekten entworfen.<br />

D A T E N L A B O R


I<br />

❤<br />

Agile

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!