Rapid UX Prototyping — Handover an UI-Entwicklung in verteilten Teams

abhandlungen/ · traefik-microstack · Mai 2026 · Vers. 1
Zusammenfassung. Vier Teams mit je vier Entwicklerinnen und Architektinnen, einem Product Owner und einem Projektmanager sollen eine einzige kohärente Webanwendung liefern — erweiterbar auf zehn bis fünfzehn Teams. Diese Abhandlung beschreibt einen Prozess, der das leistet: eine geschichtete UX-Architektur aus Foundations, Patterns, Screen-Specs und laufenden Prototypen, verbunden durch einen definierten Handover-Kanal zur Angular-Implementierung. Das Verfahren nutzt ein einziges Monorepo mit strikten Ordner-Grenzen, Angular Native Federation als Laufzeit-Kompositions­mechanismus und eine gemeinsame Bibliothek als einzigen Koordinationspunkt zwischen Teams. Die Abhandlung argumentiert ausdrücklich gegen Multi-Repo-Aufteilung, Design-System-First ohne Prototyping und strukturlosen Freestyle — und belegt die Überlegenheit des vorgeschlagenen Weges anhand der Praxis in diesem Repository.

1Das Problem: Kohärenz bei verteilter Entwicklung

Eine Webanwendung, die von vier Teams parallel entwickelt wird, tendiert ohne expliziten Gegendruck zur lokalen Optimierung: Jedes Team löst seine Bildschirme nach eigenem Gutdünken — eigene Abstände, eigene Interaktionsmetaphern, eigene Komponentenbezeichnungen. Das Ergebnis ist keine Anwendung, sondern eine Sammlung von vier Mini-Anwendungen mit einer gemeinsamen Navigationsleiste. Nutzerinnen bemerken die Brüche sofort; sie lernen nicht eine Anwendung, sie lernen vier.

SymptomUrsacheKonsequenz
Inkonsistente Abstände und TypografieKein gemeinsames Token-SetVisuelles Rauschen, Wahrnehmung mangelnder Qualität
Gleiche Aktion heißt in Team A „Speichern", in Team B „Übernehmen"Kein Glossar, keine PatternsSachbearbeiterinnen müssen pro Bereich neu lernen
Team A baut eine Tabelle mit Inline-Edit, Team B baut ein ModalKeine Pattern-VereinbarungInkonsistentes mentales Modell der Nutzerin
Prototyp-Feedback kommt nach Sprint 6, wenn Architektur feststehtKein frühzeitiger Handover-KanalTeure Nacharbeiten, demotivierte Teams
Neue Teams reißen bestehende Routen aufKeine Extension-Point-DisziplinShell bricht bei jedem Onboarding

Das Problem ist nicht Inkompetenz — es ist fehlendes Koordinationssystem. Vier kompetente Teams ohne gemeinsame Architektur produzieren zuverlässig Fragmentierung. Die Lösung ist kein Meeting mehr. Sie ist ein Prozess mit definierten Artefakten, Grenzen und Übergabepunkten.

2Die Lösung: Prototyp-getriebene Entwicklung

Prototyp-getriebene Entwicklung (PGE) stellt den laufenden Prototypen ans Anfang, nicht ans Ende. Der Prototyp ist kein Wegwerfartefakt vor dem „echten" Sprint — er ist das verbindliche Kommunikationsmedium zwischen UX-Design und Implementierung. Jede Interaction-Entscheidung, die im Prototypen getroffen wird, muss nicht mehr in einem Sprint-Review neu verhandelt werden.

PGE gliedert sich in drei Phasen, die sich überlappen und iterieren:

PhaseArtefaktVerantwortlichHandover-Kanal
FoundationMentale Modelle, Zones, Design-Token-Spec, Pattern-KatalogUX-Lead + ArchitektinnenLeserecht aller Teams auf ux/foundations/ und ux/patterns/
PrototypeStatische HTML-Frames + laufende Preact-SPAUX-Teamfigma-make-prompt.md/prototype-Skill → HTML-Frames; Forward-Container im Stack
ImplementationAngular-Komponenten, Storybook-Stories, REST-BackendDomain-Teams@traefik-microstack/shared aus Verdaccio; Remote-Entry-Kontrakt
Kernregel

Eine Interaction-Entscheidung wird genau einmal getroffen — im Prototypen — und danach in Code übersetzt. Teams implementieren keine Screens, die keinen Prototyp-Nachweis haben. Teams erfinden keine Patterns, die nicht im Katalog stehen.

3Die UX-Schichtenarchitektur

Das Repository kodiert eine strikte Abhängigkeitsreihenfolge im Ordner ux/, die durch die Sibling-Ordering-Regel aus CLAUDE-16 erzwungen wird: eine spätere Schicht darf frühere lesen, aber nie umgekehrt.

UX-Schichtenarchitektur — gerichtete Abhängigkeitskette 01 — FOUNDATIONS Mentale Modelle · Designprinzipien · Metaphern · ux/foundations/ WARUM 02 — PATTERNS Suchergebnisse · Detailformular · Vergleichsansicht · sofortige Auflösung · ux/patterns/ WAS 03 — SCREENS figma-make-prompt.md · SCREEN.md · Screenshots · ux/screens/{screen}/ WIE 04 — PROTOTYPE Laufende Preact-SPA · statische HTML-Frames · ux/prototype/app/ · /prototype-Skill BEWEIS nur lesen ←
Abb. 1 — Vier Schichten, eine Pfeilrichtung. Jede Schicht konsumiert alle darüber liegenden Schichten. Keine Schicht schreibt in eine höhere. Die Reihenfolge ist durch numerische Präfixe in ux/ erzwungen (CLAUDE-16 §5).
SchichtOrdnerSchlüsselartefakteLeser
Foundationsux/foundations/clerk-mental-model.md, single-screen-rationale.md, SVG-DiagrammeAlle Teams, POs, PMs
Patternsux/patterns/search-results.mdx, detail-form.mdx, comparison-view.mdx, instant-command-resolution.mdxDomain-Architektinnen, Frontend-Leads
Screensux/screens/{screen}/figma-make-prompt.md, SCREEN.md, Iterations-ScreenshotsImplementierende Entwicklerinnen, Storybook-Autorinnen
Prototypeux/prototype/app/Preact-SPA, src/components/*.tsx, src/data/POs (Akzeptanztest), Architektinnen (API-Kontrakt-Ableitung)

Die Storybook-Instanz (ux/frontend/) ist der fünfte Kanal: sie rendert Angular-Komponenten, die aus den Pattern-Definitionen abgeleitet wurden. Storybook ist der Nachweis, dass die Implementierung mit dem Pattern übereinstimmt — nicht mit einem Design-Tool-Export.

4Der Handover-Prozess

Der Übergang vom UX-Prototypen zur Angular-Implementierung ist kein Übergabedokument und kein Ticket mit Anhang. Er ist ein definiierter Kanal aus vier Stationen, von denen jede ein versioniertes Artefakt produziert.

Handover-Pipeline: figma-make-prompt → Angular-Remote SCREEN-SPEC figma-make-prompt.md Design-Tokens Komponenten · Frames /prototype Skill HTML-FRAMES statische Snapshots browseröffenbar kein Build nötig PO-Review PREACT-SPA ux/prototype/app/ Interaktion testbar kein Angular nötig Storybook Story STORYBOOK ux/frontend/stories/ HTML-vite-Story Pattern-Nachweis ng build ANGULAR Remote Entry deployed Artefakt-Verträge figma-make-prompt.md: vollständige Spec (Design-Tokens, Komponentendefinitionen, Frame-Beschreibungen) — Eingabe für /prototype-Skill HTML-Frames: selbstständige Dateien (keine externen Ressourcen) — reviewbar ohne lokale Dev-Umgebung Preact-SPA: kein Angular, kein API, kein Auth — isolierter Interaktionsbeweis, Vite dev-Port 5174 → Traefik /prototype/ Storybook-Story: Angular-Komponente gegen Pattern validiert — Brücke zwischen UX-Spec und Produktionscode
Abb. 2 — Handover-Pipeline. Jede Station produziert ein lauffähiges, versioniertes Artefakt. PO-Reviews finden an Station 2 statt (keine Dev-Umgebung nötig). Architektur-Reviews finden an Station 3 statt. Pattern-Konformität wird an Station 4 geprüft.

Der figma-make-prompt.md als Handover-Kontrakt

Das Schlüsselartefakt ist nicht ein Figma-Export, kein Screenshot und kein Confluence-Dokument. Es ist die figma-make-prompt.md — eine strukturierte Spezifikation in drei Abschnitten:

  1. Design-Tokens: Farbwerte, Typografie, Abstands­gitter, Radiuswerte — alle als benannte Variablen. Kein Interpretationsspielraum.
  2. Komponenten (COMP-A … COMP-N): Jede Komponente mit Zuständen, Variants und Verhaltensbeschreibung. Genug Detail für den /prototype-Skill und für den Angular-Entwickler.
  3. Frames (F-01 … F-N): Vollständige Screen-Beschreibungen mit Layout, Daten-Beispielen und Interaktionsübergängen.

Diese Struktur macht das Dokument maschinell verwertbar (der /prototype-Skill liest es und erzeugt HTML-Frames) und menschlich lesbar (Entwicklerinnen implementieren daraus Angular-Komponenten ohne Rückfragen). Das Dokument ersetzt das Design-Tool; es ist das Design.

Handover-Prinzip

Kein Angular-Team beginnt mit der Implementierung eines Screens, für den noch kein figma-make-prompt.md existiert. Das Dokument ist die Definition of Ready für UI-Tickets. Ohne es gibt es keinen Review-Maßstab.

5Extension Points: Wie neue Teams andocken

Die Anwendung ist eine einzige Shell, die zur Laufzeit Micro-Frontends per Angular Native Federation lädt. Neue Teams erweitern die Anwendung, ohne den bestehenden Code zu berühren. Es gibt drei Koordinationspunkte — alle drei sind minimal und versioniert.

Erweiterungs-Topologie — Shell + Remotes + Shared + Gateway TRAEFIK GATEWAY — https://gateway — Einziger Eintrittspunkt für alle Clients SHELL platform/shell/ federation.manifest.json Catch-all Route / SHARED LIB @traefik-microstack/shared Verdaccio :4873 REMOTE A partner-search/frontend/ exposes ./Component Route: /partner REMOTE B partner-edit/frontend/ exposes ./Component Route: /partner-edit REMOTE N neues-domain/frontend/ exposes ./Component Route: /neues-domain BACKEND-DOMAINS — je ein Spring/Quarkus-Service pro Domain /api/partner/spring · /api/partner-edit/spring · /api/neues-domain/spring jeder Service hinter Traefik · PathPrefix + StripPrefix · eigene Postgres-Instanz Die drei Koordinationspunkte — alle anderen Grenzen sind team-intern 1. federation.manifest.json Shell lädt Remotes per URL Neues Team ergänzt einen Eintrag Kein Shell-Code verändert sich 2. @traefik-microstack/shared npm-Paket aus Verdaccio Gemeinsame Komponenten + Tokens Versioniert, nie Sourcepfad-Import 3. docker-compose include: Root-Compose bindet Domain ein Domain-Compose ist self-contained Traefik-Labels im Domain-File
Abb. 3 — Erweiterungs-Topologie. Ein neues Team fügt eine Zeile in federation.manifest.json, eine Zeile in docker-compose.yaml include: und ein Remote-Entry hinzu. Shell-Code und bestehende Remotes bleiben unberührt.

Die Konsequenz ist bemerkenswert: Ein neues Team kann produktiv werden, ohne bestehenden Code zu kennen. Es kennt das Kommunikationsprotokoll (drei Koordinationspunkte) und das Pattern-Katalog — beides ist in ux/patterns/ und der DOMAIN.md des Repository-Roots dokumentiert.

Extension PointDateiÄnderung für ein neues Team
Remote-Registrierungplatform/shell/src/environments/federation.manifest.jsonEin Eintrag: "loans": "/loans/remoteEntry.json"
Shell-Routeplatform/shell/src/app/components/pages/main/main.routes.tsEin loadRemoteModule-Eintrag für path: 'loans'
Compose-Einbindungdocker-compose.yaml (Root)Eine Zeile: - loans/docker-compose.yaml
Shared-Lib-Konsumloans/frontend/package.json"@traefik-microstack/shared": "0.0.x"
Domain-Dokuloans/DOMAIN.mdNeues Dokument nach Standard-Template

6Das Monorepo als Skalierungsinstrument

Ein Monorepo ist keine Entscheidung für oder gegen ein Build-Tool. Es ist eine Aussage über Koordinationskosten: Dinge, die sich zusammen verändern, leben zusammen. Die drei Koordinationspunkte aus §5 sind deshalb minimal, weil das gesamte System — Shell, Remotes, Backends, UX-Schichten, Infrastruktur — in einem einzigen Repository liegt und damit atomar refaktorierbar ist.

Folder-Closure als Teamgrenze

Die Axiom-Regel CLAUDE-16 codiert die Teamgrenze als Ordner-Grenze: Alle Datei-Operationen eines Teams sind auf seinen Ordner und seine Nachfolger beschränkt. Kein Team schreibt in das Verzeichnis eines anderen Teams. Diese Regel ist in den Claude-Code-Agenten erzwungen und in jedem DOMAIN.md dokumentiert.

Organisationsregel

Team-Topologie und Ordner-Topologie sind kongruent. Das Team, das partner-search/ besitzt, berührt nichts außerhalb dieses Ordners — außer den drei expliziten Koordinationspunkten. Diese Kongruenz macht Code-Reviews atomar und Onboarding vorhersehbar.

Warum nicht trotzdem Multi-Repo?

Die Gegenthese lautet: Teams arbeiten autonomer in separaten Repositories. Das ist richtig — aber Autonomie und Kohärenz stehen in Spannung. Das Monorepo löst diese Spannung durch selektive Durchlässigkeit: Teams sind autonom innerhalb ihrer Ordner, koordiniert an den drei definierten Punkten. Multi-Repo gibt volle Autonomie und erzwingt Koordination an jedem Punkt — durch Versionierung, CI-Abhängigkeiten, Deployment-Choreographie. Die vollständige Argumentation gegen Multi-Repo folgt in §9.

7Team-Topologie für 4×4 Teams

Vier Teams, je vier Entwicklerinnen und Architektinnen, ein PO, ein PM. Die Verantwortungsgrenzen folgen der Domain-Struktur des Repository.

RolleAnzahlPrimäre ArtefakteReview-Pflicht
UX-Lead1 (domainübergreifend)ux/foundations/, ux/patterns/, figma-make-prompt.mdAlle neuen Screens, alle Pattern-Abweichungen
Domain-Architektin1 pro Team{domain}/DOMAIN.md, federation.config.js, API-KontraktShell-Koordinationspunkte, Shared-Lib-Änderungen
Frontend-Entwicklerin2 pro TeamAngular-Komponenten, Storybook-StoriesPattern-Konformität (gegen ux/patterns/)
Backend-Entwicklerin1 pro TeamSpring/Quarkus-Service, Flyway-MigrationenAPI-Pfad-Konventionen, Traefik-Labels
Product Owner1 pro TeamTickets, AkzeptanzkriterienHTML-Frame-Review (Station 2) vor Sprint-Start
Project Manager1 pro TeamSprint-Planung, Dependency-TrackingKoordinationspunkte-Änderungen (koordiniert mit anderen PMs)

Handoff-Gates

Drei formale Übergabepunkte verhindern, dass Teams mit unklaren Anforderungen beginnen:

  1. Gate 1 — Screen-Spec komplett: figma-make-prompt.md existiert, ist versioniert, wurde vom UX-Lead freigegeben. Ohne Gate 1 startet kein Prototyping-Sprint.
  2. Gate 2 — Prototyp reviewed: HTML-Frames wurden vom PO gesichtet und freigegeben. Interaktionen in der Preact-SPA wurden von der Domain-Architektin auf API-Kontrakt-Ableitbarkeit geprüft. Ohne Gate 2 beginnt kein Implementierungs-Sprint.
  3. Gate 3 — Story in Storybook: Mindestens eine Storybook-Story für die neue Komponente besteht. Story zeigt ReadOnly- und Editable-Zustand. Ohne Gate 3 wird kein Feature als „done" akzeptiert.
Warnung

Gates sind Qualitäts-Schwellen, keine Bürokratie. Ein Gate, das regelmäßig übersprungen wird, weil es „zu aufwändig" ist, zeigt an, dass der Handover-Prozess zu schwer ist — nicht, dass das Gate falsch ist. In diesem Fall muss die Tooling-Seite (Skill-Automatisierung, Template-Qualität) verbessert werden.

8Skalierung auf 10–15 Teams

Der Prozess ist auf 10–15 Teams skalierbar ohne strukturellen Umbau. Was sich verändert ist die Kapazität — nicht die Architektur.

Dimension4 Teams (heute)10–15 Teams (Ziel)
Shell-KoordinationPMs koordinieren mündlichDediziertes Platform-Team besitzt Shell und Shared-Lib; Domain-Teams stellen PRs
Pattern-KatalogUX-Lead pflegt alleinePattern-RFC-Prozess: jedes Team kann Patterns vorschlagen; UX-Lead entscheidet
Shared-Lib-VersionenPatch-Bumps nach BedarfSemver mit Minor-Freeze-Fenstern; Breaking Changes ankündigen 2 Sprints vorher
Monorepo-Größe< 50.000 LOCSparse-Checkout per Domain; CI prüft nur betroffene Domains; kein Full-Build nötig
OnboardingUX-Lead erklärt persönlichAutomatisierte Onboarding-Tracks: ux/foundations/abstract.html + Domain-Scaffold-Skript
Review-BottleneckUX-Lead reviewed alle ScreensDomain-eigene UX-Reviewer; UX-Lead nur bei Pattern-Abweichungen und neuen Patterns

Das Skalierungsmodell folgt dem Inner-Source-Muster: Das Platform-Team (Shell + Shared-Lib + UX-Foundations) ist der „Upstream" — gut dokumentiert, hohe Einstiegshürde für Änderungen. Domain-Teams sind Konsumenten und Contributor. Die Koordinationspunkte bleiben dieselben drei, aber ihr Governance-Prozess wird formaler.

Skalierungs-Invariante

Unabhängig von der Teamzahl gilt: ein Eintrittspunkt (Shell), ein Netz (Traefik), ein Pattern-Katalog, eine Shared-Lib, ein Monorepo. Komplexität wächst linear mit Teams, nicht exponentiell — weil die Koordinationspunkte konstant bleiben.

9Alternative 1: Multi-Repo pro Team — und warum sie versagt

Die intuitive Alternative: Jedes Team bekommt ein eigenes Repository. Autonomie ist vollständig, Build-Systeme sind unabhängig, Teams können ohne Rücksicht auf andere deployen. Diese Architektur ist unter bestimmten Bedingungen richtig — aber nicht für eine kohärente Webanwendung, die von Endnutzerinnen als Einheit wahrgenommen werden muss.

Scheinvorteile

  • Kein gemeinsamer Build — Teams deployen unabhängig
  • Kein Merge-Konflikt auf Root-Dateien
  • Technologie-Freiheit pro Team
  • Klare Eigentumsstruktur im Repository

Strukturelle Schwächen

  • Integration bricht bei jedem Deploy — getrennte Repos sehen sich nicht
  • Design-Token-Synchronisation erfordert eigenes Versioning-System
  • Shell muss Remotes über externe URLs finden — Latenz, Verfügbarkeitsrisiko
  • Kein atomares Refactoring über Domänengrenzen
  • Onboarding erfordert Kenntnis aller Repos und ihrer Abhängigkeiten

Das Kernproblem ist der Integrationstest-Blindspot: In getrennten Repos sieht kein automatisierter Test die kombinierte Anwendung. Eine Änderung in Team A kann Team B brechen — und wird es erst in der Integrations­umgebung. In diesem Repository läuft der vollständige Stack mit make up — Playwright-E2E-Tests prüfen die gesamte Anwendung vor jedem Commit.

Einwand für Multi-RepoWiderlegung
„Teams müssen unabhängig deployen können"Unabhängiges Deployment ist orthogonal zur Repository-Struktur. Forward-Container ermöglichen in diesem Repo lokales Dev ohne andere Teams zu stören. Deployment-Unabhängigkeit folgt aus der Remote-Federation-Architektur, nicht aus separaten Repos.
„Merge-Konflikte auf Root-Dateien sind ein Problem"Die Root-Koordinationspunkte (federation.manifest.json, docker-compose.yaml include:) ändern sich selten — bei Onboarding eines neuen Teams, nicht im laufenden Betrieb. Drei Zeilen Merge-Konflikt alle zwei Monate ist kein Argument für Multi-Repo.
„Technologie-Freiheit ist wichtig"Backend-Technologie-Freiheit ist in diesem Repo bereits realisiert: partner-search betreibt Spring und Quarkus simultan (CLAUDE-13). Die einzige Constraint ist der Frontend-Framework-Standard (Angular) — erzwungen durch die shared-library und die Federation-Integration. Diese Constraint ist kein Fehler, sie ist das Design.
Urteil

Multi-Repo pro Team ist geeignet für unabhängige Produkte mit losen Kopplungen (Microservices ohne gemeinsames UI, separate mobile Apps). Für eine kohärente Webanwendung mit geteilter UX, geteilten Komponenten und einem gemeinsamen Routing-Graph ist Multi-Repo eine Wahl für Autonomie auf Kosten von Kohärenz — und die Endnutzerin zahlt den Preis.

10Alternative 2: Design-System-First ohne Prototyping — und ihre Risiken

Die zweite Alternative: Ein zentrales Design-System-Team liefert zuerst den vollständigen Komponentenkatalog — Farben, Typografie, Buttons, Inputs, Tables — und Domain-Teams bauen darauf auf. Kein Prototyping, kein laufender Beweis. Erst Tokens, dann Screens.

Scheinvorteile

  • Konsistenz durch Atomic Design erzwungen
  • Bekannte Methodik (Storybook-driven)
  • Designsystem kann vorgezogen werden
  • Klare Trennung: Design-System-Team vs. Feature-Teams

Strukturelle Schwächen

  • Keine Interaktionsvalidierung vor Sprint 1
  • Token-Spec ohne Kontext: Welche Tokens werden gebraucht?
  • Design-System-Team wird Bottleneck für jeden Screen
  • Spaltung zwischen DS-Team und Domänenwissen

Das strukturelle Problem: Ein Designsystem, das vor den Screens gebaut wird, enthält Komponenten ohne Kontext. Welcher Button-Zustand ist nötig? Welche Tabellenvariante? Das entscheidet sich erst im Screen — aber der Screen existiert noch nicht. Das Design-System-Team rät oder baut auf Verdacht. Ergebnis: entweder ein überentwickeltes System mit 40 Komponentenvarianten, von denen 30 nie benutzt werden, oder ein unterentwickeltes System, das die Domain-Teams zur Kompensation zwingt.

Der Ansatz in diesem Repository kehrt die Reihenfolge um: Foundations und Pattern-Katalog kommen zuerst (als Markdown und SVG, kein Code), dann die Screen-Spec, dann der Prototyp, dann die Storybook-Story, dann das Angular-Komponent. Das Designsystem entsteht aus dem Prototypen — nicht vor ihm. Jede Storybook-Story ist der Beweis, dass eine Komponente real gebraucht wird.

Einwand für Design-System-FirstWiderlegung
„Ohne Designsystem baut jeder seine eigenen Buttons"Der Pattern-Katalog (ux/patterns/) und das figma-make-prompt.md-Format erzwingen Konsistenz ohne vollständiges Designsystem. Das Designsystem (@traefik-microstack/shared) wächst organisch mit den Screens — es enthält keine Komponente, die nicht gebraucht wird.
„Iterationen im Prototypen sind teuer"Eine Preact-Komponente zu iterieren kostet Stunden. Eine Angular-Komponente, die in Produktion ist, zu iterieren kostet Sprints. Der Prototyp ist deshalb billig — nicht trotzdem, sondern weil er kein Produktionscode ist.
Urteil

Design-System-First ist geeignet, wenn das Designsystem ein eigenständiges Produkt ist (Material Design, Carbon Design System, Tailwind). Für eine produktgebundene Webanwendung ist es Wasserfall-Risiko: Das System wird gebaut, bevor die Anforderungen durch echtes Prototyping sichtbar sind.

11Alternative 3: Unstrukturierter Freestyle — die stille Katastrophe

Die dritte Alternative existiert selten als bewusste Entscheidung. Sie entsteht durch Abwesenheit: kein expliziter UX-Prozess, kein Pattern-Katalog, kein Handover-Kanal. Jedes Team baut nach eigenem Ermessen, stimmt sich gelegentlich per Slack ab und hofft auf Kohärenz.

Freestyle ist die dominante Praxis in Projekten ohne UX-Architektur — und der häufigste Grund für „wir müssen das Frontend komplett neu bauen" nach 18 Monaten. Die Pathologien sind bekannt:

Typische Freestyle-RechtfertigungWas sie tatsächlich bedeutet
„Wir sind agil — wir brauchen kein Upfront-Design"Agilität bedeutet frühe Feedback-Loops, nicht Abwesenheit von Koordination. PGE ist agiler als Freestyle, weil der Prototyp früher Feedback ermöglicht als die fertige Implementierung.
„Jedes Team kennt seine Nutzerinnen am besten"Das stimmt für Domänenwissen. Es stimmt nicht für Interaktionsmuster — die Nutzerin ist dieselbe Person in allen Domains und erwartet Kohärenz.
„Pattern-Kataloge werden nicht gelesen"Pattern-Kataloge, die als 200-seitige PDFs ausgeliefert werden, werden nicht gelesen. MDX-Dateien mit Beispiel-Code und laufenden Storybook-Stories werden genutzt. Das Format entscheidet.
Urteil

Unstrukturierter Freestyle ist kurzfristig der schnellste Weg zum ersten Demo-Sprint. Er ist langfristig der teuerste Weg zur kohärenten Anwendung — weil die Konsolidierungsschuld mit jeder Sprint-Iteration wächst und nie abbezahlt wird, solange Features priorisiert werden.

12Bekannte Einwände und Mitigationen

Vollständig mitigiert

EinwandMitigation
„figma-make-prompt.md ist zu aufwändig zu schreiben"Das Format ist einmalig zu lernen und dann templatesierbar. Der /prototype-Skill und /wireframe-from-screenshot generieren Entwürfe automatisch. Ein vollständiges Dokument wie das sachbearbeiter-dashboard entsteht in einem halben Arbeitstag.
„Preact-SPA ist überflüssig wenn wir schon HTML-Frames haben"HTML-Frames prüfen Visuelles. Die Preact-SPA prüft Interaktion: Token-Auflösung, Panel-Übergänge, Keyboard-Flows. Diese können in statischen Frames nicht getestet werden. Beide Artefakte sind komplementär, nicht redundant.
„Storybook ist ein zweites System neben Angular"Storybook rendert Angular-Komponenten. Es ist kein zweites System — es ist der Test-Harness für UI-Komponenten. Eine Komponente, die keine Story hat, kann nicht gegen das Pattern validiert werden.
„Das Monorepo wird zu langsam"Docker-Layer-Caching, Maven-Mirror (Reposilite), npm-Mirror (Verdaccio) und Sparse-Checkout halten Build-Zeiten bei Wachstum beherrschbar. Das Repository hat diese Infrastruktur bereits in infrastructure/build-services/.

Teilweise mitigiert

EinwandMitigation
„UX-Lead wird Bottleneck bei 10+ Teams"Teilweise gelöst durch dezentrale UX-Reviewer pro Domain-Cluster. Aber: Neue Patterns müssen weiterhin durch den UX-Lead freigegeben werden — das ist beabsichtigt, nicht ein Fehler. Echte Skalierung erfordert ein UX-Gremium statt einer Person.
„Domain-Teams können die Pattern-Grenzen nicht immer einhalten"Pattern-Grenzen werden durch Storybook-Reviews erzwungen, nicht durch Willenskraft. Aber Storybook-Reviews sind manuell. Automatisierte Visual-Regression-Tests (z.B. Chromatic) würden diesen Punkt vollständig mitigieren — das ist offen.

Echte Spannungen — anerkannt, nicht aufgelöst

SpannungEhrliche Position
Prototyp-Technologie (Preact) und Produktions-Technologie (Angular) sind verschiedenDie Divergenz ist beabsichtigt: Der Prototyp muss leichtgewichtig und schnell änderbar sein. Angular-Overhead in der Prototyping-Phase verlangsamt Iterationen. Die Konversion kostet Arbeit — sie ist aber einmalig und gut dokumentiert durch die Storybook-Brücke.
figma-make-prompt.md ist nicht mit Figma-Exportformaten kompatibelDas Dokument ist bewusst kein Figma-Export. Es ist eine strukturierte Spezifikation, die menschlich und maschinell lesbar ist. Wer Figma als primäres Design-Tool beibehält, muss einen Übersetzungsschritt einplanen. Der Ansatz ist Figma-agnostisch — das ist eine Stärke, schafft aber Reibung bei Teams, die Figma-native arbeiten.

13Empfohlene Aufbaureihenfolge

Die Abhängigkeiten sind strikt. Foundations vor Patterns, Patterns vor Screens, Screens vor Implementierung. Dieser Ordnung zu folgen spart mehr Zeit als sie kostet.

Phase 1 — Foundation (Woche 1–3, alle Teams + UX-Lead)

  1. Mentale Modelle der Zielnutzerin dokumentieren: Konzepte, Arbeitsweisen, Vokabular — nach dem Muster von ux/foundations/clerk-mental-model.md.
  2. Drei bis fünf Kernmetaphern identifizieren und in ux/foundations/ festhalten. Keine UI-Arbeit, bevor diese stabil sind.
  3. Design-Tokens definieren: Farben, Typografie, Abstands­gitter — als benannte Variablen in einem Token-Dokument.
  4. Ersten Pattern-Entwurf für die häufigsten Interaktionen erstellen (ux/patterns/).

Phase 2 — Proof of Concept (Woche 3–6, UX-Team + je 1 Architektin pro Team)

  1. Ersten Screen als figma-make-prompt.md vollständig spezifizieren.
  2. /prototype-Skill ausführen: HTML-Frames für PO-Review.
  3. Preact-SPA mit Kerninteraktionen aufbauen — kein API, kein Auth, Hardcoded-Daten.
  4. API-Kontrakt aus der SPA ableiten: Welche Endpunkte braucht der Screen?
  5. Erste Storybook-Story für eine Komponente — beweist die Pipeline.

Phase 3 — Parallele Domain-Entwicklung (ab Woche 6, alle Teams)

  1. Jedes Team bekommt seinen Ordner und seine drei Koordinationspunkte eingerichtet.
  2. Teams entwickeln gegen eigene Screen-Specs — alle durch Gates 1–3 qualifiziert.
  3. Shared-Lib wächst organisch: neue Komponenten, wenn mindestens zwei Teams sie brauchen.
  4. E2E-Tests (tests/) wachsen mit jedem neuen Route/API-Endpunkt.

Phase 4 — Skalierung (ab Team 5+)

  1. Platform-Team formalisieren: Shell + Shared-Lib + UX-Foundations als eigenständiger Verantwortungsbereich.
  2. Pattern-RFC-Prozess einführen: Neue Patterns werden vorgeschlagen, reviewed, merged — nicht einseitig entschieden.
  3. Sparse-Checkout und CI-Domain-Segmentierung einrichten.
  4. Onboarding-Track automatisieren: Domain-Scaffold-Skript, abstract.html-Einführung, Pair-Session mit Platform-Team.

LitLiteratur

Quellen: ux/DOMAIN.md · ux/foundations/clerk-mental-model.md · ux/foundations/single-screen-rationale.md · ux/patterns/ · ux/screens/sachbearbeiter-dashboard/figma-make-prompt.md · ux/prototype/app/ · platform/shell/src/environments/federation.manifest.json · platform/shared/public-api.ts · docker-compose.yaml · .claude/agents/developing-in-domain.md · CLAUDE.md (CLAUDE-13, CLAUDE-16)