Folien
Transcription
Folien
21.04.16 Stefan Zörner | embarc GmbH Steht alles im Wiki? Eine Softwarearchitektur im Wandel Stefan Zörner Steht alles im Wiki? Eine Softwarearchitektur im Wandel Abstract: Viele Softwaresysteme blicken auf eine bewegte Vergangenheit zurück. Änderungen im Umfeld, etwa im Markt oder durch technologische Neuerungen, setzten sie unter Druck. Mitunter stand am Ende die Neuentwicklung der Lösung oder zumindest großer Teile davon. Die Geschichte solcher Systeme wird selten erzählt. Nicht so hier: In diesem Vortrag unternehmen wir eine kleine Zeitreise und bewerten eine prominente Softwarelösung, die bereits viele Jahre in zahllosen Umgebungen produktiv ist, zu verschiedenen Zeitpunkten: Atlassian Confluence. Zum Einsatz kommen dabei Werkzeuge aus qualitativen Evaluierungsmethoden wie ATAM, gezielt ergänzt um quantitative Techniken. Wir fokussieren auf gravierende Veränderungen im Softwaresystem – wichtigen Ereignissen in seiner Biografie. Wodurch waren die Schritte motiviert? Welche Risiken wurden bewusst in Kauf genommen, welche Kompromisse eingegangen? Haben sie sich rückblickend bewährt? Die Teilnehmer lernen nebenbei, wie eine Architekturbewertung grundsätzlich funktioniert. 1 21.04.16 Über mich (Stefan Zörner) Softwareentwickler, -architekt, Coach bei embarc in Hamburg n Vorher oose, IBM, Mummert + Partner, Bayer AG, … n Schwerpunkte: n Softwarearchitektur (Entwurf, Bewertung, Dokumentation) n Java-Technologien [email protected] @StefanZoerner xing.to/szr Agenda 1 Einstieg: Historisch gewachsen. 2 Steht alles im Wiki. 3 Ch ... Ch ... Ch ... Changes. 4 In Szene gesetzt. 5 Fazit. 2 21.04.16 Agenda 1 Einstieg: Historisch gewachsen. 2 Steht alles im Wiki. 3 Ch ... Ch ... Ch ... Changes. 4 In Szene gesetzt. 5 Fazit. 2015 (+) Flüchtlinge (x) Gutmensch Wörter / Unwörter des Jahres. 2012 2007 (+) Rettungsroutine (+) Klimakatastrophe (x) Opfer-Abo (x) Herdprämie 2006 2010 (+) Fanmeile (+) Wutbürger (x) Freiwillige Ausreise (x) alternativlos 2012 2005 (+) Bundeskanzlerin (x) Entlassungsproduktivität 2004 (+) Hartz IV (x) Humankapital 2006 2004 2010 2014 2014 (+) Lichtgrenze (x) Lügenpresse 2011 (+) Stresstest (x) Döner-Morde 2008 2009 (+) Abwrackprämie (x) betriebsratsverseucht 2008 (+) Finanzkrise (x) Notleidende Banken 2013 (+) GroKo (x) Sozialtourismus 3 21.04.16 Oft gesehen… Was ist Architekturbewertung? Architekturrelevante Anforderungen (qualitative) Architekturbewertung Architektur / Entwurf Best Practices (Entscheidungen, Modelle, Konzepte, ...) (Vorgaben, Muster, Stile, Vorgehen ...) Umsetzungsprüfung Umsetzung (Lauffähiger Code, laufendes System) Quantitative Analyse, Metriken 4 21.04.16 Qualitative Architekturbewertung ATAM Architecture tradeoff analysis method n n n verbreitetste Methode zur qualitativen Bewertung von Softwarearchitektur früh anwendbar szenarienbasiert Agenda 1 Einstieg: Historisch gewachsen. 2 Steht alles im Wiki. 3 Ch ... Ch ... Ch ... Changes. 4 In Szene gesetzt. 5 Fazit. 5 21.04.16 Zeitstrahl. 2014 2012 2010 2008 2006 2004 Confluence 1.0 Presse-Mitteilung, Atlassian 25.03.2004 ➔ http://www.theserverside.com/news/thread.tss?thread_id=24701 nnon-Brookes POSTED BY: Mike Ca 25 2004 00:02 EST POSTED ON: March is essional J2EE wiki, “Confluence, our prof simply, it enables released today. Put rate to efficiently collabo development teams n resources.” and share informatio 6 21.04.16 Confluence. „Das professionelle J2EE Wiki“ Confluence ermöglicht es Entwicklungsteams effizient zusammenzuarbeiten und Informationen zu teilen. Wesentliche Features § Einfache "Auspacken und Los geht's"-Installation § Leicht zu erlernende Wiki-Notation zum Erstellen, Ändern, Verknüpfen von Seiten § Inhalte organisieren mit Bereichen ("Spaces") und Seitenhierarchien § Änderungen an Inhalten verfolgen, benachrichtigt werden § Volltext-Suche in Inhalten und Anhängen (auch Word, PDF) § Export von Seiten und ganze Spaces nach HTML oder PDF § flexibles Berechtigungsmanagement § umfassende Remote API 7 21.04.16 Was ist Architekturbewertung? Architekturrelevante Anforderungen (qualitative) Architekturbewertung Architektur / Entwurf Best Practices (Entscheidungen, Modelle, Konzepte, ...) (Vorgaben, Muster, Stile, Vorgehen ...) Umsetzungsprüfung Quantitative Analyse, Metriken Umsetzung (Lauffähiger Code, laufendes System) Was ist Architekturbewertung? Architekturrelevante Anforderungen (qualitative) Architekturbewertung Architektur / Entwurf Best Practices (Entscheidungen, Modelle, Konzepte, ...) (Vorgaben, Muster, Stile, Vorgehen ...) Umsetzungsprüfung Umsetzung (Lauffähiger Code, laufendes System) Quantitative Analyse, Metriken 8 21.04.16 Qualitätsziele Die wichtigsten geforderten Qualitätsmerkmale für ein Softwaresystem heißen Qualitätsziele (oder Architekturziele). Typischerweise werden als Qualitätsziele im Rahmen eines Architekturüberblicks die Top-3 bis Top-5 genannt. Qualitätsziele Confluence 1.0 (aka „Architekturziele“ oder „Architekturtreiber“) Ziel Beschreibung 1. Leicht zu betreiben Für ein Team ist es einfach mit Confluence zu starten. 2. Gute Benutzbarkeit Confluence ist effizient und intuitiv von allen Team-Mitgliedern zu verwenden. 3. Hohe Zuverlässigkeit Das System steht den Anwendern jederzeit zur Verfügung. 4. Sicherheit der Inhalte Inhalte sind vor unberechtigtem Zugriff und Veränderung geschützt. 5. Gute Wartbarkeit Confluence ist leicht zu ändern und um Funktionalität zu erweitern. Die Reihenfolge gibt eine Orientierung bezüglich der Wichtigkeit. 9 21.04.16 Lösungsstrategie Stellt Qualitätsziele und zugeordnete high-level Lösungsansätze in Beziehung zueinander dar. Form: Tabelle ([ Ziele | Lösungsansätze ]). Architektur-/ Lösungsansätze Qualitäts-/ Architekturziele Typische Lösungsansätze 10 21.04.16 Kategorien für Lösungsansätze Kategorie Beispiel (und dazu passendes Qualitätsziel) Architekturentscheidungen Verwendung eines Application Server Clusters (hohe Ausfallsicherheit) Architekturstile Microservices (schnelle Adaption neuer technologischer Trends) Architekturmuster Schichtenarchitektur (leichte Austauschbarkeit des Clients, oder einfache Portierung der Lösung) Architekturprinzipien Bevorzuge Standards vor proprietären Lösungen (niedrige Wartungsaufwände) Konzepte Caching-Konzept (Effizienz, gute Antwortzeiten) Vorgehen User centered design (intuitive Benutzbarkeit) Lösungsstrategie Confluence 1.0 Architekturziel passende Lösungsansätze in Confluence 1.0 Leicht zu betreiben • läuft auf J2EE-Servern • unterstützt verbreitete Datenbanken Gute Benutzbarkeit • • • • Hohe Zuverlässigkeit • Läuft auf J2EE-Servern (ggf. auch im Cluster) Sicherheit der Inhalte • Sicherheitskonzept • eigene Implementierung der Security Gute Wartbarkeit • Modulare Implementierung in Java • Einsatz des Spring-Frameworks und Hibernate Intuitives Web UI Leistungsfähige, effiziente Suche Organisation der Seiten in Spaces Einfaches Wiki-Markup 11 21.04.16 Technologie-Stack Confluence 1.0 Web Browser J2EE Application Server RDBMS (Relationale Datenbank) Technologien unter der Lupe … Web-Oberfläche § MVC-Framework: WebWork § Template Engine: Apache Velocity § Präsentation: SiteMesh Applikationsframework § Spring Framework § Scheduler: Quartz J2EE Web-Applikation § J2EE >= 1.3 (Servlet 2.3, JSP 1.2) § JDK >= 1.4 Persistenz § O/R-M: Hibernate § Suche: Apache Lucene 12 21.04.16 Bausteinsicht, Ebene 1 Fachliche Zerlegung Confluence 1.0 Qualitative Architekturbewertung ATAM Architecture tradeoff analysis method n n n verbreitetste Methode zur qualitativen Bewertung von Softwarearchitektur früh anwendbar szenarienbasiert 13 21.04.16 ATAM im Überblick Phase 0: Vorbereitung § Bewertungsteam zusammensetzen § Zusammenarbeit mit Projektteam abstimmen § Zeitplanung und Organisation Kernphasen der ATAM - Evaluierung § Kick-Off-Meeting Phase 1: Bewertung – Architektur-zentriert Phase 2: Bewertung – Stakeholder-zentriert Phase 3: Nachbearbeitung § Abschlussbericht § Verbesserung des Bewertungsprozesses § Artefakte archivieren ATAM Kernphasen: Evaluierung 14 21.04.16 Versionsgeschichte. v5.0 2014 v3.0 2012 v4.0 2010 2008 v1.0 2006 2004 v2.0 Wachstum über die Zeit. Von < 100k zu > 1 Mio LOC Lines of Code 1200000 1000000 800000 600000 Lines of Code 400000 200000 0 05.05.04 17.11.05 20.08.09 15.09.11 19.02.13 28.08.15 v1.0.3a v2.0 v3.0.1 v4.0 v5.0 v5.8.10 15 21.04.16 Agenda 1 Einstieg: Historisch gewachsen. 2 Steht alles im Wiki. 3 Ch ... Ch ... Ch ... Changes. 4 In Szene gesetzt. 5 Fazit. Drei umfassende Änderungen Confluence war in den letzten 10+ Jahren vielen Änderungen unterworfen. Wir picken exemplarisch drei besonders interessante heraus ... Themen § Erweiterung von Confluence durch Plugins § Von Confluence unterstützte Application Server § Speicherformat für Wiki-Seiten 16 21.04.16 Drei umfassende Änderungen Confluence war in den letzten 10+ Jahren vielen Änderungen unterworfen. Wir picken exemplarisch drei besonders interessante heraus ... Themen § Erweiterung von Confluence durch Plugins § Von Confluence unterstützte Application Server § Speicherformat für Wiki-Seiten Erweiterung durch Plugins „Ein Plug-in [ˈplʌgɪn] (häufig auch Plugin; von engl. to plug in, „einstöpseln, anschließen“, deutsch etwa „Erweiterungsmodul“) ist ein Softwaremodul, das von einer Softwareanwendung während ihrer Laufzeit entdeckt und eingebunden werden kann, um deren Funktionalität zu erweitern. Der Begriff wird teilweise auch als Synonym zu Add-on benutzt. “ (Wikipedia) 17 21.04.16 Zeitliche Einordnung. v5.0 2014 v3.0 2012 2010 v4.0 2008 v1.0 2004 2006 v2.0 Im Quelltext: v1.0: Noch kein Plugin-Konzept v1.3: Erste Abstraktionen für Plugins v2.1: Plugin Framework 2 Plugin Framework 2 later includes a new Confluence 2.10 and ring sed on OSGi and Sp plugin framework ba ork e new plugin framew Dynamic Modules. Th be ll es of OSGi, plus it wi ag nt va ad e th l al s ha ssian products. included into all Atla 18 21.04.16 Qualitätsziele Confluence Ziel Beschreibung 1. Leicht zu betreiben Für ein Team ist es einfach mit Confluence zu starten. 2. Gute Benutzbarkeit Confluence ist effizient und intuitiv von allen Team-Mitgliedern zu verwenden. 3. Hohe Zuverlässigkeit Das System steht den Anwendern jederzeit zur Verfügung. 4. Sicherheit der Inhalte Inhalte sind vor unberechtigtem Zugriff und Veränderung geschützt. 5. Gute Wartbarkeit Confluence ist leicht zu ändern und um Funktionalität zu erweitern. Qualitätsziele Confluence Ziel Beschreibung 1. Leicht zu betreiben Für ein Team ist es einfach mit Confluence zu starten. 2. Gute Benutzbarkeit Confluence ist effizient und intuitiv von allen Team-Mitgliedern zu verwenden. 3. Hohe Zuverlässigkeit Das System steht den Anwendern jederzeit zur Verfügung. 4. Sicherheit der Inhalte Inhalte sind vor unberechtigtem Zugriff und Veränderung geschützt. 5. Gute Wartbarkeit Confluence ist leicht zu ändern und um Funktionalität zu erweitern. Die Erweiterbarkeit von Confluence durch Dritte gewinnt an Bedeutung. 19 21.04.16 Kompromiss – Eine Frage der Balance Wartbarkeit Erweiterbarkeit leichte Änderbarkeit für „mich“ (den Hersteller) leichte Erweiterbarkeit durch Dritte Klassische Entwurfsprinzipen entschärfen den „Schmerz“ (Open Closed Principle, Information Hiding …). Confluence Marketplace 20 21.04.16 Drei umfassende Änderungen Confluence war in den letzten 10+ Jahren vielen Änderungen unterworfen. Wir picken exemplarisch drei besonders interessante heraus ... Themen § Erweiterung von Confluence durch Plugins § Von Confluence unterstützte Application Server § Speicherformat für Wiki-Seiten Technologie-Stack Confluence 1.0 Web Browser J2EE Application Server Caucho Resin IBM WebSphere Apache Tomcat BEA Weblogic SAP Application Server JBoss Jetty … RDBMS (Relationale Datenbank) 21 21.04.16 Zeitliche Einordnung. v5.0 2014 v3.0 2012 2010 v4.0 2008 v1.0 2004 2006 v2.0 V3.2/3.3 End of Life Announcement for Application Server Support Application Server EOL 22 21.04.16 Qualitätsziele Confluence Ziel Beschreibung 1. Leicht zu betreiben Für ein Team ist es einfach mit Confluence zu starten. 2. Gute Benutzbarkeit Confluence ist effizient und intuitiv von allen Team-Mitgliedern zu verwenden. 3. Hohe Zuverlässigkeit Das System steht den Anwendern jederzeit zur Verfügung. 4. Sicherheit der Inhalte Inhalte sind vor unberechtigtem Zugriff und Veränderung geschützt. 5. Gute Wartbarkeit Confluence ist leicht zu ändern und um Funktionalität zu erweitern. Qualitätsziele Confluence Ziel Beschreibung 1. Leicht zu betreiben Für ein Team ist es einfach mit Confluence zu starten. 2. Gute Benutzbarkeit Confluence ist effizient und intuitiv von allen Team-Mitgliedern zu verwenden. 3. Hohe Zuverlässigkeit Das System steht den Anwendern jederzeit zur Verfügung. 4. Sicherheit der Inhalte Inhalte sind vor unberechtigtem Zugriff und Veränderung geschützt. 5. Gute Wartbarkeit Confluence ist leicht zu ändern und um Funktionalität zu erweitern. Das Ziel wird anders ausgelegt oder erreicht. 23 21.04.16 Zum AppServer EOL Why is Atlassian doing this? „We have chosen to standardise on Tomcat, because it is the most widely used application server in our user population. It is fast, robust, secure, well-documented, easy to operate, open source, and has a huge community driving improvements. It is the de facto industry standard, with several companies available that specialise in providing enterprise grade support contracts for it, ranging from customisations to 24/7 support.“ Hypothesen § Hauptmotivation: Kostenersparnis bei Entwicklung (Test-Aufwände) und Support § J2EE-Kompatibiltät als Feature verliert an Bedeutung § Kunden akzeptieren Tomcat als Laufzeitumgebung. Kompromiss – Eine Frage der Balance Zuverlässigkeit Portierbarkeit Reibungsloser Betrieb, weniger Fehler Überall zu installieren und (auch langfristig) zu portieren Die Motivation hier ist vor allem eine Kosten/NutzenBetrachtung. (geringerer Aufwand im Betrieb) 24 21.04.16 Drei umfassende Änderungen Confluence war in den letzten 10+ Jahren vielen Änderungen unterworfen. Wir picken exemplarisch drei besonders interessante heraus ... Themen § Erweiterung von Confluence durch Plugins § Von Confluence unterstützte Application Server § Speicherformat für Wiki-Seiten Brand New Editor? editor delivers many The new Confluence advantages: § Just one editor! user interface. § New, streamlined r with enhanced text § Redesigned toolba ragraphs) and formatting (indent pa alignment controls. 25 21.04.16 Zeitliche Einordnung. v5.0 2014 v3.0 2012 2010 v4.0 2008 v1.0 2004 2006 v2.0 v1.0: Editieren mit Wiki-Markup v2.0: Zusätzlich Rich Text Editor v4.0: Neuer Rich Text Editor, kein Wiki-Markup mehr 26 21.04.16 Editoren ab Confluence 2.0 § Rich Text Editor und Wiki-Markup-Editor zur Auswahl § Speicherformat für die Seiten: Wiki-Markup Änderung des Speicherformates 27 21.04.16 War das was? Ein Aufschrei Kommentare auf „Confluence 4 Editor - Customer Feedback“ “I used to use the old mark-up system. It was fine as long as I didn't switch modes, as it was quite buggy when switching. So Atlassian can't figure out how to do it, and goes completely RTF.” “If you and your users are strong in wiki markup and want to live in that space, why choose to pay top dollar for Confluence when there are numerous quality, free, even open source wiki alternatives saturating that market space?” 28 21.04.16 Qualitätsziele Confluence Ziel Beschreibung 1. Leicht zu betreiben Für ein Team ist es einfach mit Confluence zu starten. 2. Gute Benutzbarkeit Confluence ist effizient und intuitiv von allen Team-Mitgliedern zu verwenden. 3. Hohe Zuverlässigkeit Das System steht den Anwendern jederzeit zur Verfügung. 4. Sicherheit der Inhalte Inhalte sind vor unberechtigtem Zugriff und Veränderung geschützt. 5. Gute Wartbarkeit Confluence ist leicht zu ändern und um Funktionalität zu erweitern. Qualitätsziele Confluence Ziel Beschreibung 1. Leicht zu betreiben Für ein Team ist es einfach mit Confluence zu starten. 2. Gute Benutzbarkeit Confluence ist effizient und intuitiv von allen Team-Mitgliedern zu verwenden. 3. Hohe Zuverlässigkeit Das System steht den Anwendern jederzeit zur Verfügung. 4. Sicherheit der Inhalte Inhalte sind vor unberechtigtem Zugriff und Veränderung geschützt. 5. Gute Wartbarkeit Confluence ist leicht zu ändern und um Funktionalität zu erweitern. Das „Team“ besteht nicht mehr nur aus Entwicklern. Zielmarkt: Knowledge Management 29 21.04.16 Kompromiss – Eine Frage der Balance Korrektheit Benutzbarkeit Konsistenz der Daten, Sicherung der Inhalte sowohl für IT-affine als auch eher inhaltlich interessierte. Der Kompromiss geht klar zu Ungunsten eines Stakeholders. Wechselwirkungen Die Erreichung von Qualitätsmerkmalen ist nicht unabhängig voneinander ... Typische Beeinflussungen: Effizienz çè Wartbarkeit Sicherheit çè Benutzbarkeit Portierbarkeit çè Effizienz Weitreichende Entscheidungen stehen oft im Zusammenhang mit Zieländerungen in den Qualitätsmerkmalen ... 30 21.04.16 Agenda 1 Einstieg: Historisch gewachsen. 2 Steht alles im Wiki. 3 Ch ... Ch ... Ch ... Changes. 4 In Szene gesetzt. 5 Fazit. Qualitative Architekturbewertung ATAM Architecture tradeoff analysis method n n n verbreitetste Methode zur qualitativen Bewertung von Softwarearchitektur früh anwendbar szenarienbasiert 31 21.04.16 Qualitative Architekturbewertung ATAM Architecture tradeoff analysis method n n n verbreitetste Methode zur qualitativen Bewertung von Softwarearchitektur früh anwendbar szenarienbasiert Qualitätsszenarien in arc42 è http://arc42.de/ 32 21.04.16 Was ist ein Szenario? Ein (Qualitäts-)Szenario ... n ... ist ein kurzer Text (1-3 Sätze). n ... beschreibt beispielhaft die Verwendung des Systems, und zwar so dass ein Qualitätsmerkmal die Hauptrolle spielt. Qualitätsmerkmale 33 21.04.16 Verwendungsszenarien (oder auch: Use Case-Szenarien) n „Normale“ Verwendung des Systeme durch einen Akteur n Beispiel-Quelle: Ein Benutzer im Systemkontext Beispiel-Szenario für Confluence Ein Benutzer benennt eine Wiki-Seite um. Die Änderung ist nach einer Sekunde vollzogen, alle Verweise auf die Seite bleiben aktuell. Änderungsszenarien (oder auch: Wachstumsszenarien) n Es kommt etwas hinzu oder ändert sich n Beispiel-Auslöser: Mehr Benutzer, neues UI Beispiel-Szenario für Confluence Ein versierter Java-Entwickler beabsichtigt Confluence um ein einfaches Macro zu erweitern. Das Macro steht dem Team nach einem Personentag zur Verfügung. 34 21.04.16 Fehlerszenarien (oder auch: Katastrophen- oder StressSzenarien) n Wie verhält sich das System bei etwas Unerwartetem? n Beispiel-Auslöser: Verbindungsabbruch Fremdsystem Beispiel-Szenario für Confluence Ein Benutzer schließt während des Editierens versehentlich den Webbrowser. Sämtliche Änderungen bleiben erhalten. Neues Feature in Confluence 2.9 35 21.04.16 ATAM Kernphasen: Evaluierung Bewertungsworkshop Quelle: S. Toth, Vorgehensmuster für Softwarearchitektur 36 21.04.16 Agenda 1 Einstieg: Historisch gewachsen. 2 Steht alles im Wiki. 3 Ch ... Ch ... Ch ... Changes. 4 In Szene gesetzt. 5 Fazit. tl;dr Softwaresysteme sind in ihrem Leben Änderungen unterworfen. Die Motivation für gravierende Änderungen sind in vielen Fällen geänderte Qualitätsziele. Qualitätsziele sind der maßgebliche Gradmesser für eine Architekturbewertung. Qualitätsszenarien schärfen diese und sind zugleich wichtiges Kommunikationsmittel. Architekturentscheidungen sind oftmals Kompromisse. Ein zentraler Nutzen von Architekturbewertung: Diese den unterschiedlichen Stakeholdern klar zu machen. 37 21.04.16 Für die Tonne …? Werkzeuge aus der qualitativen Architekturbewertung helfen dabei, richtungsweisende Entscheidungen zu treffen und abzusichern. (Neuentwicklung wäre ein Extremfall) embarc – geschichtet und vertikalisiert. 38 21.04.16 Spicken erlaubt! Unsere Architektur-Spicker beleuchten die konzeptionelle Seite der Softwareentwicklung. ç Spicker #2: „Quantitative Analyse“ • Bei welchen Qualitätsmerkmalen helfen quantitative Analysen weiter? • Welche Tools und Metriken sind verbreitet und wie helfen sie Ihnen? • Wie gehen Sie sinnvoll mit Ergebnissen um? PDF, 6 Seiten Kostenloser Download. è http://embarc.de/spicker Vielen Dank. Ich freue mich auf Eure Fragen! [email protected] @StefanZoerner xing.to/szr DOWNLOAD FOLIEN: http://www.embarc.de/blog/ 39 21.04.16 Book: arc42 by example Real software architectures, documented with the arc42 template. Helps you jumpstart your own documentation. Authors: Gernot Starke Michael Simons Stefan Zörner Language: English MOBI, EPUB, PDF https://leanpub.com/arc42byexample 42% discount for JAX participants! Discount Coupon: “JAX2016” Softwarearchitektur in gut. 27 embarc.de Spicken erlaubt! Unsere Architektur-Spicker beleuchten die konzeptionelle Seite der Softwareentwicklung. ç Spicker #3: „Microservices“ In dieser Ausgabe: • Was ist bei Microservices entscheidend? • Wie nutzen Sie die Ansätze? • Welche Kompromisse gehen Sie dabei ein? PDF, 4 Seiten Kostenloser Download. Softwarearchitektur in gut. è http://architektur-spicker.de embarc.de 40 21.04.16 Wir teilen unser Wissen gerne mit Ihnen... und auch bei Ihnen! Sie haben eine Community of Practice und suchen inhaltliche Anregungen oder Abgleich? Sie planen ein Team-Event und wollen es neben der sozialen Komponente auch fachlich ausrichten? LASSEN SIE UNS NEUE THEMEN AUFZEIGEN UND IMPULSE SETZEN! è http://www.embarc.de/leistungen/impulsvortraege/ 41