<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Architektur &#8211; atra.consulting &#8211;</title>
	<atom:link href="https://atra.consulting/tag/architektur/feed/" rel="self" type="application/rss+xml" />
	<link>https://atra.consulting</link>
	<description>Software erfolgreich entwickeln. Komplexität beherrschen. Wandel gestalten.</description>
	<lastBuildDate>Wed, 16 Apr 2025 12:30:50 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://atra.consulting/wp-content/uploads/2025/04/cropped-Atra-Consulting-Favicon-512x512pixel-32x32.webp</url>
	<title>Architektur &#8211; atra.consulting &#8211;</title>
	<link>https://atra.consulting</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Team Topologies: Der Schlüssel zu erfolgreicher Teamarbeit in komplexen Organisationen</title>
		<link>https://atra.consulting/coaching/team-topologies/</link>
		
		<dc:creator><![CDATA[Kaschef Yawar]]></dc:creator>
		<pubDate>Tue, 04 Jun 2024 11:24:00 +0000</pubDate>
				<category><![CDATA[Coaching]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Ablauf-Organisation]]></category>
		<category><![CDATA[Agil]]></category>
		<category><![CDATA[Agile Teams]]></category>
		<category><![CDATA[Architektur]]></category>
		<category><![CDATA[Aufbau-Organisation]]></category>
		<category><![CDATA[Buchbesprechungen]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Organisation]]></category>
		<guid isPermaLink="false">https://atra.consulting/uncategorized/team-topologies-der-schluessel-zu-erfolgreicher-teamarbeit-in-komplexen-organisationen/</guid>

					<description><![CDATA[Stellen Sie sich vor, Ihre Teams agieren wie ein Rennwagen – schnell, effizient, aber oft auf der falschen Spur. Wie können wir die Struktur so anpassen, dass jedes Team optimal aufgestellt ist, um das Rennen zu gewinnen?&#160;Genau hier setzt das Konzept der Team Topologies an. In diesem Artikel beleuchten wir, wie wertvoll diese Strukturierung von [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Stellen Sie sich vor, Ihre Teams agieren wie ein Rennwagen – schnell, effizient, aber oft auf der falschen Spur. Wie können wir die Struktur so anpassen, dass jedes Team optimal aufgestellt ist, um das Rennen zu gewinnen?</strong>&nbsp;Genau hier setzt das Konzept der Team Topologies an. In diesem Artikel beleuchten wir, wie wertvoll diese Strukturierung von Teams tatsächlich ist.&nbsp;</p>



<p class="wp-block-paragraph">Während Agilität mit dem de-facto Standard Scrum auf Teamebene oftmals relativ leicht umzusetzen ist, stellt Skalierung der agilen Vorgehensweisen Organisationen regelmäßig vor größere Herausforderungen. Viele Frameworks wie etwa SAFe oder LeSS liefern interessante und gute Ansätze hierfür. Jedoch scheitern Organisationen regelmäßig bei der Einführung dieser, aufgrund heterogener Teams, Anforderungen und Produktlandschaften. So ist beispielsweise ein Team, welches den Checkout-Prozess eines Onlineshops verantwortet, ganz anders zu betrachten als das Team, welches die interne Cloudplattform oder einen Data Lake entwickelt. Jedes dieser Teams hat unterschiedliche Anforderungen an eine teamübergreifende Planung und Zusammenarbeit. Aufgrund der abweichenden Herausforderungen benötigt es ein anpassbares Vorgehensmodell.&nbsp;</p>



<p class="wp-block-paragraph">Die Strukturierung und Interaktion von Teams ist eine der größten Herausforderungen in agilen Organisationen. Besonders in der IT müssen Teams häufig komplexe Aufgaben bewältigen und dabei flexibel bleiben. Matthew Skelton und Manuel Pais bieten mit ihrem Buch „Team Topologies“ eine klare Methode, wie Teams organisiert und ihre Schnittstellen gestaltet werden können, um Effizienz, Zusammenarbeit und Anpassungsfähigkeit zu maximieren.</p>



<h3 class="wp-block-heading"><br><strong>Die Grundidee hinter Team Topologies</strong></h3>



<ul class="wp-block-list">
<li><strong>Klare Verantwortlichkeiten:</strong>&nbsp;Jede Teamkategorie hat definierte Ziele und Aufgaben, was den Fokus und die Effizienz erhöht.&nbsp;</li>



<li><strong>Verbesserte Zusammenarbeit:</strong>&nbsp;Gut durchdachte Kommunikationswege und Schnittstellen reduzieren Missverständnisse.&nbsp;</li>



<li><strong>Schnelle Anpassung:</strong>&nbsp;Enabling-Teams helfen anderen Teams, neue Technologien oder Methoden schneller einzuführen.&nbsp;</li>



<li><strong>Optimierte Ressourcennutzung:</strong>&nbsp;Plattform-Teams schaffen gemeinsame Infrastruktur, damit sich andere Teams auf ihre Kernaufgaben konzentrieren können.</li>
</ul>



<p class="wp-block-paragraph">Auf diese Weise soll der Ansatz der Teamkategorien eine praxisnahe und flexible Methode bieten, um skaliertes Agilitätsmanagement in komplexen Organisationsstrukturen zu implementieren und nachhaltig zu verankern.</p>



<p class="wp-block-paragraph">In kurzen Worten: Team Topologies soll die Entwicklung von Organisationen im Laufe der Zeit unterstützen, wann immer sich die Bedingungen ändern.&nbsp;<br>Moderne Organisationsprinzipien werden gefördert und Softwareanpassungen können schneller umgesetzt werden. In der Realität bleibt es bei der immer gleichen Herausforderung, den Teams dafür entsprechend Zeit zum Testen &amp; Lernen einzuräumen.</p>



<p class="wp-block-paragraph">Schauen wir uns das Konzept in der notwendigen Tiefe an, um zu erfahren, wie diese Konzepte auch in den eigenen Teams angewendet werden könnten:&nbsp;</p>



<p class="wp-block-paragraph"><strong>Inhalt:</strong></p>



<ol class="wp-block-list">
<li><a href="https://atra.consulting/blog/team-topologies/#conways-law">Conway’s Law</a></li>



<li><a href="https://atra.consulting/blog/team-topologies/#team-first">Team First</a></li>



<li><a href="https://atra.consulting/blog/team-topologies/#4-topologien">Vier grundlegende Topologien</a></li>



<li><a href="https://atra.consulting/blog/team-topologies/#team-interaktion">Team-Interaktionsmodi</a></li>



<li><a href="https://atra.consulting/blog/team-topologies/#organisatorisches-gespuer">Organisatorisches Gespür</a></li>



<li><a href="https://atra.consulting/blog/team-topologies/#topologie-entwicklung">Topologieentwicklung</a></li>



<li><a href="https://atra.consulting/blog/team-topologies/#team-api">Team-API</a></li>
</ol>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading"><br><strong>1. Conway’s Law</strong></h3>



<p class="wp-block-paragraph">Conway’s Law besagt:</p>



<p class="wp-block-paragraph"><em>»<strong>Jede Organisation, die ein System entwirft, wird zwangsläufig einen Entwurf erstellen, der eine Kopie ihrer Kommunikationsstruktur ist.</strong>«</em>&nbsp;</p>



<p class="wp-block-paragraph">Anders formuliert: Die Organisationsstruktur und die Kommunikationswege zwischen den Teams spiegeln sich direkt in der Systemarchitektur wider. Ein einfaches Beispiel dazu zeigt die folgende Grafik.</p>



<p class="wp-block-paragraph">Während Conway’s Law oft als reine Beobachtung beschrieben wird, geht der Ansatz von Team Topologies einen Schritt weiter: Es wird als aktives Gestaltungsprinzip verstanden. Anstatt zu akzeptieren, dass die Architektur die bestehenden Teamstrukturen widerspiegelt, lassen sich Teams gezielt so gestalten, dass sie eine gewünschte Architektur aktiv fördern.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b8632bd8&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b8632bd8" class="aligncenter size-full wp-lightbox-container"><img fetchpriority="high" decoding="async" width="744" height="628" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Organisation.png" alt="" class="wp-image-6301" title="Organisation"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div></div>
</div>



<p class="wp-block-paragraph"><a href="https://atra.consulting/wp-content/uploads/2024/08/Organisation.png"></a></p>



<p class="wp-block-paragraph">Möchte man beispielsweise eine modulare, lose gekoppelte Architektur, sollten die Teams entsprechend strukturiert werden. Dies gelingt durch den Aufbau autonomer, funktionsübergreifender Teams sowie durch die Etablierung klarer Schnittstellen und definierter Verantwortlichkeiten. Dieses Prinzip wird als Inverses Conway’s Law bezeichnet. In unserem Projektalltag begegnen wir diesem Phänomen immer wieder.</p>



<p class="wp-block-paragraph">Ein Beispiel aus der Praxis: Selbst sehr erfahrene Entwickler entwerfen zum Teil monolithische, fehleranfällige Strukturen – nicht aufgrund mangelnden Könnens, sondern weil:</p>



<ul class="wp-block-list">
<li>Architekturbausteine mit zu viel Funktionalität überladen werden, da Entwickler in diesen Bereichen besonders vertraut sind.</li>



<li>Hoher Lieferdruck führt dazu, dass eigentlich isolierte Funktionalitäten schnell in bestehende Strukturen integriert werden, statt sauber gekapselt zu werden.</li>
</ul>



<p class="wp-block-paragraph">Ob traditionelles oder inverses Conway’s Law: Das „Störgefühl“, wenn die Softwarearchitektur nicht mehr zur Teamstruktur passt, kennt fast jeder. Sich dieses Zusammenhangs bewusst zu sein, ist der erste Schritt, um sowohl die Architektur als auch die Organisation gezielt weiterzuentwickeln.</p>



<p class="wp-block-paragraph">(Mehr dazu hier:&nbsp;<strong><a href="https://en.wikipedia.org/wiki/Conway%27s_law" target="_blank" rel="noreferrer noopener">Conway´s Law – EN</a>&nbsp; /&nbsp;<a href="https://de.wikipedia.org/wiki/Gesetz_von_Conway" target="_blank" rel="noreferrer noopener">Conway´s Law DE</a></strong>)</p>



<h3 class="wp-block-heading"><br><strong>2. Team First</strong></h3>



<p class="wp-block-paragraph">Bei Team Topologies wird ein Team als eine stabile Gruppe von Menschen betrachtet, die am gleichen Ziel arbeiten. Verantwortlichkeiten werden keinen Einzelpersonen zugewiesen, sondern Teams.</p>



<p class="wp-block-paragraph">Die Anzahl der Teammitglieder ist entscheidend, um Vertrauen zu bilden. Ein effektives Team umfasst laut Team Topologies 7 bis 9 Personen.&nbsp;</p>



<p class="wp-block-paragraph">Bis eine einigermaßen geschlossene Einheit entsteht, dauert es bis zu drei Monate. Es ist kaum sinnvoll, Teams nach Abschluss eines Projekts, an dem sie ein halbes Jahr gearbeitet haben, neu zu strukturieren. Die emotionale Anpassung an die Arbeitsgewohnheiten und Sichtweisen neuer Kollegen hat einen gravierenden Einfluss auf die Leistung. Nur wenn das Vertrauen in eine Organisation hoch ist, ist ein Teamwechsel einmal im Jahr ohne negative Auswirkungen möglich.</p>



<p class="wp-block-paragraph">Die Autoren betonen, dass es wichtig ist, die kognitiven Fähigkeiten des Teams zu maximieren, durch die Verbesserung der Arbeitsumgebung, des Führungsstils und die Minimierung von Ablenkungen.</p>



<p class="wp-block-paragraph">Diese Ansicht wird bereits in vielen bekannten Team-Konstellationen angewandt, wie beispielsweise in Projektteams, Enabling oder Transformationsteams. Die Vorteile von Teams mit klarem Fokus ohne Ablenkungen von “außen” sind nicht von der Hand zu weisen.&nbsp;</p>



<p class="wp-block-paragraph">John Sweller bezeichnet Kognitive Belastung mit: „Die Gesamtmenge an geistiger Anstrengung, die im Arbeitsgedächtnis aufgewendet wird.“</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">Drei Arten der kognitiven Belastung werden benannt:</p>



<ul class="wp-block-list">
<li><strong><em>Intrinsische kognitive Belastung&nbsp;</em></strong>– bezieht sich auf die Faktoren, die für die Lösung der Aufgabe bedeutend sind. Beispiel: Wie kreieren wir eine neue Methode?</li>



<li><strong><em>Externe kognitive Belastung</em>&nbsp;</strong>– bezieht sich auf die Voraussetzungen, in der die Aufgabe ausgeführt wird. Beispiel: Wie konfigurieren wir diesen Service?</li>



<li><strong><em>Lernbezogene kognitive Belastung</em></strong>&nbsp;– bezieht sich auf Inhalte, die erlernt werden müssen, um die Aufgabe zu lösen. Beispiel: Wie funktionieren Bank Transfers?</li>
</ul>



<p class="wp-block-paragraph">Mehr dazu hier: Cognitive<a href="https://de.wikipedia.org/wiki/Cognitive_Load_Theory" target="_blank" rel="noreferrer noopener">&nbsp;<strong>Load Theory – DE</strong></a><strong>.</strong></p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b863487a&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b863487a" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="602" height="500" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Arbeitsgedaechtnis.png" alt="" class="wp-image-6300" title="Arbeitsgedaechtnis"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div></div>
</div>



<p class="wp-block-paragraph"><a href="https://atra.consulting/wp-content/uploads/2024/08/Arbeitsgedaechtnis.png"></a></p>



<p class="wp-block-paragraph">Team Topologies spricht davon, die Verantwortlichkeit des Teams so zu beschränken, dass es die maximale kognitive Belastung des Teams nicht überschreitet.</p>



<p class="wp-block-paragraph">Aus unserer Sicht wird es entscheidend sein, wie viel Zeit den Teams eingeräumt wird, um zu lernen, wie alltägliche Herausforderungen gemeistert werden, ohne die maximale kognitive Belastung zu überschreiten. Der Lieferdruck auf Teams und das Problem, dauerhaft an zu vielen Aufgaben parallel zu arbeiten, macht evident, wie wichtig es ist, in den Teams zu lernen, die Verantwortlichkeiten klar zu definieren und zu beschränken.</p>



<p class="wp-block-paragraph">&nbsp;Das Lernen im Tagesgeschäft&nbsp; “nein” zu sagen, erweist sich unter hohem Lieferdruck, meist als nicht überwindbares Unterfangen und wird selten vom Management in Drucksituationen akzeptiert. Die Akzeptanz auf Managementebenen ist aber maßgeblich, um die Theorie auch in der Praxis umsetzen zu können. Hier zeigt sich für uns klar, dass die gesamte Organisation “lernen” muss.&nbsp;&nbsp;&nbsp;</p>



<p class="wp-block-paragraph">Eine Möglichkeit könnte der Team-First-Ansatz sein. Durch den Team-First-Ansatz soll Mitarbeitern die Möglichkeit gegeben werden, in einer Organisation erfolgreich zu sein. Anstatt ein dickes Fell oder Belastbarkeit zu benötigen, um in einer Organisation zu überleben, haben Mitarbeiter in einer Team-First-Organisation den Raum und die Unterstützung, ihre Fähigkeiten und Praktiken zu entwickeln.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading"><br><strong>3.&nbsp;Die vier grundlegenden Teamtopologien</strong></h3>



<p class="wp-block-paragraph">Es gibt sehr viele Teamtypen in Organisationen. Der Einfachheit wegen werden diese auf vier Haupttypen reduziert. Diese betrachten das Verhalten und die Fähigkeiten der Teams und lauten wie folgt:</p>



<p class="wp-block-paragraph"><strong>Stream-aligned Team:</strong>&nbsp;Das Team, das auf die Geschäftsveränderung ausgerichtet ist, mit einem funktionsübergreifenden Kompetenzmix und der Fähigkeit, signifikante Inkremente zu liefern, ohne auf ein anderes Team warten zu müssen.</p>



<p class="wp-block-paragraph"><strong>Enabling-Team:</strong>&nbsp;Das Team, das andere Teams bei der Einführung und Änderung von Software im Rahmen einer Übergangs- oder Lernphase unterstützt.</p>



<p class="wp-block-paragraph"><strong>Complicated-subsystem Team:</strong>&nbsp;Das Team mit einer besonderen Aufgabe für ein Subsystem, das zu kompliziert ist, als dass es von einem normalen Stream-ausgerichteten Team oder Plattformteam bearbeitet werden könnte. Optional und nur dann verwendet, wenn es wirklich notwendig ist.</p>



<p class="wp-block-paragraph"><strong>Plattform Team:</strong>&nbsp;Das Team, das an der zugrunde liegenden Plattform arbeitet und Stream-ausgerichtete Teams bei der Bereitstellung unterstützt. Die Plattform vereinfacht komplexe Technologie und reduziert die kognitive Belastung für Teams.</p>



<p class="wp-block-paragraph">Nehmen wir hier nochmal als Beispiel ein klassisches Unternehmen aus dem e-Commerce Bereich:</p>



<ul class="wp-block-list">
<li>Ein&nbsp;<strong>Stream-aligned Team</strong>&nbsp;könnte den gesamten Checkout-Prozess des Onlineshops verantworten, einschließlich der Integration neuer Payment-Dienstleister und der UX-Optimierung.</li>



<li>Das Unternehmen möchte verstärkt die Vorteile der Cloud-native Entwicklung nutzen. Ein&nbsp;<strong>Enabling Team</strong>&nbsp;könnte hierbei bei der Einführung der Technologie und notwendigen Architekturmuster helfen, beispielsweise durch Schulungen, Bereitstellung von Prototypen oder Definition von Architekturpattern.</li>
</ul>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b8636031&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b8636031" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="625" height="787" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/4-team-topologies-e1740156100324.jpg" alt="" class="wp-image-6299" title="4-team-topologies"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div></div>
</div>



<ul class="wp-block-list">
<li>Als&nbsp;<strong>complicated-subsystem-Team</strong>&nbsp;entwickelt eine Gruppe von Spezialisten einen hochspezialisierten Empfehlungsalgorithmus, welcher Kundinnen und Kunden passgenaue Produktempfehlungen zur Verfügung stellt.</li>



<li>Unser fiktives Unternehmen hat direkt zwei&nbsp;<strong>Plattform-Teams</strong>, welche zum einen die interne Developer-Cloudplattform und zum anderen einen Unternehmensweiten Data-Lake zur Verfügung stellen.</li>
</ul>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h3 class="wp-block-heading"><br><strong>4. Team-Interaktionsmodi&nbsp;</strong></h3>



<p class="wp-block-paragraph"><em>Ineffektivität&nbsp;</em>wird in vielen Organisationen durch schlecht definierte Interaktionen verursacht. Laut TeamTopologies läuft die Beziehung zwischen den Teams auf zwei Dinge hinaus: Wird durch die Zusammenarbeit mit einem anderen Team ein Ziel erreicht oder bietet es dem Team einen Service an. Auf diese Weise werde drei Möglichkeiten festgelegt, wie Teams interagieren können:<br></p>



<p class="wp-block-paragraph"><strong>Zusammenarbeit</strong>&nbsp;enge Zusammenarbeit mit anderen Teams. Dies ist besonders nützlich, wenn Teams neue Technologien oder Techniken erforschen. Die Zusammenarbeit ermöglicht die schnelle Entdeckung neuer Dinge, da kostspielige Übergaben vermieden werden. Am besten verwendet, wenn ein hohes Maß an Anpassungsfähigkeit zwischen zwei Teams erforderlich ist.</p>



<p class="wp-block-paragraph"><br><strong>X-as-a-Service</strong>&nbsp;etwas mit minimaler Zusammenarbeit nutzen oder bereitstellen.<br>Dieser Interaktionsmodus kann die Liefergeschwindigkeit erhöhen. Team A braucht etwas, um seinen Wert zu liefern, Team B hat eine Dienstleistung ohne großen Aufwand bereitgestellt. Es sind keine langwierigen Gespräche, Besprechungen oder Vorbereitungen erforderlich.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"><div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b863747d&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b863747d" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="410" height="730" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/3-interaction-modes-e1740156138495.jpg" alt="" class="wp-image-6298" title="3-interaction-modes"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div></div>
</div>



<p class="wp-block-paragraph"><a href="https://atra.consulting/wp-content/uploads/2025/02/3-interaction-modes-e1740156138495.jpg"></a></p>



<p class="wp-block-paragraph"><strong>Unterstützen:</strong>&nbsp;Einem anderen Team helfen und umgekehrt, Hindernisse zu beseitigen. Der unterstützende Interaktionsmodus eignet sich am besten in Situationen, in denen ein Team die Hilfe eines anderen benötigt. Das Enabling Team versetzt zum Beispiel ein anderes Team in die Lage, effektiver zu sein, schneller zu lernen, eine neue Technologie besser zu verstehen oder Hindernisse zu entdecken und zu beseitigen.&nbsp; Domain-Driven Design kann hier ein gutes Hilfsmittel sein.</p>



<h3 class="wp-block-heading"><br><strong>5. Organisatorisches Gespür</strong></h3>



<p class="wp-block-paragraph">Mit “Organisatorisches Gespür” ist gemeint: die Situation zu erkennen und anzupassen. Unternehmen müssen flexibel sein, um sich an Veränderungen anzupassen. Dazu gehört die Anpassung der Struktur und Abläufe. Eine Organisation sollte in der Lage sein, die richtigen Teamstrukturen und Interaktionsmodi anzuwenden.</p>



<p class="wp-block-paragraph"><strong>Woran erkennt man also, dass eine Organisation sich weiterentwickeln muss?</strong></p>



<ol class="wp-block-list">
<li>Die Software wird für ein Team zu komplex. Während am Anfang jeder ein umfassendes Verständnis davon hat, was vor sich geht, wird das immer schwieriger. Dadurch verlagert sich der Fokus von echten Prioritäten auf den Versuch, Leute zu finden, die kompetent genug sind, um ein bestimmtes Problem zu lösen.</li>



<li>Die Lieferfrequenz verlangsamt sich. Die Teammitglieder sehen, dass eine Lieferung mehr Zeit und mehr Schritte erfordert. Um dies zu vermeiden, müssen Teams autonom sein und dürfen nicht darauf warten, dass andere Teams eine neue Infrastruktur erstellen.</li>



<li>Mehrere Geschäftsdienste basieren auf einer großen Anzahl zugrunde liegender Dienste. In einigen Sektoren wie Finanzen, Versicherungen, Regierung usw. können hochrangige Dienste auf Dienste auf niedrigerem Niveau angewiesen sein. Die Lösung könnte darin bestehen, die Dienste auf niedrigerer Ebene zu “plattformisieren” und für jeden Dienst auf hoher Ebene Stream-ausgerichtete Teams einzusetzen.</li>
</ol>



<p class="wp-block-paragraph">Hier spricht man von der Kompetenz der&nbsp;<em>Organisationswahrnehmung</em>Dies ist die Fähigkeit, die Organisationsituation so zu erfassen oder zu spüren, dass das Überleben der Organisation sichergestellt wird. Einige der Dinge, die eine Organisation „spüren“ muss, sind:</p>



<ul class="wp-block-list">
<li>Müssen die Teaminteraktionsmodi geändert werden?</li>



<li>Was behindert den Arbeitsfluss für ein bestimmtes Team?</li>



<li>Sollen wir ein bestimmtes Tool bauen oder können wir es von einem Anbieter bekommen?</li>
</ul>



<p class="wp-block-paragraph">Es gibt nicht wenige Systeme, die über viele Jahre hinweg entstanden sind. Diese Systeme haben Abhängigkeiten, die nicht außer Acht gelassen werden können. Die Teaminteraktionsmodi passen sich an das System an und nicht umgekehrt. Die Frage, die sich stellt, ist: Was kann oder muss ich tun, um die Komplexität des Systems zu verringern, damit die Vorteile der Teaminteraktionsmodi zum Tragen kommen, und ist dies aufgrund der Größe des Systems überhaupt möglich?</p>



<h3 class="wp-block-heading"><br><strong>6. Topologieentwicklung</strong></h3>



<p class="wp-block-paragraph">Sobald eine Organisation auf neue Herausforderungen reagiert, ist davon auszugehen, dass Teams untereinander anders als zuvor interagieren werden.</p>



<p class="wp-block-paragraph">Dies kann bedeuten, dass Teams neu strukturiert oder neu zusammengesetzt werden, um spezifische Probleme anzugehen oder neue Technologien zu implementieren. Gleichzeitig können sich die Arbeitsabläufe und Prozesse ändern, um die Zusammenarbeit zwischen den Teams zu verbessern. Das übergeordnete Ziel besteht darin, sicherzustellen, dass die Teams flexibel genug sind, um sich an veränderte Anforderungen anzupassen, und dass ihre Interaktionen effektiv sind, um die Ziele der Organisation zu erreichen. Dies erfordert eine kontinuierliche Bewertung und Anpassung der Teamstrukturen und -interaktionen im Einklang mit den sich ändernden Anforderungen und Zielen der Organisation.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%">
<h3 class="wp-block-heading"><br><strong>7. Team-API&nbsp;</strong></h3>



<p class="wp-block-paragraph">Eine Beschreibung der Interaktionen mit dem jeweiligen Team: Code, Versionierung, Wiki und Dokumentation, Praktiken und Prinzipien, Kommunikation, Arbeitsinformationen und einiges mehr. Ziel ist es, anderen Teams transparent und in einem einfachen Überblick zu zeigen, an was, wie, mit wem, das Team arbeitet. Ein gutes Beispiel für eine&nbsp;<strong><a href="https://github.com/TeamTopologies/Team-API-template" target="_blank" rel="noreferrer noopener">Team API</a></strong>&nbsp;hat Team Topologies selbst auf Github.com veröffentlicht.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:50%"><div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b8638ecc&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b8638ecc" class="aligncenter size-large is-resized wp-lightbox-container"><img decoding="async" width="575" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Team-API-575x1024.png" alt="" class="wp-image-6302" style="width:400px" title="Team-API"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div></div>
</div>



<p class="wp-block-paragraph"><a href="https://atra.consulting/wp-content/uploads/2024/08/Team-API.png"></a></p>



<h3 class="wp-block-heading"><br><strong>Zusammenfassung</strong></h3>



<p class="wp-block-paragraph">Die sieben Grundideen von Team Topologies bieten Vorteile, die die Effektivität der Teamarbeit in Unternehmen steigern können.&nbsp;</p>



<p class="wp-block-paragraph">Die Fähigkeit zur Flexibilität und Anpassungsfähigkeit, denn durch die Strukturierung von Teams können Unternehmen schnell auf Veränderungen reagieren und neue Anforderungen integrieren.&nbsp;</p>



<p class="wp-block-paragraph">Das Übertragen von Verantwortlichkeiten an eigenständige Teams fördert die Autonomie und Eigenverantwortung, beschleunigt die Entscheidungsfindung und fördert agile Reaktionen auf Herausforderungen (siehe 3. Grundidee), wenn das Management mit einbezogen wird und Verantwortung an die Teams weitergibt.<br>Ferner ermöglicht Team Topologies die Bildung hochspezialisierter Teams, die sich auf bestimmte Aufgaben oder Technologien konzentrieren können, die Entwicklung von Expertise fördert und die Effizienz steigert.&nbsp;</p>



<p class="wp-block-paragraph">Teams dieser Art gibt es bereits zuhauf in Organisationen. Die große Herausforderung sind die Abhängigkeiten der Teams, des Produkts und nicht zuletzt, wie viel Zeit den Teams eingeräumt wird, um zu wachsen und die Fähigkeiten zu entwickeln, die es benötigt.&nbsp;</p>



<p class="wp-block-paragraph">Wenn spezialisierte Teams in ihren eigenen Bereichen isoliert arbeiten und den Informationsaustausch behindern, können Kommunikationsbarrieren entstehen. Das Entstehen von Silos innerhalb des Unternehmens, wenn einzelne Teams isoliert arbeiten und der Gesamtüberblick über Projekte verloren geht, steigt.<br>Dies kann die Synergien zwischen den Teams behindern und die Effizienz beeinträchtigen. Zudem kommt die zunehmende Komplexität und der Koordinationsaufwand, wenn eine Vielzahl spezialisierter Teams gleichzeitig agiert. Eine klare Fokussierung auf gemeinsame Ziele kann dieses Problem mindern. Hierbei könnten sich die Vorgehensweisen von Team Topologies als klarer Vorteil erweisen. Zwar sind nicht alle Ideen von Team Topologies neu, jedoch ermöglicht die globale Sicht auf die Teams eine einheitliche strategische Ausrichtung und ein gemeinsames Vokabular für IT-Projekte.&nbsp;</p>



<p class="wp-block-paragraph">Zusammenfassend hier eine Kurzübersichtskarte:&nbsp;<a href="https://teamtopologies.com/community" target="_blank" rel="noreferrer noopener">QRC Team Topologies</a></p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b8639bb0&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b8639bb0" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="960" height="540" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QRC-Team-Topologies.png" alt="" class="wp-image-6295" title="QRC-Team-Topologies" srcset="https://atra.consulting/wp-content/uploads/2025/04/QRC-Team-Topologies.png 960w, https://atra.consulting/wp-content/uploads/2025/04/QRC-Team-Topologies-768x432.png 768w, https://atra.consulting/wp-content/uploads/2025/04/QRC-Team-Topologies-780x440.png 780w" sizes="(max-width: 960px) 100vw, 960px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph"><a href="https://atra.consulting/wp-content/uploads/2024/08/QRC-Team-Topologies.png"></a></p>



<h3 class="wp-block-heading"><br><strong>Herausforderungen bei der Umsetzung</strong></h3>



<p class="wp-block-paragraph">Die Theorie von Team Topologies ist vielversprechend, aber wie bei jedem Ansatz gibt es auch Herausforderungen:</p>



<ul class="wp-block-list">
<li><strong>Management-Unterstützung:</strong>&nbsp;Ohne ein Management, das die Prinzipien von Autonomie und psychologischer Sicherheit versteht und fördert, wird es schwer, die Teams nachhaltig zu etablieren. Ein Führungsstil der Haltung “Servant Leadership” ist eine Grundvorraussetzung für den Erfolg und die Produktivität der Teams.</li>



<li><strong>Silos und Abhängigkeiten:</strong>&nbsp;Oft arbeiten Teams isoliert voneinander. Hier braucht es gezielte Interaktionsmodi, um Synergien zu fördern.</li>



<li><strong>Zeit und Ressourcen:</strong>&nbsp;Teams benötigen Raum und Zeit, um ihre Arbeitsweisen zu entwickeln und zu verbessern. Teams müssen mit entsprechenden Personen besetzt und “ausgebildet” werden. Dies wird häufig unterschätzt.</li>
</ul>



<p class="wp-block-paragraph"><strong>Schlussfolgerung und Einladung zur Diskussion zur Verbesserung ihrer Teams</strong>&nbsp;Team Topologies bietet eine mächtige Grundlage, um Teams effektiver, autonomer und besser miteinander vernetzt zu gestalten. Die Implementierung erfordert jedoch eine bewusste Anpassung an die jeweilige Organisation und ein Management, das diese Ansätze aktiv unterstützt. &nbsp;</p>



<h3 class="wp-block-heading"><br><strong>Diskussionsfragen an den Leser:&nbsp;</strong></h3>



<ul class="wp-block-list">
<li>Wie sieht es bei Euch im Unternehmen aus? Welche Erfahrungen haben Sie mit der Strukturierung von Teams gemacht, und welche Ansätze haben bei Ihnen besonders gut funktioniert?</li>



<li>Wie können Organisationen sicherstellen, dass ihre Teamstrukturen nicht nur effizient, sondern auch anpassungsfähig sind?</li>



<li>Welche Herausforderungen sehen Sie bei der Implementierung der vier Teamarten in Ihrem eigenen Umfeld?</li>
</ul>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:30%">
<figure class="wp-block-image size-full"><img decoding="async" width="319" height="316" src="https://atra.consulting/wp-content/uploads/2025/02/Kaschef-Yawar.jpg" alt="" class="wp-image-3458" style="object-fit:cover" title="Team-Schwarze"/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<h3 class="wp-block-heading">Kaschef Yawar</h3>



<p class="wp-block-paragraph">Geschäftsbereichsleitung »Handel« Prokurist</p>



<div style="height:16px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">Kaschef Yawar ist ein erfahrener agiler Coach und Berater mit über 15 Jahren Erfahrung in der IT-Branche. In seinen Rollen als Scrum Master, Agiler Coach und Trainer hat er erfolgreich agile Methoden in verschiedenen Unternehmen und auf unterschiedlichen Ebenen eingeführt und begleitet. Sein Fokus liegt dabei hauptsächlich auf Scrum und Kanban, sowie der Arbeit in skalierbaren Frameworks wie SAFe, LeSS und Nexus. Besonders wichtig ist ihm die wertgetriebene Entwicklung, bei der er stets darauf achtet, dass die entwickelten Produkte und Dienstleistungen einen echten Mehrwert für die Kunden schaffen.</p>



<div style="height:16px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<p class="wp-block-paragraph"><a href="mailto:k.yawar@atra.consulting">k.yawar@atra.consulting</a>&nbsp; &nbsp;&nbsp;<a href="https://de.linkedin.com/in/daniel-wochnik" target="_blank" rel="noreferrer noopener"></a></p>



<ul class="wp-block-social-links is-layout-flex wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a href="https://www.linkedin.com/in/kaschef-y-697bb4164/" class="wp-block-social-link-anchor" target="_blank" rel="noopener"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li></ul>
</div>
</div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Fachartikel »Die Wachstumsrate von Software« in OBJEKTspektrum 01/2019</title>
		<link>https://atra.consulting/allgemein/fachartikel-wachstumsrate-software/</link>
		
		<dc:creator><![CDATA[Michael Schwarze]]></dc:creator>
		<pubDate>Fri, 04 Jan 2019 10:38:46 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Architektur]]></category>
		<category><![CDATA[Fachartikel]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Organisation]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<guid isPermaLink="false">https://atra.consulting/uncategorized/fachartikel-die-wachstumsrate-von-software-in-objektspektrum-01-2019/</guid>

					<description><![CDATA[© OBJEKTspektrum: SIGS DATACOM GmbH &#124; www.sigs-datacom.de Unser Blogbeitrag »Die Wachstumsrate von Software« wurde als Fachartikel in der Fachzeitschrift OBJEKTspektrum veröffentlicht. Die Fachzeitschrift&#160;OBJEKTspektrum&#160;»liefert zuverlässige Hintergründe, Trends und Erfahrungen zu Software-Management, -Architektur und -Engineering«. Unser Blogbeitrag »Die Wachstumsrate von Software« fand Anklang bei der Redaktion der OBJEKTspektrum und wurde in einer erweiterten Fassung in Ausgabe 1/2019 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-text-align-center wp-block-paragraph"><em>© OBJEKTspektrum: SIGS DATACOM GmbH | www.sigs-datacom.de</em></p>



<p class="wp-block-paragraph">Unser Blogbeitrag »<a href="https://atra.consulting/blog/wachstumsrate-software/"><strong>Die Wachstumsrate von Software</strong></a>« wurde als Fachartikel in der Fachzeitschrift OBJEKTspektrum veröffentlicht.</p>



<p class="wp-block-paragraph">Die Fachzeitschrift&nbsp;<strong><a href="https://www.sigs-datacom.de/fachzeitschriften/objektspektrum.html" target="_blank" rel="noreferrer noopener">OBJEKTspektrum</a></strong>&nbsp;»liefert zuverlässige Hintergründe, Trends und Erfahrungen zu Software-Management, -Architektur und -Engineering«. Unser Blogbeitrag »<strong><a href="https://atra.consulting/blog/wachstumsrate-software/">Die Wachstumsrate von Software</a></strong>« fand Anklang bei der Redaktion der OBJEKTspektrum und wurde in einer erweiterten Fassung in Ausgabe 1/2019 veröffentlicht.</p>



<p class="wp-block-paragraph">Interessierte können sich den ganzen Artikel&nbsp;<strong><a href="https://atra.consulting/wp-content/uploads/2025/01/OS-Sonderdruck_OS_1_2019_Schwarze-Consulting.pdf" target="_blank" rel="noreferrer noopener">hier</a>&nbsp;</strong>herunterladen.</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:30%">
<figure class="wp-block-image is-resized"><img decoding="async" src="https://atra.consulting/wp-content/uploads/2024/04/Team-Schwarze.jpg" alt="" class="wp-image-506" style="width:304px;height:auto" title="Team-Schwarze"/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<h3 class="wp-block-heading">Michael Schwarze</h3>



<p class="wp-block-paragraph">Geschäftsführer</p>



<div style="height:16px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">Michael ist ein erfahrener Softwareentwickler, -architekt und -manager mit über 30 Jahren Erfahrung in der Technologiebranche. Er hat sowohl in Startups als auch Konzernen auf Anwender- als auch Entwicklungs- und Beratungsseite gearbeitet.&nbsp; Coden ist für ihn nicht nur Beruf, sondern Leidenschaft, am liebsten mit dynamisch-typisierten Sprachen wie Ruby. Neben der Entwicklung langlebiger Softwaresysteme liegt ihm auch die Verbesserung des Managements in der Softwareentwicklung am Herzen. Wenn er nicht gerade mit seiner Familie und seinen zwei Kindern beschäftigt ist, findet man ihn in den Bergen, beim Joggen oder anderen sportlichen Aktivitäten.</p>



<div style="height:16px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<p class="wp-block-paragraph"><a href="mailto:m.schwarze@atra.consulting">m.schwarze@atra.consulting</a>    </p>



<ul class="wp-block-social-links is-layout-flex wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/in/michael-schwarze/" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li></ul>
</div>
</div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bericht von der QCon in New York</title>
		<link>https://atra.consulting/allgemein/bericht-von-der-qcon-in-new-york/</link>
		
		<dc:creator><![CDATA[Michael Schwarze]]></dc:creator>
		<pubDate>Mon, 30 Jul 2018 13:17:47 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Architektur]]></category>
		<category><![CDATA[Konferenzen]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<guid isPermaLink="false">https://atra.consulting/uncategorized/bericht-von-der-qcon-in-new-york/</guid>

					<description><![CDATA[Unter dem Motto »Bleeding-edge for the Enterprise« fand die »7th International Software Development Conference«&#160;QCon&#160;vom 25. bis 29. Juni 2018 in New York statt. Wir waren dabei und geben nachfolgend einen Überblick und unseren Eindruck der besuchten Vorträge. Inhalt: Bleeding-edge for the Enterprise Nach der&#160;QCon 2015 in San Francisco&#160;stand dieses Jahr New York für uns auf [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Unter dem Motto »<em>Bleeding-edge for the Enterprise</em>« fand die »<em>7th International Software Development Conference</em>«&nbsp;<strong><a href="https://qconnewyork.com/" target="_blank" rel="noreferrer noopener">QCon</a></strong>&nbsp;vom 25. bis 29. Juni 2018 in New York statt. Wir waren dabei und geben nachfolgend einen Überblick und unseren Eindruck der besuchten Vorträge.</p>



<p class="wp-block-paragraph"><strong>Inhalt:</strong></p>



<ul class="wp-block-list">
<li><a href="https://atra.consulting/?p=26571&amp;et_fb=1&amp;PageSpeed=off#bleeding-edge">Bleeding-edge for the Enterprise</a></li>



<li><a href="https://atra.consulting/?p=26571&amp;et_fb=1&amp;PageSpeed=off#workshops">Workshops</a>
<ul class="wp-block-list">
<li><a href="https://atra.consulting/?p=26571&amp;et_fb=1&amp;PageSpeed=off#developer">From Developer to Architect</a></li>



<li><a href="https://atra.consulting/?p=26571&amp;et_fb=1&amp;PageSpeed=off#coaching">Coaching the Team System</a></li>
</ul>
</li>



<li><a href="https://atra.consulting/?p=26571&amp;et_fb=1&amp;PageSpeed=off#keynotes">Keynotes</a>
<ul class="wp-block-list">
<li><a href="https://atra.consulting/?p=26571&amp;et_fb=1&amp;PageSpeed=off#developers-malware">Developers as a Malware Distribution Vehicle</a></li>



<li><a href="https://atra.consulting/?p=26571&amp;et_fb=1&amp;PageSpeed=off#brief">A Brief, Opinionated History of the API</a></li>
</ul>
</li>



<li><a href="https://atra.consulting/?p=26571&amp;et_fb=1&amp;PageSpeed=off#vortraege">Vorträge</a>
<ul class="wp-block-list">
<li><a href="https://atra.consulting/?p=26571#vortraege">Software Updates in an Orchestrated World</a></li>



<li><a href="https://atra.consulting/?p=26571#web-assembly">WebAssembly 101</a></li>



<li><a href="https://atra.consulting/?p=26571#code-performance">Understanding Code Performance in Production</a></li>



<li><a href="https://atra.consulting/?p=26571&amp;et_fb=1&amp;PageSpeed=off#software-development">From Software Development to Machine Learning</a></li>



<li><a href="https://atra.consulting/?p=26571#skype">Skype’s Journey From P2P</a></li>



<li><a href="https://atra.consulting/?p=26571#artificial-intelligence">Explaining Artificial Intelligence to Schoolchildren</a></li>



<li><a href="https://atra.consulting/?p=26571#story">The Story of Teams, Autonomy, and Servant Leadership</a></li>



<li><a href="https://atra.consulting/?p=26571#auto-cad">AutoCAD &amp; WebAssembly: Moving a 30 Year Code Base to the Web</a></li>



<li><a href="https://atra.consulting/?p=26571#breaking-codes">Breaking Codes, Designing Jets and Building Teams</a></li>



<li><a href="https://atra.consulting/?p=26571#empowering">Empowering Agile Self-Organized Teams With Design Thinking</a></li>



<li><a href="https://atra.consulting/?p=26571#software-eating">Software Is Eating the World, ML Is Going to Eat Software</a></li>
</ul>
</li>



<li><a href="https://atra.consulting/?p=26571#einschaetzung">Einschätzung</a></li>
</ul>



<h3 class="wp-block-heading"><br><strong>Bleeding-edge for the Enterprise</strong></h3>



<p class="wp-block-paragraph">Nach der&nbsp;<strong><a href="https://atra.consulting/2015/12/18/QCon-SanFrancisco-2015.html">QCon 2015 in San Francisco</a>&nbsp;</strong>stand dieses Jahr New York für uns auf der Agenda. Mit dem Veranstaltungsort direkt am Times Square war die Konferenz im wahrsten Sinne des Wortes am Puls der Zeit. Die Veranstaltung ist »<em>designed for senior software engineering leaders</em>« und bot den über 900 Teilnehmern 117 Vorträge von 143 Rednern aus folgenden Themenbereichen:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b86532c9&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b86532c9" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="392" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Bleeding-edge-TecAdaptCurve-1024x392.png" alt="" class="wp-image-6372" title="Bleeding-edge-TecAdaptCurve" srcset="https://atra.consulting/wp-content/uploads/2025/04/Bleeding-edge-TecAdaptCurve-1024x392.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/Bleeding-edge-TecAdaptCurve-768x294.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"><em>© C4Media Inc | InfoQ.com</em></p>



<p class="wp-block-paragraph">Ob nun jedes Thema oder jeder der genannten Themenbereiche wirklich »bleeding-edge« ist, hängt natürlich immer auch von der eigenen Positionierung innerhalb der »Technology Adaption Curve« ab. Unserer Einschätzung nach ist die QCon schon sehr nah am Puls der Zeit und das nicht nur geografisch. Tech Leads und ähnliche Rollen aus den Entwicklungsabteilungen von führenden Firmen im Software Engingeering wie Facebook, Netflix &amp; Co. berichten hier über das, was jeweils wirklich schon im Einsatz ist. Ein schönes Beispiel hierzu ist das Thema Machine Learning. Während unserer Einschätzung nach die meisten Firmen, wenn überhaupt, noch dabei sind, das Thema zu verstehen, im besten Fall damit herum experimentieren,&nbsp;<strong><a href="https://atra.consulting/2018/07/30/QCon-NewYork-2018.html#software-is-eating-the-world-ml-is-going-to-eat-software">zeigte Facebook auf der Konferenz</a></strong>, wie sie es schon zur konkreten Produktivitätssteigerung in der eigenen Entwicklungsabteilung und zur Optimierung des Cache-Managements in der Infrastruktur einsetzen – Use Cases die wir so, zumindest vorher, noch nicht gesehen hatten.</p>



<p class="wp-block-paragraph">Waren Microservices<strong>&nbsp;<a href="https://atra.consulting/2015/12/18/QCon-SanFrancisco-2015.html#software-is-changing-the-world">2015</a>&nbsp;</strong>als sogenannte »Innovators« in QCons »Technology Adaption Curve« noch beherrschendes Thema, so befinden sie sich nun in der »Early Majority« (siehe Grafik oben). Folglich gab es zwar noch einen Track zum Thema, hier lag der Fokus der Vorträge dann aber auch auf sehr konkreten Anwendungs- und Betriebsthemen derselben.</p>



<p class="wp-block-paragraph">Die beherrschenden diesjährigen Themenbereiche waren entsprechend auch wieder aus den Bereichen »Innovators« und »Early Adopters«, insbesondere Serverless, Chaos Engineering und Machine Learning sowie Blockchain, Rust, Web Assembly und Software Ethics. Wobei die Einstufung des letzten Themenbereichs innerhalb »Innovators« uns dann doch verwundert hat, da wir&nbsp;<strong><a href="https://atra.consulting/2009/12/22/Leistung.html#ethics--ethik">Ethik als relevante Dimension der Leistungsbeurteilung</a></strong>&nbsp;beispielsweise nun schon seit über 10 Jahren propagieren und nicht unbedingt als Innovation sehen würden.</p>



<h3 class="wp-block-heading"><br><strong>Workshops</strong></h3>



<p class="wp-block-paragraph">Die ersten zwei Tage der Konferenz waren ausschließlich Workshops gewidmet. Themen reichten von Serverless über die Programmiersprache Go und Python-basierte AI bis zu Microservices »in Aktion«. Neben diesen eher technologischen Themen gab es auch wieder Workshops zu den »weicheren« Aspekten rund um Softwareentwicklung.</p>



<h3 class="wp-block-heading"><br><strong>From Developer to Architect</strong></h3>



<p class="wp-block-paragraph">In&nbsp;<strong><a href="https://qconnewyork.com/ny2018/ny2018/workshop/developer-architect.html" target="_blank" rel="noreferrer noopener">diesem Workshop</a></strong>&nbsp;wurde aufgezeigt, was einen Softwarearchitekten von einem Softwareentwickler unterscheidet, beziehungsweise was die Rolle des Architekten an Aufgaben mit sich bringt. Die Wichtigkeit dieser Rolle in Softwareentwicklungsvorhaben haben wir ja bereits an anderer<strong>&nbsp;<a href="https://atra.consulting/2018/03/21/Rolle_Architekt_Umfrage.html">Stelle</a></strong>&nbsp;aufgezeigt.</p>



<p class="wp-block-paragraph">Zunächst wurden hier die organisatorischen und kommunikativen Aspekte der Architektenrolle herausgestellt. Dass ein Architekt viel kommunizieren muss, mag einleuchten, bedeutet aber andererseits auch, dass er viel Zeit in Besprechungen verbringt. Interessant ist hier die Analogie, dass Architektur eine Geschichte ist, die erzählt werden muss. Wer das als Entwickler nicht mag, sollte sich eventuell überlegen, ob er wirklich Architekt werden möchte, beziehungsweise weiß die Arbeit, die der Architekt dem Entwickler damit abnimmt, dann vielleicht auch ganz anders zu schätzen.</p>



<p class="wp-block-paragraph">Mit den organisatorischen Aspekten sind dann häufig auch Budgetfragen verbunden, die ein Architekt zu beantworten hat. Und wo es um Geld geht, wird es schnell politisch, weshalb ein Architekt auch wissen muss, wie er welche Botschaft wann an wen sendet. Hier kann&nbsp;<strong><a href="https://stratechery.com/2013/socialcommunication-map/" target="_blank" rel="noreferrer noopener">Ben Thompsons Social/Communication Map</a></strong>&nbsp;helfen.</p>



<p class="wp-block-paragraph">Auch wurde angesprochen, dass die Entwicklung zum Architekten in der Praxis ja (leider) häufig über Versuch und Irrtum erfolgt. Dass Architekten in ihrer Laufbahn aufgrund der tendenziell langläufigen Natur ihrer Arbeit häufig nur wenige Architekturen von Anfang bis Ende bearbeiten können, erschwert dies zusätzlich. Wobei der Referent dabei auch die interessante Frage stellte, was denn eigentlich die&nbsp;<strong><a href="https://www.scrum.org/resources/scrum-glossary" target="_blank" rel="noreferrer noopener">Definition-of-Done</a></strong>&nbsp;einer Architektur ist?&nbsp;<strong><a href="https://nealford.com/katas/" target="_blank" rel="noreferrer noopener">Neal Fords Architektur Katas</a></strong>&nbsp;wurden als ein Element genannt, um Architekturentwicklung gefahrlos üben zu können. Denn ein guter Architekt wird man, in dem man an Architekturen arbeitet:</p>



<p class="wp-block-paragraph">»<em>How do we get great designers? Great designers design, of course.</em>« –Fred Brooks</p>



<p class="wp-block-paragraph">Ein weiterer Teil des Workshops war der Technologieauswahl gewidmet. Auch wenn Architektur nicht gleich Technologie ist, so ist die Technologieauswahl doch häufig Architektenaufgabe. Der Architekt sollte hierbei aber die eigentlichen Ziele nicht aus dem Auge verlieren. So ist beispielsweise die Testabdeckung in der Regel wichtiger, als welches Testing-Framework schlussendlich zum Einsatz kommt. Da Technologiefragen gerade unter Entwicklern gerne auch ideologisch geführt werden, ein guter Tipp vom Referenten:</p>



<p class="wp-block-paragraph">»<em>Avoid resume-driven decisions!</em>« –Nathaniel T. Schutta</p>



<p class="wp-block-paragraph">Üblicherweise verantwortet ein Architekt die sogenannten nicht-funktionalen Anforderungen, weshalb ein weiterer Block auch diesen sich häufig widersprechenden Attributen einer Software gewidmet war, wie zum Beispiel:</p>



<ul class="wp-block-list">
<li>Wartbarkeit</li>



<li>Skalierbarkeit</li>



<li>Verlässlichkeit</li>



<li>Sicherheit</li>



<li>Ausrollbarkeit</li>



<li>Einfachheit</li>



<li>Nutzbarkeit</li>



<li>Kompatibilität</li>



<li>Fehlertoleranz</li>



<li>Modularität</li>



<li>…</li>
</ul>



<p class="wp-block-paragraph">Aus Sicht des Referenten sollte ein Architekt hier aber besser von Qualitätsmerkmalen reden. Denn welcher Kunde zahlt schon gerne für etwas, das keine Funktion erfüllt und was er üblicherweise nicht direkt sieht?</p>



<p class="wp-block-paragraph">Da Architekturentscheidungen getroffen werden, ob man es will oder nicht (»Accidental Architecture«), ist es wichtig, die Rolle des Architekten zu klären. Die besten Architekturen entwickeln sich nach aktuellem Kenntnisstand evolutionär (»<strong><a href="https://amzn.to/2zG0CG7" target="_blank" rel="noreferrer noopener">Evolutionary Architectures</a></strong>«) durch</p>



<ul class="wp-block-list">
<li>Nutzung von <strong><a href="https://martinfowler.com/articles/feature-toggles.html" target="_blank" rel="noreferrer noopener">Feature Toggles</a></strong></li>



<li>sowie <a href="https://www.thoughtworks.com/de/insights/blog/how-implement-hypothesis-driven-development#" target="_blank" rel="noreferrer noopener"><strong>hypothesengestützte Entwicklung</strong></a>,</li>



<li>Einsatz von <strong><a href="https://www.thoughtworks.com/de/radar/techniques/architectural-fitness-function" target="_blank" rel="noreferrer noopener">Fitnessfunktionen</a></strong></li>



<li>und <a href="https://www.thoughtworks.com/de/radar/techniques/chaos-engineering" target="_blank" rel="noreferrer noopener"><strong>Chaos Engineering</strong></a>.</li>
</ul>



<p class="wp-block-paragraph">In Anlehnung an Winstons Churchills Ausspruch zur Demokratie gab der Referent zum Thema Prozesse zum Abschluss noch ein Zitat mit Augenzwinkern auf den Weg:</p>



<p class="wp-block-paragraph">»<em>Agile is the worst form of software development, except all other.</em>« –Nathaniel T. Schutta</p>



<p class="wp-block-paragraph">Insgesamt ein solider Grundlagen-Workshop zur Rolle des Architekten, wenn auch nicht unbedingt »bleeding-edge«. Ein wenig mehr Bezug zu aktuellen Fragestellungen der Softwarearchitektur, wie beispielsweise Architektur im Kontext agiler Softwareentwicklung hätte den Workshop noch abgerundet.</p>



<h3 class="wp-block-heading"><br><strong>Coaching the Team System</strong></h3>



<p class="wp-block-paragraph">Teams verändern sich. Hilfestellungen hierzu bot&nbsp;<strong><a href="https://qconnewyork.com/ny2018/ny2018/workshop/coaching-team-systems.html" target="_blank" rel="noreferrer noopener">dieser Workshop</a>.</strong>&nbsp;Wurde früher versucht, Teams wie Systeme möglichst stabil zu halten (»Never change a running/winning…«), so setzt sich immer mehr die Erkenntnis durch, dass wir damit eher das Gegenteil erreichen, da wir so im Moment der Veränderung schlecht vorbereitet sind: Wie sollen wir gut in etwas sein, was wir nicht regelmäßig praktizieren?</p>



<p class="wp-block-paragraph">»<em>Teams change. Better get good at it.</em>« –Heidi Helfand</p>



<p class="wp-block-paragraph">Die Referentin zeigte zunächst auf, dass bereits wenn eine Person ein Team verlässt oder hinzu kommt, eine neue Teamsituation entsteht, auf die wir eingehen müssen. Veränderungen passieren dabei auch noch auf verschiedenen Ebenen:</p>



<ul class="wp-block-list">
<li>Person</li>



<li>Team</li>



<li>Gilde, Stamm, Tribe – Gruppierungen einzelner Rollen, beispielsweise »alle Entwickler«</li>



<li>Abteilung</li>



<li>Unternehmen</li>
</ul>



<p class="wp-block-paragraph">Außerdem folgen auch Veränderungen einem Zyklus. Dreht es sich während der Entstehung eines Teams beispielsweise eher um Fragen des Onboardings neuer Mitarbeiter, so stehen heranwachsende Teams vor anderen Herausforderungen. Hier muss dann zum Beispiel mit kulturellen Veränderungen umgegangen werden, wenn aus eher chaotischen Startups Hierarchien entwachsen. Reife und stabile Teams benötigen wiederum oftmals eher einen Impuls, um wieder Energie freizusetzen beziehungsweise Veränderungen anzustoßen. Zu jeder dieser Coaching-Herausforderungen gab die Referentin entsprechende Tools mit auf den Weg, beispielsweise die »Market of Skills«-Aktivität, beim Onboarding neuer Mitarbeiter oder die »First-Team«-Aktivität, wenn kulturelle Aspekte geteilt werden sollen.</p>



<p class="wp-block-paragraph"><strong><a href="https://rework.withgoogle.com/print/guides/5721312655835136/" target="_blank" rel="noreferrer noopener">Googles Projekt Aristotels</a></strong>&nbsp;hat dabei eindrucksvoll gezeigt, dass dies nichts Esoterisches ist, sondern dazu dient, das, was erfolgreiche Teams ausmacht, herzustellen: »<strong><a href="https://www.youtube.com/watch?v=LhoLuui9gX8&amp;feature=youtu.be" target="_blank" rel="noreferrer noopener">psychologische Stabilität</a></strong>«.</p>



<p class="wp-block-paragraph">Bleibt die Frage, wer im Unternehmen dann eigentlich diese wichtige Rolle des Coaches übernimmt. Die Rolle Teamleitung als »klassische« erste Anlaufstelle für diese Fragen sehen wir hierzu insbesondere in agilen Teams immer häufiger gar nicht mehr genug »auf dem Spielfeld«. Gleichzeitig reduzieren Unternehmen die Rolle des Scrum Masters häufig nach einiger Zeit zum Teil drastisch, da »Scrum ja dann eingeführt ist«. Wir haben schon erlebt, dass ein Scrum Master beziehungsweise agiler Coach für 10 und mehr Teams zuständig war. Idealerweise verfügt jedes Team über diese notwendigen Teamentwicklungs-Skills, aber auch dieser Zustand muss erfahrungsgemäß zunächst hergestellt werden. Und dann ändert sich das Team wieder. Booking.com hat im Vortrag&nbsp;<strong><a href="https://atra.consulting/2018/07/30/QCon-NewYork-2018.html#the-story-of-teams-autonomy-and-servant-leadership">»The Story of Teams, Autonomy, and Servant Leadership«</a>&nbsp;</strong>vom Donnerstag (siehe unten) interessanten Einblick in ihren Ansatz dazu gegeben.</p>



<h3 class="wp-block-heading"><br><strong>Keynotes</strong></h3>



<p class="wp-block-paragraph">Jeder der drei folgenden Konferenztage begann jeweils mit einer Keynote, welche durch Themenwahl und Vortragenden auch immer zum Nachdenken anregen sollte.</p>



<h3 class="wp-block-heading"><br><strong>Developers as a Malware Distribution Vehicle</strong></h3>



<p class="wp-block-paragraph">Ein&nbsp;<strong><a href="https://analytics.ncsu.edu/sesug/2005/SER06_05.PDF" target="_blank" rel="noreferrer noopener">»guter« Softwareentwickler vereint bekanntermaßen die drei Eigenschaften Faulheit, Ungeduld und Überheblichkeit</a>. In&nbsp;<a href="https://www.infoq.com/presentations/dev-malware-spread" target="_blank" rel="noreferrer noopener">diesem Vortrag</a></strong>&nbsp;wurde aufgezeigt, dass gerade diese Kombination ihn aber auch besonders empfänglich für Hacker-Angiffe macht.</p>



<p class="wp-block-paragraph">So hat&nbsp;<strong><a href="https://en.wikipedia.org/wiki/XcodeGhost" target="_blank" rel="noreferrer noopener">XcodeGhost</a>&nbsp;</strong>in 2015 beispielsweise über 4.000 Apps infiziert und bis zu 1,4 Millionen Opfer pro Tag geschädigt. Dabei wurde von Unbekannten eine infizierte Version von Apples IDE XCode hinter Chinas&nbsp;<strong><a href="https://en.wikipedia.org/wiki/Great_Firewall" target="_blank" rel="noreferrer noopener">Great Firewall</a>&nbsp;</strong>ausgerollt. Diese hatte prominente Apps wie zum Beispiel&nbsp;<strong><a href="https://en.wikipedia.org/wiki/WeChat" target="_blank" rel="noreferrer noopener">WeChat</a></strong>&nbsp;durch einen veränderten Compiler mit Schadcode versehen, wodurch die betroffenden Apps gleich mehrere Angriffsvektoren aufwiesen (Remote Control, Datendiebstahl und mehr). Der Referent brachte hier noch eine Vielzahl weiterer Beispiele, von versehentlich auf Github publizierten Zugangsdaten des Fahrdienstleisters Uber bis zu einem Phishing-Angriff auf einen Entwickler der Financial Times. Im ersteren Fall gelangten Millionen Daten von Millionen Fahrgästen und Fahrern von Uber an die Öffentlichkeit. Im letzteren Fall wurden zwar nur kurzzeitig falsche Meldungen über Twitter veröffentlicht, ein&nbsp;<a href="https://www.kaspersky.de/blog/nach-dem-hack-des-ap-kontos-bei-twitter/973/" target="_blank" rel="noreferrer noopener"><strong>ähnlicher Fall bei der</strong>&nbsp;<strong>AP</strong></a>&nbsp;brachte aber beispielsweise den Dow Jones innerhalb von Minuten um 1 % nach unten. Jedes Mal waren Entwickler das Einfallstor für die Hacker. Salesforce.com führte nach Angaben des Referenten einen internen Phishing-Test durch und Entwickler hatten dabei die zweithöchste Klickrate.</p>



<p class="wp-block-paragraph">Das Schlimme hieran: Compiler-Hacks wie der geschilderte XCodeGhost sind schon mindestens seit dem sogenannten »<strong><a href="https://wiki.c2.com/?TheKenThompsonHack" target="_blank" rel="noreferrer noopener">Ken Thompson Hack</a></strong>« von 1984 bekannt.</p>



<p class="wp-block-paragraph">Open-Source Software hat dabei noch einen vermeintlich sicheren Status, da der Quellcode ja öffentlich einsehbar und somit nur schwerlich kompromittierbar ist. Aber wer weiß schon, ob das entsprechende npm-Package auch dem Sourcecode auf Github entspricht? Vergangenes Jahr wurden auf diesem Wege beispielsweise&nbsp;<strong><a href="https://www.csoonline.com/article/3214624/security/malicious-code-in-the-node-js-npm-registry-shakes-open-source-trust-model.html" target="_blank" rel="noreferrer noopener">39 infizierte Packages über zwei Wochen</a>&nbsp;</strong>via npm verteilt. Und das zieht sich quer durch alle Technologien. So wurden gerade vergangenen Monat&nbsp;<strong><a href="https://www.bleepingcomputer.com/news/security/17-backdoored-docker-images-removed-from-docker-hub/" target="_blank" rel="noreferrer noopener">17 infizierte Docker-Images offline</a></strong>&nbsp;genommen. Und&nbsp;<strong><a href="https://blog.rubygems.org/2016/04/06/gem-replacement-vulnerability-and-mitigation.html" target="_blank" rel="noreferrer noopener">Rubys Paketsystem RubyGem hatte in 2016 sein entsprechendes Sicherheits-Debakel</a></strong>. Das lokale Kompilieren des sauberen Quellcodes könnte hier helfen. Das machen aber nur die Wenigsten. Und dann war da ja noch die Sache mit dem Compiler-Hack…</p>



<p class="wp-block-paragraph">»<em>You cannot trust code which you do not totally control.</em>« –Guy Podjarny</p>



<p class="wp-block-paragraph">Der Referent konnte verschiedene Gründe aufzeigen, warum gerade Entwickler dazu neigen, Entscheidungen zu treffen, die negative Auswirkungen auf die Sicherheit eines Systems haben:</p>



<ul class="wp-block-list">
<li>Fokus auf Funktion: Sicherheit wird als Einschränkung wahrgenommen.</li>



<li>Kognitive Beschränkung: Facebook hat seinen initialen Slogan »<strong><a href="https://amzn.to/2zKHWFd" target="_blank" rel="noreferrer noopener">Move fast and break things</a></strong>« nicht ohne Grund zu »<strong><a href="https://mashable.com/2014/04/30/facebooks-new-mantra-move-fast-with-stability" target="_blank" rel="noreferrer noopener">Move fast with a stable infrastructure</a></strong>« geändert.</li>



<li>Einerseits fehlendes Wissen: Nicht jeder Entwickler versteht alle Sicherheitimplikationen seiner Arbeit.</li>



<li>Andererseits fühlen Entwickler sich häufig zu sicher (siehe auch die eingangs erwähnten Eigenschaften eines »guten« Entwicklers) und sind damit beispielsweise dann auch schwerer zu schulen.</li>



<li>»Das passiert mir doch nicht«-Mentalität, dabei passieren Sicherheitsvorfälle jedem.</li>
</ul>



<p class="wp-block-paragraph">Als mögliche Gegenmaßnahmen wurde Folgendes empfohlen:</p>



<ul class="wp-block-list">
<li>Systematisches Lernen aus vergangenen Fehlern</li>



<li>Sicherheitskontrollen automatisieren</li>



<li>»Make it easy to be secure«</li>



<li>Zutritt »wie die Großen« managen, beispielsweise
<ul class="wp-block-list">
<li><strong><a href="https://www.beyondcorp.com/" target="_blank" rel="noreferrer noopener">Googles BeyondCorp</a></strong></li>



<li><strong><a href="https://docs.microsoft.com/de-de/windows-server/identity/securing-privileged-access/privileged-access-workstations" target="_blank" rel="noreferrer noopener">Microsofts Priviliged Access Workstations</a></strong></li>



<li><strong><a href="https://github.com/Netflix/bless" target="_blank" rel="noreferrer noopener">Netflix’ BLESS</a></strong></li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">Die Keynote war ein gelungener Einstieg in den ersten Konferenztag und durchaus ein Augenöffner für gewisse Sicherheitsthemen.</p>



<h3 class="wp-block-heading"><br><strong>A Brief, Opinionated History of the API</strong></h3>



<p class="wp-block-paragraph">In der&nbsp;<strong><a href="https://www.infoq.com/presentations/history-api" target="_blank" rel="noreferrer noopener">zweiten Keynote</a></strong>&nbsp;nahm sich Joshua Bloch, Chief Java Architect von Google, vormals Distinguished Engineer für Sun Microsystems und Autor unter anderem von&nbsp;<strong><a href="https://amzn.to/2BawymO" target="_blank" rel="noreferrer noopener">Effective Java</a></strong>, die Geschichte der API (Application Programming Interface) vor und brachte dabei Erstaunliches zutage.</p>



<p class="wp-block-paragraph">Bereits 1948 erwähnten Goldstine und von Neuman erstmals eine »Subroutine Library« in ihrer theoretischen (!) Abhandlung über das Programmieren eines sogenannten »<a href="https://archive.org/stream/planningcodingof0103inst#page/n5/mode/2up" target="_blank" rel="noreferrer noopener"><strong>Electronic Computing</strong>&nbsp;<strong>Instruments</strong></a>«.&nbsp;<strong><a href="https://amturing.acm.org/award_winners/wilkes_1001395.cfm" target="_blank" rel="noreferrer noopener">Wilkes</a></strong>&nbsp;hat dann 1951 mit Wheeler und Gill Programmbibliotheken mit dem ersten Text zur Computerprogrammierung überhaupt »<strong><a href="https://archive.org/details/programsforelect00wilk" target="_blank" rel="noreferrer noopener">Preparation of Programs for Electronic Digital Computers</a></strong>« praktisch eingeführt und wurde unter anderem dafür 1967 mit dem Turing Award ausgezeichnet. Schon damals stellten sie fest:</p>



<p class="wp-block-paragraph"><em>»Documenting [APIs] is hard.«</em></p>



<p class="wp-block-paragraph">Außerdem sollten Programmbibliotheken schon damals Komplexität vor dem Nutzer verbergen. APIs sind natürlich keine Programmbibliotheken, sondern heute losgelöst von ihnen zu sehen. Eine Programmbibliothek hat aber eine entsprechende Schnittstelle (Interface), um die Applikation programmatisch einzubinden. Somit darf man die Programmbibliothek durchaus als Vorläufer der API ansehen. Selbiger Begriff wurde dann erstmals ab&nbsp;<strong><a href="https://www.merriam-webster.com/dictionary/application%20programming%20interface" target="_blank" rel="noreferrer noopener">1968</a></strong>&nbsp;genutzt.</p>



<p class="wp-block-paragraph">Der Wert einer (guten) API liegt darin, dass die Implementierung geändert werden kann, ohne dass der Nutzer davon etwas merkt. Der Lebenszyklus einer API ist also losgelöst von der Implementierung: »Write once, run anywhere«. Daraus ergibt sich auch der folgende »Test«, ob eine Schnittstelle als API zu verstehen ist oder nicht:</p>



<ul class="wp-block-list">
<li>Es wird ein Set an Operationen bereitgestellt, welche durch ihre Ein- und Ausgaben definiert sind.</li>



<li>Re-Implementierung ohne Beeinträchtigung des Nutzers wird unterstützt.</li>
</ul>



<p class="wp-block-paragraph">Da das vielleicht etwas abstrakt ist, brachte der Referent dann historische Beispiele für entsprechende APIs, die vielleicht nicht jeder bisher auch als solche verstanden hat:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>API</strong></td><td><strong>stabil seit</strong></td></tr><tr><td>Fortran II standard Bibliothek für mathematische Funktionen</td><td>1958</td></tr><tr><td>C-Standard-Bibliothek</td><td>1975</td></tr><tr><td>Unix System Calls</td><td>1975</td></tr><tr><td>DEC VT100 Escape Sequenzen</td><td>1978</td></tr><tr><td>IBM PC BIOS</td><td>1981</td></tr><tr><td>MS-DOS Befehlszeilen Interface “Prompt”</td><td>1981</td></tr><tr><td>Hayes AT Befehlssatz für Modems</td><td>1982</td></tr><tr><td>Windows-32</td><td>1993</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Viele der oben genannten Beispiele sind heute noch im Einsatz. Der Hayes AT Befehlssatz für Modems findet sich heute noch in fast allen Handys. Und die Standardisierung und Re-Implementierungsmöglichkeit des IBM PCs in Kombination mit MS-DOS haben die Ära der PCs der 1980er Jahre begründet, von der wir auch heute noch zehren.&nbsp;<strong><a href="https://www.winehq.org/" target="_blank" rel="noreferrer noopener">WINE</a>&nbsp;</strong>ist wiederum ein schönes Beispiel für eine Re-Implementierung einer API ohne Beeinträchtigung des Nutzers, in dem Fall der Windows-32-API auf unixoiden Systemen. Genauso bilden die C-Standard-Bibliothek und die Unix System Calls das Fundament unserer heutigen digitalen Welt, findet sich doch dank Android ein (freies) Unix in mittlerweile Milliarden von Geräten:</p>



<p class="wp-block-paragraph"><em>»APIs are the glue that connect our digital universe.«</em>&nbsp;–Joshua Bloch</p>



<p class="wp-block-paragraph">Bislang war die Re-Implementierung von APIs rechtlich unproblematisch. Durch den&nbsp;<strong><a href="https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc." target="_blank" rel="noreferrer noopener">Rechtsstreit von Oracle mit Google</a></strong>&nbsp;ändert sich die Situation zumindest in den USA derzeit. Oracle wirft Google vor, dass deren Re-Implementierung der Java Standard Edition Bibliothek für das Android Betriebssystem Oracles Copyright und Patentrechte verletze. Der Prozess läuft bereits seit 2012 und durch mehrere Instanzen. Der aktuellste Entscheid spricht sich für Oracle aus, wodurch APIs derzeit in den USA quasi Copyrightschutz besitzen und nicht ohne Zustimmung des Autors frei re-implementiert werden sollten. Sollte sich hieran nichts mehr ändern, wird unserem digitalen Universum das zusammenhaltende Element entzogen.</p>



<p class="wp-block-paragraph">Der Referent war in den Gerichtsprozessen als Gutachter tätig und hat sich auch in diesem Vortrag entsprechend für die weiterhin freie Implementierbarkeit von APIs ausgesprochen, weshalb er den Vortrag auch als »opinionated« benannt hat.</p>



<h2 class="wp-block-heading"><br><strong>Vorträge</strong></h2>



<h3 class="wp-block-heading"><strong>Software Updates in an Orchestrated World</strong></h3>



<p class="wp-block-paragraph"><strong><a href="https://qconnewyork.com/ny2018/ny2018/presentation/software-updates-orchestrated-world.html" target="_blank" rel="noreferrer noopener">Dieser Vortrag</a></strong>&nbsp;lief innerhalb der »Sponsored Tracks«, wurde also von einem Produkthersteller und Sponsor der QCon, in diesem Fall der Firma&nbsp;<strong><a href="https://jfrog.com/" target="_blank" rel="noreferrer noopener">JFrog</a>&nbsp;</strong>durchgeführt.</p>



<p class="wp-block-paragraph">Der Referent griff den für uns auf der Konferenz durchgängig erkennbaren Faden auf, dass es sicherer ist, oft und schnell zu releasen, als die Systeme stabil zu halten. Aufhänger hierfür war die zunehmende Komplexität der Systeme, die wir entwickeln. Insbesondere, da der Großteil eines Systems üblicherweise aus externer Software besteht, wie wir hier am Beispiel der freien, webbasierten Projektmanagementsoftware&nbsp;<strong><a href="https://www.redmine.org/" target="_blank" rel="noreferrer noopener">Redmine</a>&nbsp;</strong>exemplarisch nachgestellt haben:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b86557f8&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b86557f8" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="576" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Umfang-Abhaengigkeiten-1024x576.png" alt="" class="wp-image-6392" title="Umfang-Abhaengigkeiten" srcset="https://atra.consulting/wp-content/uploads/2025/04/Umfang-Abhaengigkeiten-1024x576.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/Umfang-Abhaengigkeiten-768x432.png 768w, https://atra.consulting/wp-content/uploads/2025/04/Umfang-Abhaengigkeiten-780x440.png 780w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">Die eigentliche Anwendung ist hier mit 200.000 Codezeilen beziehungsweise 1 % des Gesamtumfangs nur die Spitze des Eisbergs. 99 % der Anwendung sind Fremdcode, der aber auch verwaltet und insbesondere aktuell gehalten werden will. Die Abhängigkeiten machen die Situation dabei besonders brisant: löst man die rund 1.000 Abhängigkeiten von Kubernetes auf, so wächst allein diese Software schon auf stolze 35 Millionen Codezeilen an, wird also größer als das Betriebssystem.</p>



<p class="wp-block-paragraph">Bei den exemplarischen 1.580 Abhängigkeiten des oben gezeigten Beispielsystems wäre man 4 Jahre mit Updates beschäftigt, würde man nur eine Abhängigkeit pro Tag aktualisieren. Natürlich bündelt man das in der Regel analog zu&nbsp;<strong><a href="https://de.wikipedia.org/wiki/Patchday" target="_blank" rel="noreferrer noopener">Microsofts Patchday</a></strong>. Trotzdem muss der gesamte Softwarestack nach Updates entsprechend getestet werden, was in der Regel einen Großteil des Aufwands ausmacht.</p>



<p class="wp-block-paragraph">Artefakt-Repositories wie&nbsp;<strong><a href="https://de.sonatype.com/nexus-repository-oss" target="_blank" rel="noreferrer noopener">Sonatypes Nexus</a></strong>&nbsp;und&nbsp;<strong><a href="https://jfrog.com/artifactory/" target="_blank" rel="noreferrer noopener">JFrogs Artifactory</a></strong>&nbsp;helfen bei der Verwaltung dieser Vielzahl von Abhängigkeiten und somit letztlich bei der Fragestellung, wie man den Überblick über einen komplexen Softwarestack von tausenden von (Open Source) Systemen heutzutage behält. Dazu kommt jedoch noch die zunehmende Komplexität des Bereichs Cybersecurity, schön dargestellt anhand<strong>&nbsp;<a href="https://www.linkedin.com/pulse/map-cybersecurity-domains-version-20-henry-jiang-ciso-cissp" target="_blank" rel="noreferrer noopener">Henry Jiangs »Map of Cybersecurity Domains«</a></strong>. Hier wird erkennbar, dass es nicht mehr nur mit Updates der Fremdsoftware alleine getan ist. Risk-Management, Sourcecode Scans, Vulnerability Checks, Architectural Fit und so weiter wollen und müssen für den Fremcode ebenso bedacht sein:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b8656564&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b8656564" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="566" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Umfang-Abhaengigkeiten-2-1024x566.png" alt="" class="wp-image-6390" title="Umfang-Abhaengigkeiten-2" srcset="https://atra.consulting/wp-content/uploads/2025/04/Umfang-Abhaengigkeiten-2-1024x566.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/Umfang-Abhaengigkeiten-2-768x424.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="has-text-align-center wp-block-paragraph"><em>© Henry Jiang | https://www.linkedin.com/pulse/map-cybersecurity-domains-version-20-henry-jiang-ciso-cissp</em></p>



<p class="wp-block-paragraph">Die Produkthersteller erweitern ihre Portfolios natürlich entsprechend. So bietet JFrog beispielsweise mittlerweile auch Security Scans der Artefakte an. Der bisherige Platzhirsch Nexus wird dabei langsam von Artifactory überholt:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b865729d&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b865729d" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="495" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Umfang-Abhaengigkeiten-3-1024x495.png" alt="" class="wp-image-6391" title="Umfang-Abhaengigkeiten-3" srcset="https://atra.consulting/wp-content/uploads/2025/04/Umfang-Abhaengigkeiten-3-1024x495.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/Umfang-Abhaengigkeiten-3-768x371.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">Der Vortrag hat deutlich gemacht, dass das Lifecycle-Management immer wichtiger, aber auch immer aufwändiger wird.</p>



<h3 class="wp-block-heading"><br><strong>WebAssembly 101</strong></h3>



<p class="wp-block-paragraph"><strong><a href="https://webassembly.org/" target="_blank" rel="noreferrer noopener">WebAssembly</a></strong>&nbsp;könnte die Art und Weise, wie wir »Web Apps« schreiben, revolutionieren. Der&nbsp;<strong><a href="https://qconnewyork.com/ny2018/ny2018/presentation/capital-one-presentation.html" target="_blank" rel="noreferrer noopener">Vortrag</a></strong>&nbsp;gab dem Namen (»<strong><a href="https://en.wikipedia.org/wiki/101_(topic)" target="_blank" rel="noreferrer noopener">101</a></strong>«) folgend einen guten Einstieg in das Thema.</p>



<p class="wp-block-paragraph">WebAssembly ist ein binärer Befehlssatz, also eine Art Maschinensprache. Der Befehlssatz gilt allerdings nicht für einen speziellen Prozessor, sondern für eine virtuelle Maschine, welche von einer&nbsp;<strong><a href="https://www.w3.org/wasm/" target="_blank" rel="noreferrer noopener">Arbeitsgruppe des World Wide Web Consortium</a></strong>&nbsp;(kurz W3C), dem Gremium zur Standardisierung der Techniken im World Wide Web, verabschiedet wird. Dadurch ist diese virtuelle Maschine auch bereits in allen modernen Browsern vorhanden, wodurch diese zusätzlich zu JavaScript eine weitere Laufzeitumgebung erhalten.</p>



<p class="wp-block-paragraph">Da es in der Geschichte des Webs schon ähnliche Versuche gab, von Java Applets über Silverlight und Flash bis zu ASM.js und natürlich auch JavaScript, ist eine Abgrenzung hilfreich:</p>



<ul class="wp-block-list">
<li>WebAssembly ist keine Programmiersprache und kein neuer Browser;<br>– es soll weder JavaScript ablösen, noch ist es so etwas wie Flash oder Java Applets.
<ul class="wp-block-list">
<li></li>
</ul>
</li>



<li>Ohne einen entsprechenden Host funktioniert die Technologie nicht,<br>– wobei der Host nicht auf das Web beschränkt ist: alles kann ein WebAssembly Host sein.
<ul class="wp-block-list">
<li></li>
</ul>
</li>



<li>WebAssembly ist bislang noch im MVP-Status und dadurch<br>– weder multi-threaded, was sich mit Web Workern aber umgehen lässt,<br>– noch garbage-collected, was erklärt, warum Java noch nicht zu WebAssembly kompilieren kann.
<ul class="wp-block-list">
<li></li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">Aufgrund der Eigenschaften von WebAssembly, wie zum Beispiel Geschwindigkeit, Portabilität, Effizienz und Sicherheit, sind Anwendungsfälle insbesondere im Umfeld Mobile, IoT sowie grundsätzlicher bei leistungsstarken Web-Anwendungen zu sehen.</p>



<p class="wp-block-paragraph">Ziel ist dabei nicht, dass direkt in WebAssembly programmiert wird, da es sich wirklich um Binärcode handelt:</p>



<p class="wp-block-paragraph">20 00</p>



<p class="wp-block-paragraph">42 00</p>



<p class="wp-block-paragraph">51</p>



<p class="wp-block-paragraph">04 7e</p>



<p class="wp-block-paragraph">42 01</p>



<p class="wp-block-paragraph">05</p>



<p class="wp-block-paragraph">20 00</p>



<p class="wp-block-paragraph">20 00</p>



<p class="wp-block-paragraph">42 01</p>



<p class="wp-block-paragraph">7d</p>



<p class="wp-block-paragraph">10 00</p>



<p class="wp-block-paragraph">7e</p>



<p class="wp-block-paragraph">0b</p>



<p class="wp-block-paragraph">Es gibt zwar auch eine textuelle Entsprechung zu dem oben gezeigten Binärcode, also quasi Assemblercode, aber auch darin wollen wir heute nicht mehr wirklich direkt programmieren:</p>



<p class="wp-block-paragraph">get_local 0</p>



<p class="wp-block-paragraph">i64.const 0</p>



<p class="wp-block-paragraph">i64.eq</p>



<p class="wp-block-paragraph">if i64</p>



<p class="wp-block-paragraph">&nbsp; &nbsp;&nbsp;i64.const 1</p>



<p class="wp-block-paragraph">else</p>



<p class="wp-block-paragraph">&nbsp; &nbsp;&nbsp;get_local 0</p>



<p class="wp-block-paragraph">&nbsp; &nbsp;&nbsp;get_local 0</p>



<p class="wp-block-paragraph">&nbsp; &nbsp;&nbsp;i64.const 1</p>



<p class="wp-block-paragraph">&nbsp; &nbsp;&nbsp;i64.sub</p>



<p class="wp-block-paragraph">&nbsp; &nbsp;&nbsp;call 0</p>



<p class="wp-block-paragraph">&nbsp; &nbsp;&nbsp;i64.mul</p>



<p class="wp-block-paragraph">end</p>



<p class="wp-block-paragraph">Ziel ist vielmehr, dass die gängigen Compiler neben den Prozessorarchitekturen, für die sie sowieso schon kompilieren können, also beispielsweise ARM32 oder x86-64 zusätzlich auch für WebAssembly kompilieren können. Für C/C++ und Rust sind bereits entsprechende Kompiler vorhanden. Das folgende C-Programm wurde beispielsweise entsprechend für WebAssembly kompiliert, um den voran gezeigten Binär- beziehungsweise Assemblercode zu erhalten:</p>



<p class="wp-block-paragraph">int factorial(int n) {</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;if (n == 0)</p>



<p class="wp-block-paragraph">&nbsp; &nbsp;&nbsp;return 1;</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;else</p>



<p class="wp-block-paragraph">&nbsp; &nbsp;&nbsp;return n * factorial(n-1);</p>



<p class="wp-block-paragraph">}</p>



<p class="wp-block-paragraph">Der Ablauf, um ein Programm in WebAssembly zu erstellen und nutzen ist somit wie folgt:</p>



<ol class="wp-block-list">
<li>Schreiben oder portieren eines Programms in einer Programmiersprache, welche WebAssembly unterstützt – derzeit C/C++, Rust und <strong><a href="https://github.com/golang/go/wiki/WebAssembly" target="_blank" rel="noreferrer noopener">Go seit Version 1.11 zumindest experimentell</a></strong>.</li>



<li>Entsprechendes Kompilieren des Programms nach WebAssembly (WASM).</li>



<li>Das Kompilat wird dann über einen entsprechenden Webserver, der WebAssembly unterstützt, den sogenannten Host, ausgespielt</li>



<li>und kann dann, wie eine Webseite, von einem Browser, der WebAssembly unterstützt (Chrome, Edge, Firefox und WebKit/Safari), abgerufen werden.</li>
</ol>



<p class="wp-block-paragraph">Der Klassiker »helloWorld.c«</p>



<p class="wp-block-paragraph">#include &lt;stdio.h&gt;</p>



<p class="wp-block-paragraph">int main(int argc, char ** argv) {</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;printf(„Hello, world!\n“);</p>



<p class="wp-block-paragraph">}</p>



<p class="wp-block-paragraph">kompiliert nach WebAssembly sieht als statische Seite im Browser natürlich noch unspektakulär aus:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b865917c&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b865917c" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="964" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_WasmHello-1024x964.png" alt="" class="wp-image-6388" title="QCon-NewYork-2018_WasmHello" srcset="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_WasmHello-1024x964.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_WasmHello-768x723.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">Der in C geschriebene Editor&nbsp;<strong><a href="https://github.com/rhysd/vim.wasm" target="_blank" rel="noreferrer noopener">VIM wurde aber auch schon erfolgreich nach WebAssembly</a></strong>&nbsp;kompiliert und ist darüber&nbsp;<strong><a href="https://rhysd.github.io/vim.wasm/" target="_blank" rel="noreferrer noopener">im Webbrowser lauffähig</a></strong>, was zeigt, welches Potential in der Technologie steckt:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b8659e72&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b8659e72" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="759" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_WasmVim-1024x759.png" alt="" class="wp-image-6389" title="QCon-NewYork-2018_WasmVim" srcset="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_WasmVim-1024x759.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_WasmVim-768x569.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">Die Codebasis von VIM ist über 25 Jahre alt und umfasst mehr als 750.000 Zeilen, wurde aber in weniger als einer Woche von einem Entwickler nach WebAssembly portiert – inklusive Erlernen des notwendigen Toolings.</p>



<p class="wp-block-paragraph">Im Vortrag »<strong><a href="https://atra.consulting/2018/07/30/QCon-NewYork-2018.html#autocad--webassembly-moving-a-30-year-code-base-to-the-web">AutoCAD &amp; WebAssembly: Moving a 30 Year Code Base to the Web</a></strong>« vom Donnerstag (siehe unten) gibt es weitere Details zu einem noch größeren Portierungsvorhaben. Die Spiele-Engine Unity ist wohl auch schon entsprechend portiert,&nbsp;<strong><a href="https://webassembly.org/demo/" target="_blank" rel="noreferrer noopener">»Tanks« lässt sich als WebAssembly-Demo zumindest schon im Browser spielen</a></strong>. Vielleicht ergibt sich so auch eine Lösung für das&nbsp;<a href="https://fingfx.thomsonreuters.com/gfx/rngs/USA-BANKS-COBOL/010040KH18J/index.html" target="_blank" rel="noreferrer noopener">Cobol-Problem</a>? Wir sind gespannt, ob und wann die ersten Cobol-Compiler WASM erzeugen können…</p>



<h3 class="wp-block-heading"><br><strong>Understanding Code Performance in Production</strong></h3>



<p class="wp-block-paragraph">Dieser&nbsp;<strong><a href="https://qconnewyork.com/ny2018/ny2018/presentation/appdynamics-presentation.html" target="_blank" rel="noreferrer noopener">Vortrag</a>&nbsp;</strong>innerhalb der »Sponsored Tracks«, wurde von der Firma&nbsp;<strong><a href="https://www.appdynamics.com/" target="_blank" rel="noreferrer noopener">AppDynamics</a>&nbsp;</strong>durchgeführt.</p>



<p class="wp-block-paragraph">Produktive Umgebungen sind häufig anders als Entwicklungsumgebungen, da beispielsweise nicht jeder Entwickler auch zwangsläufig Zugang zu den entsprechenden Produktivsystemen seiner Applikation bekommt. Gleichzeitig verlagern sich die Erwartungen an den Betrieb von Applikationen durch Ansätze wie&nbsp;<strong><a href="https://www.gartner.com/it-glossary/devops" target="_blank" rel="noreferrer noopener">DevOps</a>&nbsp;</strong>und&nbsp;<strong><a href="https://aws.amazon.com/de/blogs/enterprise-strategy/enterprise-devops-why-you-should-run-what-you-build/" target="_blank" rel="noreferrer noopener">You-Build-it-You-Run-it</a></strong>&nbsp;in Richtung Entwicklung. Hier kann sogenanntes&nbsp;<em>Application Performance Monitoring</em>&nbsp;dem Entwickler wichtige Informationen über das Verhalten seiner Software in Produktion liefern. Üblicherweise wird dabei bereits zur Entwicklungszeit eine entsprechende Software in die zu überwachende Applikation integriert, häufig in Form eines Agenten. Diese benötigen natürlich auch Ressourcen, weshalb sie mit bis zu 2 % Performance zu kalkulieren sind.</p>



<p class="wp-block-paragraph">Am Markt haben sich mehrere Hersteller und Lösungen etabliert. AppDynamics ist dabei in&nbsp;<strong><a href="https://asset.appdynamics.com/c/gartner-magic-quadrant" target="_blank" rel="noreferrer noopener">Gartners Magic Quadrant für Application Performance Monitoring</a></strong>&nbsp;im Leaders-Quadranten eingestuft. Darüber hinaus war der Vortrag weitestgehend eine&nbsp;<strong><a href="https://asset.appdynamics.com/c/guided-tour-appdynam?x=SMIgt4&amp;mkt_tok=eyJpIjoiT1dZM1ltWmxZekV6WlRFMiIsInQiOiJFQmJnbUpNeVwvK3ZNckNrbW1ZXC9EMSs5WDFtaXhpQ0czS3FRTlVNVHZPb2hOVXpYM0pxM0JERmpsY1RUV0dJbHl6U3JiTDhmMFwvQXkxdDloR2FFYWtUXC9PeFJpbmk0dzJsSUViYXBISFRiT1VQa1hXbXBkNTZremNtUnZ5aGJ5V0QifQ%3D%3D&amp;utm_budget=lookbook&amp;utm_campaign=core+apm+nurture+an+introduction+to+apm" target="_blank" rel="noreferrer noopener">Produktvorführung</a></strong>.</p>



<h3 class="wp-block-heading"><br><strong>From Software Development to Machine Learning</strong></h3>



<p class="wp-block-paragraph">Bei diesem&nbsp;<strong><a href="https://qconnewyork.com/ny2018/ny2018/presentation/software-development-machine-learning-teams-transformatio.html" target="_blank" rel="noreferrer noopener">Vortrag</a></strong>&nbsp;handelte es sich um den Erfahrungsbericht der Transformation eines klassischen PHP-Software-Engineering-Teams hin zu Machine Learning aus Sicht der verantwortlichen Managerin. Der vorliegende Fall war sicherlich ein Extrembeispiel, da das Unternehmen sein Produktportfolio komplett umstellen wollte und die Entwicklung dementsprechend ebenso radikal umgestellt werden musste. Die Referentin hat das Unterfangen nicht ohne Grund mit einer Organtransplantation verglichen.</p>



<p class="wp-block-paragraph">Die Transformation geschah dabei auf verschiedenen Ebenen:</p>



<ul class="wp-block-list">
<li>Individuum</li>



<li>Team</li>



<li>Unternehmen</li>
</ul>



<p class="wp-block-paragraph">Auf der Ebene des Individuums musste beispielsweise mit Python eine neue Technologie gelernt werden. Das mag sich zunächst nur nach einer weiteren Programmiersprache anhören, hat aber auch »soziale« Aspekte, da der Senioritätsgrad der Mitarbeiter damit quasi über Nacht abgestuft wurde, weil beispielsweise der vorherige PHP Senior Web Developer nun auf einmal Python Junior Engineer war.</p>



<p class="wp-block-paragraph">Auf Team-Ebene muss man sich mit geänderten und ganz neuen Rollen auseinandersetzen. Aus einem Web Developer muss ein Machine Learning Engineer werden und aus einem Softwarearchitekt ein Data-Architekt. Ganz neu ins Spiel kommt der Data Scientist, nach Aussage der Referentin eine derzeit viel zu strapazierte Rolle, für die es bislang auch noch keine universelle Definition gibt. Außerdem können ihrer Meinung nach die wenigsten davon auf dem Level eines Software-Engineers entwickeln, da sie sich meist aus dem mathematisch-akademischen Bereich rekrutieren und damit zwar vielleicht gut in Algorithmen sind, aber nicht zwangsläufig wissen, wie man große, langlebige Systeme für den Produktiveinsatz entwickelt.</p>



<p class="wp-block-paragraph">Aus eigener Projekterfahrung wissen wir, dass die Umstellung eines Teams auf eine neue Technologie zwar machbar ist, eine Organisation aber durchaus einige Jahre beschäftigen kann.</p>



<p class="wp-block-paragraph">Wer sich selbst tiefer in das Thema Machine Learning einarbeiten möchte, findet&nbsp;<strong><a href="https://www.courseduck.com/programming/machine-learning/" target="_blank" rel="noreferrer noopener">hier</a>&nbsp;</strong>eine gute Übersicht an Kursen.</p>



<h3 class="wp-block-heading"><br><strong>Skype’s Journey From P2P</strong></h3>



<p class="wp-block-paragraph">Dieser&nbsp;<strong><a href="https://qconnewyork.com/ny2018/ny2018/presentation/skype%E2%80%99s-re-architecture-super-nodes-scalable-server-based.html" target="_blank" rel="noreferrer noopener">Vortrag</a></strong>&nbsp;zeigte Skypes Wandel von einer (»der«) P2P-Architektur hin zu einem Server- und Service-basierten Ansatz.</p>



<p class="wp-block-paragraph">Mit dem ersten Release hat Skype 2003 eine der größten P2P-Architekturen ausgerollt. Jeder Client wurde dabei zu einem Knoten des P2P-Netzes, welcher weitestgehend losgelöst vom Backend operieren konnte. Das Backend bestand primär aus PostgreSQL-basierten Datenbank-Services, die Logik wurde überwiegend im Client implementiert.</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b865b493&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b865b493" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="576" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_SkypesP2PArchitecture-1024x576.png" alt="" class="wp-image-6387" title="QCon-NewYork-2018_SkypesP2PArchitecture" srcset="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_SkypesP2PArchitecture-1024x576.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_SkypesP2PArchitecture-768x432.png 768w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_SkypesP2PArchitecture-780x440.png 780w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© Bruce Lowekamp | https://www.infoq.com/presentations/skype-p2p</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Bezogen auf das<strong>&nbsp;<a href="https://de.wikipedia.org/wiki/CAP-Theorem" target="_blank" rel="noreferrer noopener">CAP-Theorem</a></strong>, wonach in einem verteilten System von den drei Anforderungen Konsistenz (Consistency), Verfügbarkeit (Availability) und Partitionstoleranz nur zwei umfassend erfüllt werden können, konnte so maximale Verfügbarkeit und Partitionstoleranz (»AP«) sichergestellt werden.</p>



<p class="wp-block-paragraph">Nach der Übernahme 2011 durch Microsoft wurde auch die Architektur hinterfragt. Dabei stellte sich heraus, dass die Welt beziehungsweise die Anforderungen sich geändert hatten. Desktop-Applikationen waren nicht mehr dominant, sondern mobile Anwendungen. Serverkosten hatten sich drastisch reduziert, dafür sollte Messaging beispielsweise auch offline möglich sein. Außerdem wurden Funktionen wie server-weites Suchen oder Vorschläge benötigt. Außerdem erschien es nicht mehr sinnvoll, die Logik im Client vorzuhalten. Die Funktionen des Skype-Clients wurden deshalb in mehreren Teilschritten auf eine verteilte Service-Architektur migriert, welche sich zum Teil natürlich auch bei bekannten Services von Microsoft bedient, beispielsweise MSA für Login:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b865c235&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b865c235" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="577" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_SkypesMigration-1024x577.png" alt="" class="wp-image-6386" title="QCon-NewYork-2018_SkypesMigration" srcset="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_SkypesMigration-1024x577.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_SkypesMigration-768x433.png 768w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_SkypesMigration-780x440.png 780w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© Bruce Lowekamp | https://www.infoq.com/presentations/skype-p2p</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Die Migration wurde dabei durch A/B Tests unterstützt, für welche eigens ein sogenannter Experimentation and Configuration Service (ECS) aufgebaut wurde, der mittlerweile bei ganz Microsoft im Einsatz ist.</p>



<p class="wp-block-paragraph">Skypes ehemalige P2P-Architektur soll ab Herbst 2018 Geschichte sein. Interessant, dass auch ein IT-Gigant wie Microsoft für so ein Migrationsvorhaben immerhin 7 Jahre gebraucht hat.</p>



<h3 class="wp-block-heading"><br><strong>Explaining Artificial Intelligence to Schoolchildren</strong></h3>



<p class="wp-block-paragraph">Der Referent&nbsp;<strong><a href="https://qconnewyork.com/ny2018/ny2018/presentation/explaining-artificial-intelligence-schoolchildren.html" target="_blank" rel="noreferrer noopener">dieses Vortrags</a>&nbsp;</strong>ist als Entwickler bei IBM für deren Programm&nbsp;<a href="https://www.ibm.com/watson/" target="_blank" rel="noreferrer noopener">Watson</a>&nbsp;tätig und hat unter anderem eine&nbsp;<strong><a href="https://machinelearningforkids.co.uk/" target="_blank" rel="noreferrer noopener">web-basierte Lernumgebung rund um Machine Learning für Kinder</a></strong>&nbsp;erstellt. Da Machine Learning in immer mehr Bereiche vordringt, gab es für die anwesenden Entwickler auch gleich ein paar beruhigende Worte von einem, der seit Jahren in dem Umfeld professionell tätig ist:</p>



<p class="wp-block-paragraph">»<em>Artifical Intelligence adds to a developer’s toolbox, it doesn’t replace him.</em>« –Dale Lane</p>



<p class="wp-block-paragraph">Ihm ist es wichtig, aufzuzeigen, was Machine Learning als Teilbereich der Künstlichen Intelligenz (Artifical Intelligence) ist, was damit machbar ist und wo die Grenzen sind; und das möglichst auch schon Kindern, da diese zukünftig immer mehr mit entsprechenden autonomen Systemen konfrontiert sein werden.</p>



<p class="wp-block-paragraph">»<em>Machine Learning is…Learning how to perform a task from a collection of examples.</em>« –Dale Lane</p>



<p class="wp-block-paragraph">In der Lernumgebung werden Kinder auf spielerische Art und Weise durch die notwendigen Schritte für Machine Learning geführt:</p>



<ul class="wp-block-list">
<li><strong>Sammeln</strong> von beispielhaften Daten (Bilder, Zahlen, Texte) für die Aufgabe</li>



<li><strong>Trainieren</strong> des Computers anhand der Beispieldaten (hier erfolgt das Lernen)</li>



<li><strong>Programmieren</strong> einer Anwendung, welche anhand des Gelernten entsprechende Aufgaben ausführt</li>
</ul>



<p class="wp-block-paragraph">Im ersten Schritt dreht es sich darum, entsprechende Daten für das jeweilige Vorhaben in ausreichender Menge zu sammeln – zum Beispiel Bilder von Gesichtern. Im zweiten Schritt wird das System dann trainiert. Beispielsweise werden die Bilder in zwei Gruppen von Menschen mit glücklichem und unglücklichem Gesichtsausdruck aufgeteilt. Im dritten Schritt wird über Scratch, die visuelle Programmiersprache für Kinder, welche in der Lernumgebung mit der API von Watson integriert ist, ein einfaches Programm geschrieben. Im genannten Beispiel würden neue Fotos anhand des Gesichtsausdrucks in glücklich oder unglücklich eingeordnet werden.</p>



<p class="wp-block-paragraph">Wichtig ist dem Referenten dabei insbesondere auch immer wieder die Grenzen von Machine Learning aufzuzeigen. Konkret zum Beispiel die vielen Möglichkeiten, entsprechende Systeme bewusst oder unbewusst mit Vorurteilen anzulernen.&nbsp;<strong><a href="https://www.businessinsider.com/google-tags-black-people-as-gorillas-2015-7" target="_blank" rel="noreferrer noopener">Googles Bildersuche, die vor einiger Zeit die Bilder von zwei Afroamerikanern mit der Kategorie Gorilla versah</a></strong>, ist da nur ein&nbsp;<strong><a href="https://qz.com/1064035/google-goog-explains-how-artificial-intelligence-becomes-biased-against-women-and-minorities/" target="_blank" rel="noreferrer noopener">Beispiel von vielen</a></strong>.</p>



<h3 class="wp-block-heading"><br><strong>The Story of Teams, Autonomy, and Servant Leadership</strong></h3>



<p class="wp-block-paragraph">Dieser&nbsp;<strong><a href="https://qconnewyork.com/ny2018/ny2018/presentation/teams-management-journey-through-autonomy-servant-leadership.html" target="_blank" rel="noreferrer noopener">Vortrag</a></strong>&nbsp;zeigte, wie<strong>&nbsp;<a href="https://www.booking.com/" target="_blank" rel="noreferrer noopener">Booking.com</a></strong>&nbsp;seine Entwicklungsteams im agilen Kontext aufgestellt hat und insbesondere wie die Entwicklung zum aktuellen Status Quo anhand von gesteuerten Experimenten faktenbasiert erfolgte. Dabei war der Fokus insbesondere auf der Rolle Teamleiter – nicht verwunderlich, da diese Rolle in den agilen Entwicklungsansätzen wie beispielsweise&nbsp;<strong><a href="https://www.agil-gefuehrt.de/die-maer-von-der-selbstorganisation/" target="_blank" rel="noreferrer noopener">Scrum nicht weiter definiert ist</a></strong>, was von vielen so interpretiert wird, als bräuchte es gar keiner Führung im agilen Kontext. Das dem nicht so ist, zeigte der Referent, selbst Führungskraft bei Booking.com, entsprechend auf.</p>



<p class="wp-block-paragraph">Booking.com ist von acht Mitarbeitern im Jahr 2000 auf aktuell über 15.000 angewachsen, wovon derzeit über 1.500 Mitarbeiter in der IT tätig sind. Um 2014 waren rund 500 Mitarbeiter in der IT. Jedes Team hatte dabei einen Teamleiter und einen Product Owner, die wiederum an einen Senior Teamlead (Abteilungsleiter) und einen Senior Product Owner berichtet haben, welche dann direkt entsprechend an den CTO und CPO berichtet haben:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b865d43e&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b865d43e" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="720" height="405" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_Booking.com_Teamstructure.png" alt="" class="wp-image-6377" title="QCon-NewYork-2018_Booking.com_Teamstructure"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© Georgiy Mogelashvili https://www.infoq.com/presentations/team-autonomy-servant-leadership</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Aufgabe des Teamleiters war zu rund&nbsp;⅔&nbsp;fachliche Mitarbeit im Team und zu rund&nbsp;⅓&nbsp;klassische Teamleitungsaufgaben wie zum Beispiel Prozesse, teamübergreifende Kommunikation, Mitarbeiterentwicklung und -leistung. Der Product Owner war für Aufgabenpriorisierung, Backlog-Verwaltung, Metriken und die Kommunikation mit dem Business beziehnungsweise Fachbereich verantwortlich.</p>



<p class="wp-block-paragraph">Zwischen 2015 und 2016 setzte dann ein extremes Wachstum des Unternehmens ein, was zu einer Verdoppelung der Anzahl der Mitarbeiter in der IT auf rund 1.000 führte. Dies machte auch andere Führungsansätze notwendig, weshalb autonome Teams als Lösungsansatz untersucht wurden. Damit gemeint war, dass Teams ohne Teamleiter arbeiten und alle Teammitglieder gleichermaßen für entsprechende Aufgaben verantwortlich sind. Die bisher vom Teamleiter quartalsweise und 1:1 erfolgten Performance Reviews erfolgten jetzt beispielsweise in einer gemeinsamen Teamsitzung. Spannend, inwiefern das arbeitsrechtlich in Deutschland abbildbar wäre. Der Product Owner als Verantwortlicher für die geschäftlichen Aspekte blieb erhalten, die Teams berichteten innerhalb der IT jetzt direkt an den Senior Teamlead:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b865e36b&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b865e36b" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="720" height="405" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_Booking.com_Teamstructure_study.png" alt="" class="wp-image-6376" title="QCon-NewYork-2018_Booking.com_Teamstructure_study"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© Georgiy Mogelashvili https://www.infoq.com/presentations/team-autonomy-servant-leadership</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Das Ganze wurde als Experiment mit 26 von 84 Teams in der IT erprobt. Fokus war dabei auf der Effektivität der Teams analog zu Googles »<strong><a href="https://rework.withgoogle.com/print/guides/5721312655835136/" target="_blank" rel="noreferrer noopener">Perfect Team</a></strong>« und den entsprechenden Metriken.</p>



<p class="wp-block-paragraph">Booking.com stellte im Laufe des Experiments drei Hauptprobleme fest. Erstens konnte das angestrebte Wachstum in den autonomen Teams ohne entsprechende Unterstützung (durch die Teamleitung) nicht wie gewünscht sichergestellt werden. Zweitens verändern sich Teams (siehe hierzu auch weiter oben zum Workshop vom Dienstag<strong>&nbsp;<a href="https://atra.consulting/2018/07/30/QCon-NewYork-2018.html#coaching-the-team-system">»Coaching the Team System«</a></strong>) und brauchen auch dabei Unterstützung. Drittens waren die Senior Teamleads mit der Vielzahl an Teams, die direkt an sie berichteten, trotz der vermeintlichen Autonomie überfordert.</p>



<p class="wp-block-paragraph">Den Problemen wäre vermutlich noch zu begegnen gewesen, die wesentliche Kennzahl für Booking.com,&nbsp;<strong>das Engagement der Mitarbeiter</strong>, ging in diesem Experiment autonomer Teams ohne Teamleitung allerdings erheblich zurück. Es musste also etwas verändert werden. Booking.com versuchte dabei, das Beste aus beiden Ansätzen zu nehmen und kam zu folgender Erkenntnis:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b865f050&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b865f050" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="720" height="405" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_Booking.com_ServantLeadership.png" alt="" class="wp-image-6374" title="QCon-NewYork-2018_Booking.com_ServantLeadership"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© Georgiy Mogelashvili https://www.infoq.com/presentations/team-autonomy-servant-leadership</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Es sollte also autonome Teams, aber mit Teamleiter geben. Hierfür wurde die Aufgabenbeschreibung und insbesondere das Skillprofil der Teamleitung in Richtung<strong>&nbsp;<a href="https://de.wikipedia.org/wiki/Servant_Leadership" target="_blank" rel="noreferrer noopener">Servant Leadership</a></strong>&nbsp;geschärft. Die »neue« Teamleitung hat also keine beherrschende Macht mehr über das Team, sondern ist Teil desselben. Die Performance Reviews werden beispielsweise weiterhin analog zum autonomen Team in einer gemeinsamen Sitzung abgehalten, in der jetzt auch der Teamleiter mit bewertet wird und selbiger auch nur eine Stimme, wie jedes Teammitglied hat.</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b865fc18&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b865fc18" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="720" height="405" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_Booking.com_Teamstructure_now.png" alt="" class="wp-image-6375" title="QCon-NewYork-2018_Booking.com_Teamstructure_now"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© Georgiy Mogelashvili https://www.infoq.com/presentations/team-autonomy-servant-leadership</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Die Teamleitung arbeitet nach wie vor fachlich mit, aber nur noch unter 50 % und verwendet zukünftig mehr als die Hälfte seiner Zeit auf Personalentwicklung:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b86607fb&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b86607fb" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="720" height="405" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_Booking.com_ServantLeaderRole.png" alt="" class="wp-image-6373" title="QCon-NewYork-2018_Booking.com_ServantLeaderRole"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© Georgiy Mogelashvili https://www.infoq.com/presentations/team-autonomy-servant-leadership</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Da es nicht leicht ist, solche Teamleiter zu rekrutieren, setzt Booking.com agile Coaches ein, um die Teamleiter hier entsprechend zu unterstützen und zu entwicken.</p>



<p class="wp-block-paragraph">Wichtig auch die Erkenntnis, was Autonomie für Booking.com&nbsp;<strong>nicht</strong>&nbsp;ist:</p>



<ul class="wp-block-list">
<li>Alleine arbeiten,</li>



<li>Anarchie oder</li>



<li>Vernachlässigung.</li>
</ul>



<p class="wp-block-paragraph">Die Erkenntnis aus dem gesteuerten Experiment von Booking.com ist, dass Teams auch eine Teamleitung brauchen, andernfalls sinkt die Effektivität. Teamleitung ist hier aber keine beherrschende, sondern eine dienende Rolle mit entsprechenden Aufgaben.</p>



<h3 class="wp-block-heading"><br><strong>AutoCAD &amp; WebAssembly: Moving a 30 Year Code Base to the Web</strong></h3>



<p class="wp-block-paragraph">Nach der interessanten<strong>&nbsp;<a href="https://atra.consulting/2018/07/30/QCon-NewYork-2018.html#webassembly-101">Einführung in WebAssembly</a>&nbsp;</strong>am Dienstag zeigte der Referent dieses&nbsp;<strong><a href="https://qconnewyork.com/ny2018/ny2018/presentation/web-assembly-autodesk.html" target="_blank" rel="noreferrer noopener">Vortrags</a></strong>, wie AutoCAD mittels WebAssembly erfolgreich für das Web portiert wurde. Es handelt sich dabei um eine C/C++-Desktop-Applikation, deren Codebasis rund 15 Millionen Codezeilen umfasst und die bis ins Jahr 1982 zurückreicht.</p>



<p class="wp-block-paragraph">Als die Entwicklungsmannschaft vor der Aufgabe stand, diese Applikation fit für das Web zu machen, wurde relativ schnell klar, dass ein Neuschreiben aufgrund des Umfangs keine Option war, da es weder nachhaltig ist, zwei Entwicklungslinien für so ein Produkt aufrechtzuerhalten, noch so ein Unterfangen auch nur ansatzweise schnell genug wäre. Ganz zu schweigen vom&nbsp;<a href="https://en.wikipedia.org/wiki/Second-system_effect" target="_blank" rel="noreferrer noopener"><strong>2nd-System Effect</strong></a>. Deshalb wurde sich auf die Option der Cross-Kompilierung der Codebasis fokussiert. Es wurden verschiedene Ansätze (Flash, JavaScript, asm.js) probiert, bevor der Durchbruch mit WebAssembly gelang. Als Toolchain kommen dabei Emscripten und WebAssembly Binaryen zum Einsatz.</p>



<p class="wp-block-paragraph">Mit einem einfachen Kompilieren einer so großen Codebasis war es natürlich nicht getan. Es mussten sowohl an der Codebasis als auch an der Toolchain Anpassungen vorgenommen werden, um folgenden Herausforderungen zu begegnen:</p>



<ul class="wp-block-list">
<li>Kompilier- und Build-Zeit der Codebasis</li>



<li>Startzeit der Applikation</li>



<li>Desktop- gegenüber Web-Paradigma.</li>
</ul>



<p class="wp-block-paragraph">Die beiden ersten der eben genannten Punkte hängen natürlich direkt mit der umfangreichen Codebasis zusammen. Aber gerade der letzte Punkt, die gegenläufigen Entwicklungsparadigmen zwischen Desktop- und Web-Applikationen, betreffen jeden, der eine entsprechende Software portieren möchte. Als Beispiel wurden synchrone und asynchrone Programmierprobleme im Web genannt. Die Behandlung von blockierenden Aufrufen ist in Desktop-Programmen anders als im Web. Und dann wurde noch Shared Memory angeführt. Desktop-Applikationen erlauben synchrone Schreibzugriffe, da es dort Shared Memory gibt, um Daten zu teilen – im Web gibt es das so nicht.</p>



<p class="wp-block-paragraph">Für die genannten Probleme fanden die Entwickler bei AutoCAD aber Lösungen, vielleicht nicht in Tagen, so aber in der Regel doch in Wochen oder zumindest Monaten, was in keinem Vergleich zu dem mehrjährigen Neuschreiben der Software steht. Die Applikation steht durch Cross-Kompilierung mittels WebAssembly heute auch als Web-Applikation zur Verfügung.</p>



<h3 class="wp-block-heading"><br><strong>Breaking Codes, Designing Jets and Building Teams</strong></h3>



<p class="wp-block-paragraph"><strong><a href="https://qconnewyork.com/ny2018/ny2018/presentation/empowered-team-presentation.html" target="_blank" rel="noreferrer noopener">Dieser Vortrag</a></strong><strong>&nbsp;</strong>hätte auch durchaus als<strong>&nbsp;<a href="https://atra.consulting/2018/07/30/QCon-NewYork-2018.html#keynotes">Keynote</a>&nbsp;</strong>laufen können. Der Referent, Randy Shoup, hat 25 Jahre Erfahrung im Engineering bei den Größen des Silicon Valleys, beispielsweise Director of Engineering bei Google, Chief Engineer bei eBay, Tech Lead bei Oracle und aktuell VP Engineering bei WeWork. Er ist aber auch der Sohn von&nbsp;<strong><a href="https://en.wikipedia.org/wiki/Richard_Shoup_(programmer)" target="_blank" rel="noreferrer noopener">Richard Shoup</a></strong>, Gründungsmitglied des berühmten Xerox Palo Alto Research Center. Damit hat der Referent natürlich Einblick in die Geschichte des (IT) Engineering wie wenig andere. Und dessen bediente er sich, um anhand von drei Beispielen für sehr<strong>&nbsp;<a href="https://atra.consulting/2009/12/22/Leistung.html#effectiveness--zielerreichung">effektive</a></strong>&nbsp;Engineering-Teams deren Gemeinsamkeiten herauszuarbeiten.</p>



<p class="wp-block-paragraph">Sein erstes Beispiel für ein effektives Team betraf die Code-Brecher der britischen Militäreinrichtung Bletchley Park, welche den ersten programmierbaren digitalen Computer bereits 1943 vollständig im Geheimen bauten. Es wird geschätzt, dass dank Bletchly Park der zweite Weltkrieg um zwei Jahre verkürzt und somit 14 Millionen Leben gerettet werden konnten (<em>=&gt; Zweck</em>). Trotzdem es sich um eine Militäreinrichtung handelte, gab es wenig Hierarchie und eine offene&nbsp;<em>=&gt; Organisationskultur</em>. Jedes Team war cross-funktional aufgestellt, zwischen den Teams herrschte allerdings absolute Geheimhaltung (also Unabhängigkeit). Aufgrund der sich ständig ändernden Codes mussten auch die Teams permanent lernen und iterieren (<em>=&gt; technische Exzellenz</em>). Dabei waren die Teams extrem divers mit einer Frauenquote von bis zu 75 % (<em>=&gt; Menschen</em>). Bekanntheit hat hierbei natürlich insbesondere&nbsp;<strong><a href="https://en.wikipedia.org/wiki/Alan_Turing" target="_blank" rel="noreferrer noopener">Alan Turing</a></strong>&nbsp;erlangt, aber auch Ian Fleming, der Erfinder von James Bond, hat hier gearbeitet.</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b86618b2&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b86618b2" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="723" height="1024" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_CodeBreaker-BP-723x1024.png" alt="" class="wp-image-6379" title="QCon-NewYork-2018_CodeBreaker-BP"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© Randy Shoup | https://www.infoq.com/presentations/history-engineering-teams</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Als zweites Beispiel für außergewöhnliche Engineering-Leistungen wurde Lockheeds sogenannte “Skunk Works” Advanced Developments Gruppe aufgeführt. Seit Gründung 1943 wurden hier Generation um Generation der weltweit am schnellsten und höchsten fliegenden sowie geheimsten Flugzeuge entwickelt, wie zum Beispiel die F-117A Nighthawk. Entgegen dem im modernen Flugzeugbau wohl üblichen Vorgehen, erfolgten Design, Entwicklung und Bau hier innerhalb einer cross-funktionalen Einheit, wo alle beteiligten Rollen eng zusammen saßen (“Co-Location”) und beispielsweise auch der Testpilot eng in den Entwicklungsprozess involviert war (<em>=&gt; Organisationskultur</em>). Dabei war jeder für Qualität verantwortlich:</p>



<p class="wp-block-paragraph"><em>We made every shop worker who designed or handled a part responsible for quality control. Any worker – not just a supervisor or a manager – could send back a part that didn’t meet his or her standards.</em></p>



<p class="wp-block-paragraph">Es wurde schon sehr früh umfassend Gebrauch von Modellen, Simulationen sowie Mockups und Prototypen zum Verifizieren von Hypothesen gemacht (<em>=&gt; Technische Exzellenz</em>). Und auch dieses Team war von Anfang an durch Diversivität geprägt. So war beispielsweise&nbsp;<strong><a href="https://en.wikipedia.org/wiki/Mary_G._Ross" target="_blank" rel="noreferrer noopener">Mary G. Ross</a>&nbsp;</strong>als erste amerikanische Ureinwohnerin Gründungsmitglied und Engineer der Skunk Works Group (<em>=&gt; Menschen</em>).</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b8662524&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b8662524" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="1024" height="721" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_CodeBreaker-SW.png" alt="" class="wp-image-6380" title="QCon-NewYork-2018_CodeBreaker-SW" srcset="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_CodeBreaker-SW.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_CodeBreaker-SW-768x541.png 768w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_CodeBreaker-SW-570x400.png 570w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© Randy Shoup | https://www.infoq.com/presentations/history-engineering-teams</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Als drittes Beispiel führt Shoup das&nbsp;<strong><a href="https://www.techspot.com/guides/477-xerox-parc-tech-contributions/" target="_blank" rel="noreferrer noopener">Xerox PARC</a>&nbsp;</strong>an, welches 1970 gegründet wurde und dessen Erfindungen die Grundlage unserer heutigen digitalen Welt sind. Beispielsweise wurden hier&nbsp;<strong><a href="https://en.wikipedia.org/wiki/Smalltalk" target="_blank" rel="noreferrer noopener">Smalltalk</a></strong>&nbsp;als »Mutter der Objektorientierung«, das erste graphische Benutzerinterface mit überlappenden Fenstern als Basis für Apple und Microsoft Windows, die&nbsp;<strong><a href="https://en.wikipedia.org/wiki/WYSIWYG" target="_blank" rel="noreferrer noopener">WYSIWYG</a>&nbsp;</strong>Textbearbeitung, Ethernet oder auch der Laserdrucker genannt.</p>



<p class="wp-block-paragraph">Kurzer Einschub an dieser Stelle: Die Erfindung der Computermaus wird auch gerne wahlweise dem Xerox Parc oder&nbsp;<strong><a href="https://en.wikipedia.org/wiki/The_Mother_of_All_Demos" target="_blank" rel="noreferrer noopener">Doug Engelbart</a>&nbsp;</strong>zugeschrieben, es scheint aber so, dass hier tatsächlich&nbsp;<strong><a href="https://www.oldmouse.com/mouse/misc/telefunken.shtml" target="_blank" rel="noreferrer noopener">Telefunken</a>&nbsp;</strong>aus Deutschland die Nase vorn hatte.</p>



<p class="wp-block-paragraph">Die&nbsp;<em>=&gt; Organisationskultur</em>&nbsp;des Xerox PARC war flach, ohne Hierarchie und versammelte Talente wie&nbsp;<strong><a href="https://en.wikipedia.org/wiki/Alan_Kay" target="_blank" rel="noreferrer noopener">Alan Kay</a>,&nbsp;<a href="https://en.wikipedia.org/wiki/Adele_Goldberg_(computer_scientist)" target="_blank" rel="noreferrer noopener">Adele Goldberg</a></strong>&nbsp;und&nbsp;<strong><a href="https://en.wikipedia.org/wiki/Richard_Shoup_(programmer)" target="_blank" rel="noreferrer noopener">Richard Shoup</a></strong>&nbsp;(<em>=&gt; Menschen</em>) aus der Industrie und dem universitären Bereich.</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b86631c7&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b86631c7" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="791" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_CodeBreaker-Alto-1024x791.png" alt="" class="wp-image-6378" title="QCon-NewYork-2018_CodeBreaker-Alto" srcset="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_CodeBreaker-Alto-1024x791.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_CodeBreaker-Alto-768x593.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© Randy Shoup | https://www.infoq.com/presentations/history-engineering-teams</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Aus diesen drei Beispielen für extrem effektive Engineering-Einheiten konnte der Vortragende die folgenden gemeinsamen Eigenschaften als Prinzipien effektiven Engineerings ableiten:</p>



<ul class="wp-block-list">
<li><strong>Zweck</strong>: Die Teams müssen »groß« denken dürfen, dabei aber fokussiert auf ein wichtiges und motivierendes Ziel für die Organisation sein.</li>



<li><strong>Organisationskultur</strong>: Cross-funktionale »Full Stack« Teams sind für diese Art von Arbeit am effektivsten, das Team muss maximale Autonomie bei minimaler Bürokratie und minimaler zentrale Kontrolle haben; Zusammenarbeit und eine Kultur des Lernens sind weitere Schlüssel zum Erfolg.</li>



<li><strong>Menschen</strong>: Unabhängig von ihrem Hintergrund sind die besten Leute für den jeweiligen Job zu engagieren, dabei ist Diversität wichtig; die Menschen sind gut zu behandeln – schlimm, dass das immer noch erwähnenswert ist, siehe hierzu auch unsere <strong><a href="https://atra.consulting/2009/12/22/Leistung.html">Definition von Leistung</a></strong>, die immer schon die <strong><a href="https://atra.consulting/2009/12/22/Leistung.html#ethics--ethik">ethische Komponente</a> </strong>umfasste.</li>



<li><strong>Technische Exzellenz</strong>: Systemisches Denken und die Suche nach ganzheitlichen Lösungen sind der Schlüssel zu technischer Exzellenz. Dabei muss pragmatisch geliefert werden und konstantes Feedback in alle Prozesse integriert werden.</li>
</ul>



<p class="wp-block-paragraph">Vieles davon findet sich heute in den Prinzipien von Agile, Lean oder auch DevOps wieder, wurde dort aber nicht »erfunden«, sondern geht auf Beispiele wie die hier genannten zurück.</p>



<h3 class="wp-block-heading"><br><strong>Empowering Agile Self-Organized Teams With Design Thinking</strong></h3>



<p class="wp-block-paragraph">Dieser&nbsp;<a href="https://qconnewyork.com/ny2018/ny2018/presentation/empowered-team-presentation-0.html" target="_blank" rel="noreferrer noopener"><strong>Vortrag</strong></a>&nbsp;gliederte sich in drei Teile. Zunächst stellte der Referent ausführlich seinen grundsätzlichen methodischen Rahmen vor. Anschließend ging er über eine Fallstudie der agilen Transformation einer konkreten Infrastruktureinheit auf Design Thinking für die Gestaltung von Organisationen ein. Abschließend stellte er das theoretische Gerüst von Design Thinking vor.</p>



<p class="wp-block-paragraph">Der grundsätzliche methodische Rahmen des Referenten war geprägt von »Klassikern« agiler Management-Ansätze.</p>



<p class="wp-block-paragraph"><em>»People are already doing their best; the problems are with the system. Only management can change the system.«</em>&nbsp;—W. Edwards Deming</p>



<p class="wp-block-paragraph"><em>»Every system is perfectly designed to get the result that it does.”</em>&nbsp;― W. Edwards Deming</p>



<p class="wp-block-paragraph">Aus Sicht des Referenten gibt es nicht den einen und besten Weg, etwas zu organisieren und somit auch nicht »das eine« Organisationsdesign. Er spricht sich auch klar und deutlich gegen klassische autoritäre Managementansätze aus:</p>



<p class="wp-block-paragraph"><em>»Organizations that operate from the authoritarian, hierarchical, command and control model, where the top leaders control the work, information, decisions, and allocation of resources, produce employees that are less empowered, less creative, and less reductive.«</em>&nbsp;–Creativity and Innovation: The Leadership Dynamics. Journal of Strategic Studies</p>



<p class="wp-block-paragraph">Dabei hob er auch noch einmal die&nbsp;<strong><a href="https://en.wikipedia.org/wiki/French_and_Raven%27s_bases_of_power" target="_blank" rel="noreferrer noopener">Quellen von Macht in Organisationen auf Basis von French und Ravens grundlegeneder Arbeit hierzu aus dem Jahre 1959</a>&nbsp;</strong>hervor:</p>



<ul class="wp-block-list">
<li><strong>Legitime Macht</strong> durch formale Autorität in einer Hierarchie.</li>



<li><strong>Wissensmacht</strong> durch Expertenwissen auf einem Gebiet.</li>



<li><strong>Macht durch Vergabe von Belohnung</strong> wie beispielsweise finanzielle aber auch immaterielle Anreize (Lob, Erweiterung des Verantwortungsbereiches).</li>



<li><strong>Macht durch Zwang</strong> wie beispielsweise die Möglichkeit, Degradierungen oder Entlassungen vorzunehmen.</li>



<li><strong>Macht durch Identifikation</strong> setzt charismatische Persönlichkeiten voraus, mit denen man sich identifizieren möchte.</li>



<li><strong>Informationsmacht</strong> entsteht durch die Fähigkeit, den Fluss von Informationen und auch Desinformationen in Organisationen steuern zu können.</li>
</ul>



<p class="wp-block-paragraph">Womit er zum »<em>Empowerment</em>«, also der Ermächtigung von Mitarbeitern überging. Dies bedeutet für den Referenten, dass eine Gruppe von Mitarbeitern Entscheidungen in einem gewissen Rahmen eigenständig und ohne weitere Rückversicherung beim Management treffen kann. Dem Management kommt hierbei eine besondere Bedeutung zu, weshalb der Referent anhand des sogenannten »<em>Leadership Continuums</em>« verschiedene Führungsansätze diskutierte:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b86647d6&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b86647d6" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="570" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_Empowering_Leadership-Styles-1024x570.png" alt="" class="wp-image-6384" title="QCon-NewYork-2018_Empowering_Leadership-Styles" srcset="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_Empowering_Leadership-Styles-1024x570.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_Empowering_Leadership-Styles-768x428.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© William Evans | https://www.infoq.com/presentations/agile-self-organizing-teams-design-thinking</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Beide Enden des dargestellten Kontinuums schnitten dabei nicht besonders gut ab. Diktatorische Führung führt dazu, dass Mitarbeiter sich nicht ermächtigt fühlen und ihnen die Möglichkeit genommen wird, selbst Lösungen zu suchen, welche in der Regel besser sind, da sie näher am Problem sind. Das andere Ende, also vollständige Ermächtigung der Mitarbeiter, ist dabei allerdings auch nicht der Königsweg. Der Referent spricht hierbei auch vom Hippie, der gerade noch Ziele vorgibt und dann verschwindet. Dabei ist für die Mitarbeiter dann häufig keine Strategie erkennbar und es wird wenn überhaupt noch lokal optimiert.</p>



<p class="wp-block-paragraph">Der Lean Leader hingegen:</p>



<ul class="wp-block-list">
<li>Klärt die <strong>Vision</strong> und Absicht, also das Warum und Was,</li>



<li>benennt dabei aber auch die <strong>Grenzen</strong> und</li>



<li><strong>vergibt Entscheidungsbefugnisse</strong>.</li>



<li>Er lebt entsprechendes <strong>Verhalten</strong> vor und</li>



<li>erzeugt <strong>Vertrauen</strong>.</li>



<li>Er bevorzugt <strong>Experimente</strong>, die auch scheitern können, statt Lösungen vorzugeben.</li>
</ul>



<p class="wp-block-paragraph">Der erste Teil des Vortrags schloß mit dem folgenden Zitat ab:</p>



<p class="wp-block-paragraph"><em>»Individuals and teams closest to the problem, armed with unprecedented levels of insights from across the network, offer the best ability to decide and act decisively.«</em>&nbsp;-General Stanley McChrystal</p>



<p class="wp-block-paragraph">Interessanterweise spiegelt dieses Idealbild die Situation in Teilen der US-Armee, einer bis dato doch sehr hierarchischen Organisation wider, die sich aber aufgrund geänderter Rahmenbedingungen auch entsprechend an ein neues Führungs- und Organisationsprinzip angepasst hat.</p>



<p class="wp-block-paragraph">Ausgangssituation der Fallstudie im zweiten Teil des Vortrags war folgendes, wohlbekanntes Spannungsfeld zwischen Fachbereich und IT-Infrastruktur-Entwicklungsteam eines großen Pharmaunternehmens, welches nach&nbsp;<a href="https://atra.consulting/2015/07/17/SW-Entwicklung-Vorgehensmodelle-Erfolgsraten.html">Wasserfall-Modell</a>&nbsp;arbeitete:</p>



<p class="wp-block-paragraph"><em>»You deliver last years tech, in twice the time, for three times the price, and a fraction of the value!«</em></p>



<p class="wp-block-paragraph">Nur sechs Wochen nach Umstellung auf eine agile Arbeitsweise konnten bereits folgende Erfolge vermeldet werden:</p>



<ul class="wp-block-list">
<li>Reduzierung der Lead Time für Services von 9 Monaten auf Tage, häufig Stunden.</li>



<li>Reduzierung ungeplanter Arbeit von 64 % auf 28 %.</li>



<li>Erhöhung der Zufriedenheit des Fachbereichs um 72 %.</li>
</ul>



<p class="wp-block-paragraph">Dies wurde folgendermaßen erreicht:</p>



<ol class="wp-block-list">
<li>Aufsetzen eines Kanban-Systems</li>



<li>Visualisierung <strong>aller</strong> Arbeit im Team</li>



<li>Messen des Wertstroms</li>



<li>Identifizierung aller Schritte, insbesondere Verschwendung (Frei-/Übergaben)</li>



<li>Einbeziehung der Anwender</li>



<li>Einbindung relevanter Stakeholder (Compliance, Security, Finance, …)</li>



<li>Durchführung einer Designstudie für den neuen Prozess</li>



<li>Prototypisierung, Testen, Messen und Lernen für diesen neuen Prozess</li>



<li>Minimum Viable Services entwicklen</li>



<li>Iterieren, Testen, Messen, Lernen, Iterieren, Wiederholen</li>
</ol>



<p class="wp-block-paragraph">Der Wertstrom-Messung kam dabei eine besondere Bedeutung zu, denn darüber lässt sich:</p>



<ul class="wp-block-list">
<li>Der Grund für Falschbedarf erkennen.</li>



<li>Verschwendung im System identifizieren, wie zum Beispiel<br>– Warteschlangen<br>– Unnötige Freigaben<br>– Rückgaben und Nacharbeiten.</li>
</ul>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b866609e&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b866609e" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="565" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_DesignThinking_Wertstrom-Messung-1024x565.png" alt="" class="wp-image-6383" title="QCon-NewYork-2018_DesignThinking_Wertstrom-Messung" srcset="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_DesignThinking_Wertstrom-Messung-1024x565.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_DesignThinking_Wertstrom-Messung-768x424.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© William Evans | https://www.infoq.com/presentations/agile-self-organizing-teams-design-thinking</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Den dritten Teil des Vortrags zum Hintergrund von Design Thinking leitete der Referent folgendermaßen ein:</p>



<p class="wp-block-paragraph"><em>»In practice it combines empathy to enable deep understanding and reframing of a problem in context, divergence to generate insights and solutions; visualization and prototyping to document, connect and test ideas, and rationality to analyze and assess the solutions outcome.«</em>&nbsp;– TIM BROWN, IDEO</p>



<p class="wp-block-paragraph">Hintergrund sind dabei die Grundlagen von Peter G. Rowe »<strong><a href="https://amzn.to/2CigbU3" target="_blank" rel="noreferrer noopener">Design Thinking</a></strong>« aus dem Jahr 1987 und Richard Buchanans »<a href="https://studiojunglecat.com/teaching/GRCD3010-f15/wp-content/uploads/2015/08/RichardBuchanan_WickedProblemsInDesignThinking.pdf" target="_blank" rel="noreferrer noopener"><strong>Wicked Problems in Design Thinking</strong></a>« von 1992. Wichtig ist dabei, analog zum<strong>&nbsp;<a href="https://de.wikipedia.org/wiki/Brainstorming" target="_blank" rel="noreferrer noopener">Brainstorming</a></strong>, zunächst in einem sogenannten Divergence-Schritt möglichst viele Optionen zu generieren, um im folgenden Convergence-Schritt durch Entscheidungen den Lösungsraum wieder einzugrenzen:</p>



<ul class="wp-block-list">
<li></li>
</ul>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b866712b&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b866712b" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="593" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_DesignThinking_DivCon-1024x593.png" alt="" class="wp-image-6381" title="QCon-NewYork-2018_DesignThinking_DivCon" srcset="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_DesignThinking_DivCon-1024x593.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_DesignThinking_DivCon-768x445.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© William Evans | https://www.infoq.com/presentations/agile-self-organizing-teams-design-thinking</em></figcaption></figure>
</div>


<p class="wp-block-paragraph">Ohne das Problem richtig verstanden zu haben, kann auch keine gute Lösung gefunden werden, denn</p>



<p class="wp-block-paragraph"><em>»A problem well stated is mostly solved.«</em>&nbsp;— CHARLES KETTERING</p>



<p class="wp-block-paragraph">Hierzu ist wiederum eine empathische Herangehensweise notwendig, denn in jedem Problem, welches zu uns gebracht wird, steckt die Chance, im Rahmen von Design Thinking etwas zu verbessern.</p>



<p class="wp-block-paragraph"><em>»The day soldiers stop bringing you their problems is the day you have stopped leading them. They have either lost confidence that you can help or concluded you do not care. Either case is a failure of leadership.«</em>&nbsp;– COLIN POWELL</p>



<p class="wp-block-paragraph">Was dann alles zusammengefasst zum sogenannten Double Diamond Modell des Design Thinking führt:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b86681ab&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b86681ab" class="aligncenter size-large wp-lightbox-container"><img decoding="async" width="1024" height="487" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_DesignThinking_DoubleDiamond-1024x487.png" alt="" class="wp-image-6382" title="QCon-NewYork-2018_DesignThinking_DoubleDiamond" srcset="https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_DesignThinking_DoubleDiamond-1024x487.png 1024w, https://atra.consulting/wp-content/uploads/2025/04/QCon-NewYork-2018_DesignThinking_DoubleDiamond-768x365.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><em>© William Evans | https://www.infoq.com/presentations/agile-self-organizing-teams-design-thinking</em></figcaption></figure>
</div>


<h3 class="wp-block-heading"><br><strong>Software Is Eating the World, ML Is Going to Eat Software</strong></h3>



<p class="wp-block-paragraph">Der Referent dieses&nbsp;<strong><a href="https://qconnewyork.com/ny2018/ny2018/presentation/integrating-machine-learning-dev-tools-facebook.html" target="_blank" rel="noreferrer noopener">Vortrags</a></strong>&nbsp;ist Engineer im Developer Infrastructure Team von Facebook. Der Einblick ins Engineering bei Facebook und dass sie dort überhaupt genau so ein Team haben, welches Tools und Infrastruktur für Entwickler zentral bereitstellt, war dabei gleich die erste interessante Information.</p>



<p class="wp-block-paragraph">Facebook möchte Machine Learning in jeder Schicht ihres Technologiestacks integrieren, um Entwickler produktiver und Prozesse und Infrastruktur effizienter zu machen. Machine Learning ist dabei für Facebook nur ein weiteres Tool, wie beispielsweise objektorientierte oder funktionale Programmierung, welche auch entsprechend tief in die Programmiersprachen und Entwicklertools, wie zum Beispiel IDEs oder Versionskontrolle integriert wird.</p>



<p class="wp-block-paragraph">Machine Learning kommt da zum Einsatz, wo viele Daten anfallen, um Vorhersagen abzuleiten und Klassifizierungen sowie Cluster zu bilden. Der Referent nannte dabei zwei konkrete Anwendungsfälle in seinem Umfeld bei Facebook: zum einen das Cache Management in der Infrastruktur und zum anderen die Autovervollständigung ganzer Codeteile in der Entwicklung. Ausgangssituation für Letzteres ist dabei folgende Erkenntnis:</p>



<p class="wp-block-paragraph"><em>»70 % des Codes auf Github ist Copy &amp; Paste.«</em>&nbsp;– Joe Pamer</p>



<p class="wp-block-paragraph">Da der meiste Code also sowieso kopiert wird, sollen Entwickler in ihrer IDE, ähnlich zur Autovervollständigung von beispielsweise Schlüsselwörtern der jeweiligen Programmiersprache, Vorschläge für ganze Codeteile, wie zum Beispiel Methoden oder Klassen bekommen, die an die jeweilige Stelle im Code passen könnten. Das geht dann über einfache Code-Suche, wie wir zum&nbsp;<a href="https://atra.consulting/2016/09/30/Codesharing.html"><strong>Codesharing</strong></a>&nbsp;mit Tools wie&nbsp;<strong><a href="https://sourcegraph.com/" target="_blank" rel="noreferrer noopener">Sourcegraph</a>&nbsp;</strong>und&nbsp;<strong><a href="https://searchcode.com/" target="_blank" rel="noreferrer noopener">Searchcode</a>&nbsp;</strong>skiziiert haben, hinaus und schon mehr in Richtung&nbsp;<a href="https://blog.acolyer.org/2018/06/26/deep-code-search/" target="_blank" rel="noreferrer noopener">Deep Code Search</a>, aber eben auf Basis der umfangreichen Codebasis von Facebook und mit Machine Learning, da Code ja auch nur strukturierte Daten sind. Mit diesem Ansatz konnte die Produktivität der Entwickler bei Facebook bereits um 14 % gesteigert werden. Bei geschätzten&nbsp;<strong><a href="https://www.quora.com/How-many-software-engineers-work-at-Facebook" target="_blank" rel="noreferrer noopener">10.000 Entwicklern, die für Facebook arbeiten</a></strong>, ist dies ein erheblicher Produktivitätsgewinn.</p>



<h3 class="wp-block-heading"><br><strong>Einschätzung</strong></h3>



<p class="wp-block-paragraph">Die&nbsp;<strong><a href="https://atra.consulting/2018/07/30/QCon-NewYork-2018.html#workshops">Workshops</a>&nbsp;</strong>waren unserer Einschätzung nach nicht ganz »bleeding-edge«, die&nbsp;<strong><a href="https://atra.consulting/2018/07/30/QCon-NewYork-2018.html#keynotes">Keynotes</a></strong>&nbsp;und&nbsp;<strong><a href="https://atra.consulting/2018/07/30/QCon-NewYork-2018.html#vortr%C3%A4ge">Vorträge</a></strong>&nbsp;durchaus. Wobei die New Yorker QCon auf uns insgesamt etwas kleiner und vermutlich da eben nicht im Silicon Valley gelegen, auch nicht ganz so pulsierend wie die&nbsp;<strong><a href="https://atra.consulting/2015/12/18/QCon-SanFrancisco-2015.html">Veranstaltung in San Francisco</a></strong>&nbsp;gewirkt hat. Egal wo, die Veranstaltungen sind immer einen Besuch wert, denn auch wenn es heutzutage eigentlich dafür keinen Grund mehr geben sollte, so sind die Themen hier entsprechenden Veranstaltungen in Deutschland dann doch immer noch ein Stück voraus.</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:30%">
<figure class="wp-block-image is-resized"><img decoding="async" src="https://atra.consulting/wp-content/uploads/2024/04/Team-Schwarze.jpg" alt="" class="wp-image-506" style="width:304px;height:auto" title="Team-Schwarze"/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<h3 class="wp-block-heading">Michael Schwarze</h3>



<p class="wp-block-paragraph">Geschäftsführer</p>



<div style="height:16px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">Michael ist ein erfahrener Softwareentwickler, -architekt und -manager mit über 30 Jahren Erfahrung in der Technologiebranche. Er hat sowohl in Startups als auch Konzernen auf Anwender- als auch Entwicklungs- und Beratungsseite gearbeitet.&nbsp; Coden ist für ihn nicht nur Beruf, sondern Leidenschaft, am liebsten mit dynamisch-typisierten Sprachen wie Ruby. Neben der Entwicklung langlebiger Softwaresysteme liegt ihm auch die Verbesserung des Managements in der Softwareentwicklung am Herzen. Wenn er nicht gerade mit seiner Familie und seinen zwei Kindern beschäftigt ist, findet man ihn in den Bergen, beim Joggen oder anderen sportlichen Aktivitäten.</p>



<div style="height:16px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<p class="wp-block-paragraph"><a href="mailto:m.schwarze@atra.consulting">m.schwarze@atra.consulting</a>    </p>



<ul class="wp-block-social-links is-layout-flex wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/in/michael-schwarze/" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li></ul>
</div>
</div>
</div>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Conways Law in Aktion</title>
		<link>https://atra.consulting/consulting/conways-law-in-aktion/</link>
		
		<dc:creator><![CDATA[Michael Schwarze]]></dc:creator>
		<pubDate>Thu, 31 Mar 2016 10:36:50 +0000</pubDate>
				<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Architektur]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Organisation]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<guid isPermaLink="false">https://atra.consulting/uncategorized/conways-law-in-aktion/</guid>

					<description><![CDATA[Abhängigkeiten, egal ob technischer oder organisatorischer Art, sind in der Softwareentwicklung...]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Abhängigkeiten, egal ob technischer oder organisatorischer Art, sind in der Softwareentwicklung&nbsp;<a href="https://www.dokchess.de/_downloads/szoerner_SQD_2013_abhaengigkeiten.pdf" target="_blank" rel="noreferrer noopener">problematisch</a>. Größere, klassisch vorgehende Softwareentwicklungsorganisationen schaffen nach unserer Erfahrung bspw. regelmäßig nur 2-4 Releases pro Jahr, da die Organisation zu komplex und die Abhängigkeiten zu hoch sind. Durch die Harmonisierung von Aufbauorganisation und Systemarchitektur in Anlehnung an&nbsp;<a href="https://www.melconway.com/Home/Conways_Law.html" target="_blank" rel="noreferrer noopener">Conways Law</a>&nbsp;lassen sich die Abhängigkeiten in der Softwareentwicklung um bis zu 80 % reduzieren, wie wir nachfolgend aufzeigen.</p>



<p class="wp-block-paragraph">Conways Law, welches bereits seit 1967 (!) intensiv diskutiert und viel zitiert worden ist, besagt, dass Systeme die Organisationsstrukturen der Einheiten reflektieren, in denen sie entstehen:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">»Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.«</p>
</blockquote>



<p class="wp-block-paragraph">Oder anders formuliert, man bekommt nicht zwangsläufig die Systeme, die am Whiteboard, Flipchart oder in UML designed wurden, sondern Systeme, die aussehen, wie das Organigram der sie umgebenden Organisation. Da Systeme und Organisationen i.d.R. anderen Änderungszyklen unterliegen und die jeweiligen Änderungen anders motiviert sind, laufen System- und Organisationsgrenzen irgendwann zwangsläufig auseinander:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b86741ef&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b86741ef" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="720" height="540" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Conways-Law-in-Aktion-geplantesDesign-1.jpg" alt="" class="wp-image-6401"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">Dies führt zu erheblichen Schwierigkeiten in Entwicklung und Betrieb entsprechender Software-Systeme, da sich die Verantwortung für ein System dann schnell über mehrere Organisationseinheiten hinweg erstreckt, was zu Abhängigkeiten, unklaren Verantwortlichkeiten, erhöhtem Abstimmungsbedarf, usw. führt.</p>



<p class="wp-block-paragraph">Interessant ist zu sehen, was passiert, wenn man auseinander gelaufene System- und Organisationsgrenzen wieder in Einklang bringt, wie wir im folgenden Artikel an einem unserer Projekte in anonymisierter Form aufzeigen.</p>



<h3 class="wp-block-heading"><br>Hintergrund</h3>



<p class="wp-block-paragraph">Im konkreten Fall sollte der IT-Bereich eines Online-Unternehmens reorganisiert werden, da aufgrund des starken Wachstums der Firma, dieser den anstehenden Aufgaben nicht mehr gewachsen war. Das Unternehmen war einer klassisch-funktionalen Aufbauorganisation folgend strukturiert. Das nachfolgend vereinfacht dargestellte Organigram erschien auf den ersten Blick unauffällig:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b8674ffe&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b8674ffe" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="720" height="540" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Conways-Law-in-Aktion-OrgChart-1.png" alt="" class="wp-image-6402"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">Unsere der sog. [Theorie Z][4] folgende Analyse ergab u.a., dass die Mitarbeiter in der dortigen IT in einer eher technologischen Aufbauorganisation, welche nicht im Einklang mit der fachlichen, projektseitigen oder auch betrieblichen Realität stand, eine historisch gewachsene, [komplexe und komplizierte][5], monolitische Architektur mit einer Vielzahl an Technologien / Systemen und hohen technischen Schulden entwickelten und betrieben.</p>



<p class="wp-block-paragraph">Selbst kleine Anpassungen führten zu hohen Aufwänden und regelmäßigem Überschreiten der vereinbarten Termin- und Budgetzusagen, da alles mit allem zusammenhing und eine Änderung an einer Stelle immer auch Anpassungen an einer Vielzahl von anderen Stellen bedeutete. Das Gesamtsystem war kaum noch beherrschbar.</p>



<p class="wp-block-paragraph">Eine erste, qualitative Untersuchung der&nbsp;<a href="https://www.sigs-datacom.de/fileadmin/user_upload/zeitschriften/os/2011/Architekturen/tilkov_ghadir_OS_Architekturen_11.pdf" target="_blank" rel="noreferrer noopener">Makro-Architektur</a>, insb. im Hinblick auf die wesentlichen&nbsp;<a href="https://www.computer.org/csdl/proceedings/icse/2003/1877/00/18770740.pdf" target="_blank" rel="noreferrer noopener">Architektursichten</a>&nbsp;brachte die in folgender schematischer Darstellung zusammengefassten Erkenntnisse:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b8675d6f&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b8675d6f" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="720" height="540" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Conways-Law-in-Aktion-Architektursichten-1.png" alt="" class="wp-image-6398"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">Wie häufig war über die Architektursichten hinweg kein einheitlicher Systemschnitt zu finden. Die fachliche Anforderungssicht war bisher nur wenig ausgeprägt und folgte bspw. nicht der User bzw.&nbsp;<a href="https://de.wikipedia.org/wiki/Customer_Journey" target="_blank" rel="noreferrer noopener">Customer Journey</a>&nbsp;eines Kunden im Portal. Die einzelnen Softwaresysteme waren »historisch gewachsen«, dabei aber zunehmend ihrem initialen, technologischen Ordnungsmuster der&nbsp;<a href="https://de.wikipedia.org/wiki/Schichtenarchitektur" target="_blank" rel="noreferrer noopener">3-Schichten-Architektur</a>&nbsp;entflohen (»<a href="https://www.elektronikpraxis.vogel.de/themen/embeddedsoftwareengineering/analyseentwurf/articles/98362/" target="_blank" rel="noreferrer noopener">Architekturerosion</a>«). Wenig verwunderlich, da die Gliederung in Frontend, Backend, und Datenhaltung (Persistenz) von Systemen i.d.R. wenig mit der Sicht des Anwenders gemein hat. Die Infrastruktur wiederum folgte einem ganz anderen Muster und war auch organisatorisch stark vernachlässigt, wie weiter unten zu sehen ist. In Folge kaskadierte sich eine einzelne fachliche Änderung auf zahlreiche Anpassungen diverser Systeme, welche wiederum weitere Änderungen anderer Systeme nach sich zogen.</p>



<p class="wp-block-paragraph">Wobei an dieser Stelle auch eine Lanze für die Software-Architekten gebrochen werden muss: die einheitliche Durchsetzung einer Architekturidee über mehrere Architektursichten hinweg ist nach wie vor eine erhebliche&nbsp;<a href="https://www.sigs-datacom.de/fachzeitschriften/javaspektrum/archiv/artikelansicht/artikel-titel/liebe-deine-architektur-architekturmodellierung-und-automatisierte-ueberpruefung.html" target="_blank" rel="noreferrer noopener">Herausforderung</a>. Bis dato kann der Architekt überwiegend retrospektiv und eher Dokumenten-basiert, also über Konzept-, Spezifikations- und Code-Reviews/-Analysen feststellen, ob (s)eine Architekturidee eingehalten und entsprechend umgesetzt wurde. Architektur-DSLs (Domain-Specific Languages) stellen hier einen interessanten Ansatz dar, die Wahrheit steckt aber schlußendlich im Code. Der Architekt ist in der Rücklage gegenüber der Software-Entwicklung, insb. im agilen Umfeld; nachträgliche Umbauarbeiten an den Systemen, um selbige wieder ins architekturelle Modell zu bekommen, sind nur selten gegen den üblichen Marktdruck durchsetzbar. Das Label »historisch gewachsen« haben wir schon an vielen anderen von uns untersuchten Architekturen gefunden. Die geschickte Kombination moderner Ansätze (Microservices-Architekturstil, Domain-driven Design, …) und das Verlassen etablierter Software-Engineering-Paradigmen, wie z.B. der zentralen Datenhaltung, aber bspw. auch das bewusste Akzeptieren von Redundanz, etc. verspricht hier Besserung, wie wir auch in folgenden Artikeln noch aufzeigen werden.</p>



<p class="wp-block-paragraph">Im konkreten Fall war die gesamtheitliche Betrachtung von Architektur und Organisation, Conways Law aber auch unserem Ansatz von [IT-Management-Beratung][12] folgend, der nächste Schritt:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b8676adb&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b8676adb" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="720" height="540" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Conways-Law-in-Aktion-ArchitektursichtenOrgChart-1.png" alt="" class="wp-image-6399"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">Weder die Aufbauorganisation der Fachbereiche noch der IT ließen sich in der Architektur verorten. Darüber hinaus standen aber auch die Strukturen der Fachbereiche, also der internen Kunden der IT, in keiner Beziehung zur Organisation des IT-Bereichs. In Folge setzte sich die schon auf Architekturebene gezeigte Abhängigkeitskaskade in der Organisation fort und verstärkte sich entsprechend. Eine einzelne Änderung führte nicht nur zur notwendigen Anpassung einer Vielzahl von betroffenen, abhängigen Systemen, sondern involvierte auch eine Vielzahl von Ansprechpartnern und Teams. Die Organisation war im permanenten Eskalationsmodus.</p>



<p class="wp-block-paragraph">Die quantitative Auswertung der historischen Änderungsaufträge eines Jahres bestätigte die qualitative Betrachtung: in 50% der Fälle kam es zum sog. »Übersprechen«. Jeder zweite Änderungsauftrag führte im vorliegenden System- und Teamzuschnitt also zu Abstimmungen mit anderen Teams und entsprechenden Anpassungen weiterer Systeme.</p>



<h3 class="wp-block-heading"><br>Lösungsansatz</h3>



<p class="wp-block-paragraph">Welches Ordnungskriterium sollte nun aber angesetzt werden, um die erodierende Architektur wieder mit der divergierenden Organisation in Einklang zu bringen? Da Softwareentwicklung zumindest in den meisten Fällen kein Selbstzweck ist, sondern dem Kunden/Anwender dienen sollte, fängt auch unser Lösungsansatz mit der Fachlichkeit, also der Anforderung, dem Use Case oder der User Story an. Da Anforderungen häufig »organisationspolitisch« gefärbt sind, also von Interessen der Einheiten, die sie gestellt haben, geleitet werden, gingen wir im konkreten Fall zunächst noch einen Schritt weiter »zurück« in der Anforderungskette zum Anwender im Portal.</p>



<p class="wp-block-paragraph">Insbesondere im kundennahen Online-Umfeld mit geringer Standardisierung und Wiederverwendbarkeit bei hoher Individualsierung durch die notwendige&nbsp;<a href="https://www.themanagement.de/Ressources/generische-strategien.htm" target="_blank" rel="noreferrer noopener">Differenzierung</a>&nbsp;sollte der Fokus auch entsprechend extern, also auf den Kunden gelegt werden. Im Umfeld von ERP-Standardsoftware-Entwicklung bspw. mag der Fokus auch entsprechend eher intern auf Kostenoptimierung (Stichwort:&nbsp;<a href="https://www.themanagement.de/Ressources/generische-strategien.htm" target="_blank" rel="noreferrer noopener">Kostenführerschaft</a>) gelegt werden.</p>



<p class="wp-block-paragraph">In einem ersten Schritt analysierten wir dementsprechend innerhalb der fachlichen Architektursicht die User bzw.&nbsp;<a href="https://de.wikipedia.org/wiki/Customer_Journey" target="_blank" rel="noreferrer noopener">Customer Journey</a>&nbsp;und leiteten daraus unter Hinzuziehung weiterer, unternehmensinterner Aspekte ein fachliches Domänenmodell ab. Eric Evans&nbsp;<a href="https://amzn.to/2E9FZTR" target="_blank" rel="noreferrer noopener">Domain-Driven Design</a>, auf welches wir in einem separaten Beitrag eingehen werden, war hierbei natürlich mit in unserem Handwerkskoffer.</p>



<p class="wp-block-paragraph">Dem Domänenmodell ordneten wir in einem nächsten Schritt die entsprechenden Softwaresysteme zu und es entstand eine fachlich getriebene Zielarchitektur, welche den&nbsp;<a href="https://www.bitkom.org/Publikationen/2011/Leitfaden/Leitfaden-EAM-Enterprise-Architecture-Management/EAM-Enterprise-Architecture-Management-BITKOM-Leitfaden.pdf" target="_blank" rel="noreferrer noopener">Bebauungsplan</a>&nbsp;für die notwendigen Umbaumaßnahmen der Systemarchitektur darstellte:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b8677b1b&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b8677b1b" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="720" height="540" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Conways-Law-in-Aktion-Domaenenarchitektur-1.png" alt="" class="wp-image-6400"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">Anschließend richteten wir die Teams ebenfalls gemäß dem Domänenmodell neu aus. Das Produktmanagement stellte je Domänenteam einen Product Owner, der im agilen Sinne die Verantwortung dafür übernahm, was umgesetzt wird. Das Entwicklungsteam der IT verantwortete die technische Umsetzung, also das »Wie« und übernahm in seiner Domäne gemäß Werner Vogels (CTO Amazon.com) Ansatz »<a href="https://queue.acm.org/detail.cfm?id=1142065" target="_blank" rel="noreferrer noopener">You build it, you run it</a>« auch die Betriebsverantwortung.</p>



<p class="wp-block-paragraph">Somit waren alle drei Architektursichten organisatorisch und technisch autark in jeweils einem Domänen-Team vereint, das Produktmanagement kapselte die Fachlichkeit, IT-Organisation und Fachbereichsorganisation sowie Architektur waren wieder im Einklang:</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;69e78b8678133&quot;}" data-wp-interactive="core/image" data-wp-key="69e78b8678133" class="aligncenter size-full wp-lightbox-container"><img decoding="async" width="720" height="540" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://atra.consulting/wp-content/uploads/2025/04/Conways-Law-in-Aktion-Zielbild-1.png" alt="" class="wp-image-6403"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button></figure>
</div>


<p class="wp-block-paragraph">Die resultierende&nbsp;<a href="https://de.wikipedia.org/wiki/Matrixorganisation" target="_blank" rel="noreferrer noopener">Matrixorganisation</a>&nbsp;war dem Umstand der zwei beteiligten Linien-Organisationseinheiten geschuldet und in der konkreten Projektsituation das organisatorisch maximal Mögliche. Produktentwicklung hat ebenso wie Softwareentwicklung unserer Einschätzung nach einen langfristigen Charakter und sollte dementsprechend idealerweise auch in einer entsprechend langfristig ausgerichteten Linien-Produktentwicklungsorganisation erfolgen; dies werden wir in einem separaten Beitrag noch näher beleuchten.</p>



<p class="wp-block-paragraph">Die anschließende quantitative Analyse der historischen Änderungsaufträge gegen die neue Architektur und Organisation ergab, dass das »Übersprechen« nur noch in 5-10 % der Fälle auftrat; gegenüber der Ausgangssituation mit 50 % also&nbsp;<strong>eine Verbesserung um ~80 %!</strong></p>



<p class="wp-block-paragraph">Neben unserer Erfahrung aus zahlreichen weiteren [IT-Management-Beratungsprojekten][18], insb. auch ähnlich gelagerten Vorhaben wie bspw. <a href="https://inoio.de/blog/2014/09/20/technologie-sprung-bei-galeria-kaufhof/" target="_blank" rel="noreferrer noopener">hier</a>, fußte das Vorgehen und der Erfolg in diesem Projekt im Wesentlichen auf den genannten, etablierten (<a href="https://www.melconway.com/Home/Conways_Law.html" target="_blank" rel="noreferrer noopener">Conways Law</a>; 1967) und neueren (<a href="https://amzn.to/2E9FZTR" target="_blank" rel="noreferrer noopener">Domain-Driven Design</a>; 2003) Ansätzen; ganz nach dem Motto »<em><a href="https://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants" target="_blank" rel="noreferrer noopener">Standing on the shoulders of giants</a></em>«.<br></p>



<p class="wp-block-paragraph">[1]:&nbsp;<a href="https://www.melconway.com/Home/Conways_Law.html" target="_blank" rel="noreferrer noopener">https://www.melconway.com/Home/Conways_Law.html</a></p>



<p class="wp-block-paragraph">[2]:&nbsp;<a href="https://www.google.com/trends/explore#q=Conways%20Law" target="_blank" rel="noreferrer noopener">https://www.google.com/trends/explore#q=Conways%20Law</a></p>



<p class="wp-block-paragraph">[3]:&nbsp;<a href="https://martinfowler.com/bliki/PolyglotPersistence.html" target="_blank" rel="noreferrer noopener">https://martinfowler.com/bliki/PolyglotPersistence.html</a></p>



<p class="wp-block-paragraph">[4]:&nbsp;<a href="https://atra.consulting/blog/theorie-z/" target="_blank" rel="noreferrer noopener">https://atra.consulting/blog/theorie-z/</a></p>



<p class="wp-block-paragraph">[5]:&nbsp;<a href="https://atra.consulting/blog/wann-agil-und-wann-klassisch/" target="_blank" rel="noreferrer noopener">https://atra.consulting/blog/wann-agil-und-wann-klassisch/</a></p>



<p class="wp-block-paragraph">[6]:&nbsp;<a href="https://www.sigs-datacom.de/fileadmin/user_upload/zeitschriften/os/2011/Architekturen/tilkov_ghadir_OS_Architekturen_11.pdf" target="_blank" rel="noreferrer noopener">https://www.sigs-datacom.de/fileadmin/user_upload/zeitschriften/os/2011/Architekturen/tilkov_ghadir_OS_Architekturen_11.pdf</a></p>



<p class="wp-block-paragraph">[7]:&nbsp;<a href="https://www.computer.org/csdl/proceedings/icse/2003/1877/00/18770740.pdf" target="_blank" rel="noreferrer noopener">https://www.computer.org/csdl/proceedings/icse/2003/1877/00/18770740.pdf</a></p>



<p class="wp-block-paragraph">[8]:&nbsp;<a href="https://de.wikipedia.org/wiki/Schichtenarchitektur" target="_blank" rel="noreferrer noopener">https://de.wikipedia.org/wiki/Schichtenarchitektur</a></p>



<p class="wp-block-paragraph">[9]:&nbsp;<a href="https://www.elektronikpraxis.vogel.de/themen/embeddedsoftwareengineering/analyseentwurf/articles/98362/" target="_blank" rel="noreferrer noopener">https://www.elektronikpraxis.vogel.de/themen/embeddedsoftwareengineering/analyseentwurf/articles/98362/</a></p>



<p class="wp-block-paragraph">[10]:&nbsp;<a href="https://www.sigs-datacom.de/fachzeitschriften/javaspektrum/archiv/artikelansicht/artikel-titel/liebe-deine-architektur-architekturmodellierung-und-automatisierte-ueberpruefung.html" target="_blank" rel="noreferrer noopener">https://www.sigs-datacom.de/fachzeitschriften/javaspektrum/archiv/artikelansicht/artikel-titel/liebe-deine-architektur-architekturmodellierung-und-automatisierte-ueberpruefung.html</a></p>



<p class="wp-block-paragraph">[11]:&nbsp;<a href="https://amzn.to/2E9FZTR" target="_blank" rel="noreferrer noopener">Domain Driven Design</a></p>



<p class="wp-block-paragraph">[12]:&nbsp;<a href="https://atra.consulting/ueber-uns">Über uns</a></p>



<p class="wp-block-paragraph">[13]:&nbsp;<a href="https://www.bitkom.org/Publikationen/2011/Leitfaden/Leitfaden-EAM-Enterprise-Architecture-Management/EAM-Enterprise-Architecture-Management-BITKOM-Leitfaden.pdf" target="_blank" rel="noreferrer noopener">https://www.bitkom.org/Publikationen/2011/Leitfaden/Leitfaden-EAM-Enterprise-Architecture-Management/EAM-Enterprise-Architecture-Management-BITKOM-Leitfaden.pdf</a></p>



<p class="wp-block-paragraph">[14]:&nbsp;<a href="https://queue.acm.org/detail.cfm?id=1142065" target="_blank" rel="noreferrer noopener">https://queue.acm.org/detail.cfm?id=1142065</a></p>



<p class="wp-block-paragraph">[15]:&nbsp;<a href="https://www.computerwoche.de/a/t-systems-der-wankende-gigant,3070921" target="_blank" rel="noreferrer noopener">https://www.computerwoche.de/a/t-systems-der-wankende-gigant,3070921</a></p>



<p class="wp-block-paragraph">[16]:&nbsp;<a href="https://www.themanagement.de/Ressources/generische-strategien.htm" target="_blank" rel="noreferrer noopener">https://www.themanagement.de/Ressources/generische-strategien.htm</a></p>



<p class="wp-block-paragraph">[17]:&nbsp;<a href="https://de.wikipedia.org/wiki/Matrixorganisation" target="_blank" rel="noreferrer noopener">https://de.wikipedia.org/wiki/Matrixorganisation</a></p>



<p class="wp-block-paragraph">[18]:&nbsp;<a href="https://atra.consulting/referenzen">Referenzen</a></p>



<p class="wp-block-paragraph">[19]:&nbsp;<a href="https://inoio.de/blog/2014/09/20/technologie-sprung-bei-galeria-kaufhof/" target="_blank" rel="noreferrer noopener">https://inoio.de/blog/2014/09/20/technologie-sprung-bei-galeria-kaufhof/</a></p>



<p class="wp-block-paragraph">[20]:&nbsp;<a href="https://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants" target="_blank" rel="noreferrer noopener">https://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants</a></p>



<p class="wp-block-paragraph">[21]:&nbsp;<a href="https://www.dokchess.de/_downloads/szoerner_SQD_2013_abhaengigkeiten.pdf" target="_blank" rel="noreferrer noopener">https://www.dokchess.de/_downloads/szoerner_SQD_2013_abhaengigkeiten.pdf</a></p>



<p class="wp-block-paragraph">[22]:&nbsp;<a href="https://de.wikipedia.org/wiki/Customer_Journey" target="_blank" rel="noreferrer noopener">https://de.wikipedia.org/wiki/Customer_Journey</a></p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:30%">
<figure class="wp-block-image is-resized"><img decoding="async" src="https://atra.consulting/wp-content/uploads/2024/04/Team-Schwarze.jpg" alt="" class="wp-image-506" style="width:304px;height:auto" title="Team-Schwarze"/></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<h3 class="wp-block-heading">Michael Schwarze</h3>



<p class="wp-block-paragraph">Geschäftsführer</p>



<div style="height:16px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">Michael ist ein erfahrener Softwareentwickler, -architekt und -manager mit über 30 Jahren Erfahrung in der Technologiebranche. Er hat sowohl in Startups als auch Konzernen auf Anwender- als auch Entwicklungs- und Beratungsseite gearbeitet.&nbsp; Coden ist für ihn nicht nur Beruf, sondern Leidenschaft, am liebsten mit dynamisch-typisierten Sprachen wie Ruby. Neben der Entwicklung langlebiger Softwaresysteme liegt ihm auch die Verbesserung des Managements in der Softwareentwicklung am Herzen. Wenn er nicht gerade mit seiner Familie und seinen zwei Kindern beschäftigt ist, findet man ihn in den Bergen, beim Joggen oder anderen sportlichen Aktivitäten.</p>



<div style="height:16px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex">
<p class="wp-block-paragraph"><a href="mailto:m.schwarze@atra.consulting">m.schwarze@atra.consulting</a>    </p>



<ul class="wp-block-social-links is-layout-flex wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/in/michael-schwarze/" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li></ul>
</div>
</div>
</div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
