bottom-up anstatt top-down: wie man eine einheitliche architektur bei vielfältigen anwendungen lebt...
TRANSCRIPT
![Page 1: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/1.jpg)
Bottom-up anstattTop-down
Wie man eine einheitliche Architektur bei vielfältigen
Anwendungen lebt
Markus Rehrs@spontifixus
Dr. Stephan Volmer@stvzeg
![Page 2: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/2.jpg)
Eigentlich nichts NeuesAufgabe
Einführung einer einheitlichen Architektur für vielfältige Line-of-Business Anwendungen:
• Datengetriebene Anwendungen
• Datenbank ist die zentrale Komponente
• Hohe Test- und Integrationsaufwände
• Development und Operations sind organisatorisch getrennte Einheiten
• Hoher Anteil von externen Mitarbeitern
• Heterogener Technologiestack
• Entwickler erfinden das Rad immer wieder aufs Neue
IMG_1080.jpg by Tom Pagehttp://www.flickr.com/photos/tompagenet/6851860996/
![Page 3: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/3.jpg)
Die vermeintliche LogikReuse
Don't forget to recycle! by James Wanghttp://www.flickr.com/photos/10037058@N08/3696670712/
“If we were to write all the code of a software, we would write a certain amount of code.”
“If we could reuse some code from somewhere else that was written before, we could write less code.”
“The more code we can reuse, the less code we write.”
“The less code we write, the sooner we will be done.”
“Get done faster!”
![Page 4: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/4.jpg)
Reuse Die Realität sieht anders aus…
“There is the time it takes to specify what the software should do.”
Abandoned Boat by William Warbyhttp://www.flickr.com/photos/wwarby/4859138371/
“There is the time it takes to write the code.”
“Multiply that by the time it takes to understand what the software should do.”
“Multiply that by the time it takes to integrate with all other code, libraries, components, frameworks, databases, services, …”
Testing! Debugging! Deploying!Stabilizing!
Meetings!Workshops!
![Page 5: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/5.jpg)
1970
1980
19902000
2010
Software Crisis
3GL
OOP
Libraries
OSS
Components
SOA
FrameworksPatterns
Reuse Aus der Krise in den Aufschwung?
![Page 6: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/6.jpg)
Shiny gold bar reflecting coins by Bullion Vaulthttp://www.flickr.com/photos/bullionvault/3591732069/
Reuse Irrtümer, Fakten und Konsequenzen
“Writing code is the primary activity in getting a system done!
“All code takes the same amount to write!”
“If we just reused more code, everything would be better.“
“Code by itself is reusable anyway.”
“In order to be reused, code must be generic, flexible, and replaceable.”
“Code must be specifically designed for reuse!”
“Reusable code is well over-engineered!”
![Page 7: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/7.jpg)
Reuse Kosten und Nutzen
Please pay this amount by miguelbhttp://www.flickr.com/photos/mig/8689212/
Kann Ihr Unternehmen sichwiederverwendbaren Quellcode
leisten?
“Developing reusable code costs three times as much as single use code”
The Mythical Man Month and Other Essays on Software Engineering, Frederick P. Brooks Jr.
“Development teams which write reusable code waste their organizations a lot of time and money.
Reuse Myth - Can You Afford Reusable Code?Allen Kelly
![Page 8: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/8.jpg)
!
?
Rear view mirror by a.dombrowskihttp://www.flickr.com/photos/adombrowski/5285377223/
Reuse „Was tun?“ spricht Zeus
Should we not reuse?
• There are genuine situations were reuse is the right answer.
Look back, not forward!
• Don’t plan for reuse, but look for opportunities!
• Bottom-up instead of top-down!
• Simplicity before generality!
![Page 9: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/9.jpg)
Reuse Schwarz oder Weiß?
chess set by Ekkehard Streithttp://www.flickr.com/photos/ekkionline/8846737835/
Jedes Projekt wähltArchitektur und
Technologie unabhängigvon der umgebenden IT-
Landschaft.
![Page 10: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/10.jpg)
Reuse Schwarz oder Weiß?
Ein Framework-Projektverschlingt viele
Ressourcen ohnen einendirekten Mehrwert zu
liefern.
chess set by Ekkehard Streithttp://www.flickr.com/photos/ekkionline/8846737835/
![Page 11: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/11.jpg)
Eine pragmatische Herangehensweise
KISS
DRY
APET
MAYA
Bottom-Up
GALAP
Wilhelmine Wulff / pixelio.de
![Page 12: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/12.jpg)
Quellcode
� Eigene VisualStudio Solution� NuGet-Pakete zur Einbindung externer
Komponenten
NuGet-Pakete
� Klar umrissene Funktionalität� Bereitstellung externer Komponenten über
eigene Pakete
VisualStudio-Templates
� Project-Template für die Applikation� Item-Templates für die einzelnen
Komponenten
Artefacts Libraries und Templates
![Page 13: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/13.jpg)
� API-Dokumentation� Nachschlagewerk
Doku
TFS
Blog
Wiki
� Backlog� Defects
� Release-Notes� Meeting-Protokolle
� Best-Practices� Anleitungen
Artefacts Dokumentation
![Page 14: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/14.jpg)
Beispielapplikation
ProduktiveApplikationen
Code Snippets
Artefacts Beispiele und Best Practices
![Page 15: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/15.jpg)
Process Ein Freies Elektron
Senior Developer
Team 1
Team 2
Team 3
Team 4
![Page 16: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/16.jpg)
Process Entwicklung mit Rückenwind
Blueprint
Projekt 1
Projekt 2
Projekt 3
Projekt 4 Blueprint
Projekt 1
Projekt 2
Projekt 3
Projekt 4
![Page 17: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/17.jpg)
Process Gemeinsam Stark
miniprojekt
SpaßprojektGROSSPROJEKT
P
PROJEKT Ykleinprojekt
RegelmäßigeMeetings
LebhafteKommunikation
GegenseitigeReviews
miniprojekt
SpaßprojektGROSSPROJEKT
P
PROJEKT Ykleinprojekt
RegelmäßigeMeetings
LebhafteKommunikation
GegenseitigeReviews
![Page 18: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/18.jpg)
Process Semantische Versionierung
Major
• Breaking Changes
• WesentlicheVeränderungen
• Alte Versionenwerden weiterunterstützt
Minor
• Keine Breaking Changes
• Neue Features
Revision
• Keine Breaking Changes
• Bugfixes und kleinereFeatures
� �
![Page 19: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/19.jpg)
Empowering Schulungen
Einstieg
Einführung
Beispiele
Praxis
Fragerunde
Begeisterung
![Page 20: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/20.jpg)
Empowering Learning by Doing
![Page 21: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/21.jpg)
Tools
Entwicklungsumgebung und Versionsverwaltung
Lokales NuGet-Repository
IDE Extensions von Drittanbietern und Eigenentwicklungen
Tools zur statischen Codeanalyse
Entwicklungsumgebung
![Page 22: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/22.jpg)
Tools Weitere Resourcen
EffizienteInfrastruktur
IdentischeArbeitsplätze
Starter-Kit
![Page 23: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/23.jpg)
Ein Basis-Check vor dem Start
Wille
ZeitGeld
Eignung geprüft
![Page 24: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/24.jpg)
Ich hab das schon immerso gemacht!
Ich möchte lernen wie ich effektiver und effizenter arbeiten kann!
Wo ein Wille ist... ...ist auch ein Unwilliger
![Page 25: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/25.jpg)
Ich möchte lernen wie ich effektiver und effizenter arbeiten kann!
Wo ein Wille ist...
Ihr hat michüberzeugt! Da bin ich dabei!
...ist auch ein Weg
![Page 26: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/26.jpg)
ProjekteMenschenBlueprint
Projekte
Schlüsselfaktor Zusammenarbeit
![Page 27: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/27.jpg)
“I readily absorb ideas from every source,
frequently starting where the last person left off.”
Library of Congress, Digital ID: cph.3c05139
Thomas Alva Edison
![Page 28: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/28.jpg)
Das Vorgehen Am Anfang steht ein Inkubatorprojekt
Inkubator
Projekt B
Blueprint
Inkubator
Projekt B
Blueprint
![Page 29: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/29.jpg)
Das Vorgehen Generalize as Late as Possible
Projekt B
Inkubator
Projekt B
Blueprint
Projekt Inkubator.Next
![Page 30: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/30.jpg)
Aus Erfahrung gut!Conclusions
• Starte mit einem echten Projekt:Bottom-up anstatt Top-down funktioniert wirklich!
• Plane kein Framework:Es entsteht im Laufe der Zeit von selbst!
• Halte Dich an Prinzipien:Aber: Pragmatismus anstelle von Religion!
• Setze Ziele jenseits eines Projektes:Die Kollegen werden lernen über den Tellerrandzu schauen!
• Investiere in Ausbildung, nicht in Code:Das Know-How der Mitarbeiter ist bares Geld wert!
![Page 31: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/31.jpg)
Langer Atem zahlt sich ausConclusions
Achtung:Erfolg nicht ausgeschlossen!
• Ein Framework ist nicht kostenlos:Ohne kontinuierliches Budget für das “freieElektron” läuft das Framework Gefahr ins Koma zufallen.
• Unmittelbarer Return on Invest:Die Ramp-Up-Zeit für neue Projekte reduziert sichvon fünf Monaten auf fünf Minuten!
• Projektkosten sind besser planbar:Die Entwickler können sich auf die Implementierung der fachlichen Anforderungenkonzentrieren.
![Page 32: Bottom-up anstatt Top-down: Wie man eine einheitliche Architektur bei vielfältigen Anwendungen lebt - Vortrag TeamConf 27.11.2013](https://reader031.vdokument.com/reader031/viewer/2022032419/55a2f62c1a28abb11b8b45a9/html5/thumbnails/32.jpg)
Markus [email protected]/mrehrstwitter @spontifixus
Dr. Stephan [email protected]/stvtwitter @stvzeg