Update index.html
This commit is contained in:
parent
c87b0b1775
commit
38c4a948ca
1 changed files with 491 additions and 19 deletions
|
|
@ -38,10 +38,12 @@
|
||||||
header .brand b { color: var(--accent); }
|
header .brand b { color: var(--accent); }
|
||||||
header .tag { font-size: 12px; color: var(--muted); border:1px solid var(--line); padding:2px 8px; border-radius:999px; }
|
header .tag { font-size: 12px; color: var(--muted); border:1px solid var(--line); padding:2px 8px; border-radius:999px; }
|
||||||
header .spacer { flex: 1; }
|
header .spacer { flex: 1; }
|
||||||
|
.scenario { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
|
||||||
.scenario select, button {
|
.scenario select, button {
|
||||||
font: inherit; border-radius: 10px; border: 1px solid var(--line);
|
font: inherit; border-radius: 10px; border: 1px solid var(--line);
|
||||||
background: #fff; color: var(--ink); padding: 8px 12px; cursor: pointer;
|
background: #fff; color: var(--ink); padding: 8px 12px; cursor: pointer;
|
||||||
}
|
}
|
||||||
|
.scenario select { max-width: 260px; }
|
||||||
button.primary { background: var(--accent); color: #fff; border-color: var(--accent); font-weight: 600; }
|
button.primary { background: var(--accent); color: #fff; border-color: var(--accent); font-weight: 600; }
|
||||||
button.ghost { background: #fff; }
|
button.ghost { background: #fff; }
|
||||||
button:disabled { opacity: .45; cursor: default; }
|
button:disabled { opacity: .45; cursor: default; }
|
||||||
|
|
@ -72,6 +74,8 @@
|
||||||
.stationId { color: var(--muted); font-size: 14px; }
|
.stationId { color: var(--muted); font-size: 14px; }
|
||||||
.token { font-size:13px; color:var(--muted); margin-top:10px; }
|
.token { font-size:13px; color:var(--muted); margin-top:10px; }
|
||||||
.token b { color: var(--ink); }
|
.token b { color: var(--ink); }
|
||||||
|
.ctChip { display:inline-block; margin-left:6px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--accent); border:1px solid var(--accent); border-radius:999px; padding:2px 9px; vertical-align:middle; }
|
||||||
|
.ctText { margin-top:8px; font-size:14px; color:var(--ink); background:#fff7f7; border-left:3px solid var(--accent); border-radius:8px; padding:10px 14px; max-width:760px; }
|
||||||
|
|
||||||
.step { margin-top: 22px; }
|
.step { margin-top: 22px; }
|
||||||
.stepHead { display:flex; align-items:center; gap:10px; font-size:12px; text-transform:uppercase; letter-spacing:.8px; color:var(--muted); margin-bottom:10px; }
|
.stepHead { display:flex; align-items:center; gap:10px; font-size:12px; text-transform:uppercase; letter-spacing:.8px; color:var(--muted); margin-bottom:10px; }
|
||||||
|
|
@ -98,7 +102,7 @@
|
||||||
table.raci { width:100%; border-collapse: collapse; font-size:14px; }
|
table.raci { width:100%; border-collapse: collapse; font-size:14px; }
|
||||||
table.raci th, table.raci td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); }
|
table.raci th, table.raci td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--line); }
|
||||||
table.raci th { color:var(--muted); font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:.5px; }
|
table.raci th { color:var(--muted); font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:.5px; }
|
||||||
.raciBadge { display:inline-block; min-width:22px; text-align:center; font-weight:700; border-radius:6px; padding:2px 6px; font-size:12px; }
|
.raciBadge { display:inline-block; min-width:22px; text-align:center; font-weight:700; border-radius:6px; padding:2px 6px; font-size:12px; background:#eef0f3; color:#5a6675; }
|
||||||
.raci-A { background:#fbe3e3; color:#b5202a; }
|
.raci-A { background:#fbe3e3; color:#b5202a; }
|
||||||
.raci-R { background:#e3eefb; color:#1f5fae; }
|
.raci-R { background:#e3eefb; color:#1f5fae; }
|
||||||
.raci-C { background:#fff1dd; color:#b5701a; }
|
.raci-C { background:#fff1dd; color:#b5701a; }
|
||||||
|
|
@ -127,7 +131,8 @@
|
||||||
<div class="brand">SLC <b>Companion</b></div>
|
<div class="brand">SLC <b>Companion</b></div>
|
||||||
<span class="tag">Prototyp · v0.4</span>
|
<span class="tag">Prototyp · v0.4</span>
|
||||||
<div class="scenario">
|
<div class="scenario">
|
||||||
<select id="scenarioSel" title="Action Card / Szenario"></select>
|
<select id="serviceSel" title="Service (Action Card)"></select>
|
||||||
|
<select id="changeSel" title="Change-Typ"></select>
|
||||||
</div>
|
</div>
|
||||||
<div class="spacer"></div>
|
<div class="spacer"></div>
|
||||||
<button class="ghost" id="resetBtn" title="Durchlauf zurücksetzen">Zurücksetzen</button>
|
<button class="ghost" id="resetBtn" title="Durchlauf zurücksetzen">Zurücksetzen</button>
|
||||||
|
|
@ -156,9 +161,11 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
/* =========================================================================
|
/* =========================================================================
|
||||||
BEISPIELDATEN — Auszug aus den Lifecycle-YAMLs (Design, Gate 1, Operation).
|
STATIONEN — vollständiger Lifecycle, abgeleitet aus den Blueprint-YAMLs
|
||||||
Im Echtbetrieb generiert ein Build-Skript questions.json aus
|
(service-lifecycle_design/transition/operation/support/review.yaml v3.2 +
|
||||||
service-lifecycle_*.yaml + spm_rollen.yaml (keine Doppelpflege).
|
spm_rollen.yaml). Reihenfolge: Design → Transition (inkl. Gate 1–3) →
|
||||||
|
Operation ⇄ Support → Review. Quiz-Fragen sind vermittelnd formuliert.
|
||||||
|
Im Echtbetrieb generiert ein Build-Skript questions.json aus den YAMLs.
|
||||||
========================================================================= */
|
========================================================================= */
|
||||||
const ROLLEN = {
|
const ROLLEN = {
|
||||||
spm:"Service-Portfolio-Manager", sor:"Service Operations Runde (SOR)",
|
spm:"Service-Portfolio-Manager", sor:"Service Operations Runde (SOR)",
|
||||||
|
|
@ -178,10 +185,69 @@ const PHASEN = {
|
||||||
support:{label:"Support", color:"var(--support)"},
|
support:{label:"Support", color:"var(--support)"},
|
||||||
review:{label:"Review", color:"var(--review)"}
|
review:{label:"Review", color:"var(--review)"}
|
||||||
};
|
};
|
||||||
const SZENARIEN = [
|
/* Action Cards: 6 Services × 5 Change-Typen (aus „Use Cases mit möglichen Changes"). */
|
||||||
"Neues Fachverfahren wird eingeführt",
|
const CHANGE_TYPES = [
|
||||||
"Cloud-Migration eines Bestandsservices",
|
"Major Change – Top-Level",
|
||||||
"Strategiewechsel: Service soll abgelöst werden"
|
"Major Change – Low Level",
|
||||||
|
"Normal Change",
|
||||||
|
"Standard Change",
|
||||||
|
"Emergency Change"
|
||||||
|
];
|
||||||
|
const USE_CASES = [
|
||||||
|
{ service:"Zentrale VDI (Virtual-Desktop-Infrastructure)",
|
||||||
|
desc:"Bereitstellung von virtuellen Windows-Desktops über das interne Rechenzentrum.",
|
||||||
|
changes:[
|
||||||
|
"Strategische IT-Richtlinie auf Geheiß des OB, die den Umstieg von einer proprietären VDI-Lösung auf eine Open-Source-Alternative (z. B. OpenStack + Thin-Client) vorschreibt.",
|
||||||
|
"Das Bauamt fordert die Einführung einer neuen Fachsoftware (z. B. ein GIS-Tool), die auf dem virtuellen Desktop zugänglich sein soll.",
|
||||||
|
"Rebranding des Logos der Stadt Freiburg: Anpassung der Desktop-Hintergrundgrafik erforderlich.",
|
||||||
|
"Quartalsweises Update der VDI-Host-Hypervisor-Firmware – im Standard-Change-Katalog verankert.",
|
||||||
|
"Stromausfall: Ausfall eines VDI-Host-Clusters, der die sofortige Migration der Sitzungen auf ein Backup-Cluster erfordert."
|
||||||
|
]},
|
||||||
|
{ service:"Managed VPN-Access Service",
|
||||||
|
desc:"Zentral verwalteter VPN-Dienst, der Mitarbeitenden der Fachämter sicheren Remote-Zugriff auf interne Systeme (Intranet, Fachanwendungen, Datenbanken) ermöglicht.",
|
||||||
|
changes:[
|
||||||
|
"EU-weite neue Datenschutz- oder IT-Sicherheitsverordnung, die die gesamte VPN-Architektur neu gestaltet.",
|
||||||
|
"HPA fordert die Einführung einer neuen Authentifizierungsmethode (z. B. verpflichtende Nutzung von FIDO2-Security-Keys).",
|
||||||
|
"HPA möchte eine interne Anwendung (z. B. ein neues Intranet-Portal) in die Split-Tunnel-Liste ergänzen, weil Nutzer nun von zu Hause darauf zugreifen müssen.",
|
||||||
|
"Regelmäßige (monatliche) Firmware-Updates der VPN-Appliance, bereits im Change-Katalog als Standard-Change definiert.",
|
||||||
|
"Erfolgreicher Phishing-Angriff: Eine VPN-Benutzerzertifikatskette ist kompromittiert – sofortige Sperrung und Neu-Ausstellung der Zertifikate erforderlich."
|
||||||
|
]},
|
||||||
|
{ service:"Online-Bürgerportal für Meldungen & Anträge",
|
||||||
|
desc:"Zentrales Web-Portal, über das Bürger*innen Meldungen (z. B. Straßenreparatur, Lärm) und Anträge (z. B. Baugenehmigung, Personalausweis) digital einreichen und den Status verfolgen.",
|
||||||
|
changes:[
|
||||||
|
"Neues Landesgesetz zur digitalen Bürgerbeteiligung (z. B. verpflichtende Online-Beteiligungs-Tools für größere Baumaßnahmen) → komplette Erweiterung des Portals um Beteiligungs-Module.",
|
||||||
|
"Neuer Gemeinderat fordert Einführung eines neuen Meldetyps (z. B. „Klimaschutz-Meldungen“) durch das Umweltamt – neue Formulare und Workflows erforderlich.",
|
||||||
|
"Bürgerservice meldet Rechtschreibfehler in einem statischen Hinweis-Text, der geändert werden muss.",
|
||||||
|
"Monatliches Sicherheits-Patch-Update des Web-Servers (Apache/Nginx) – bereits im Change-Katalog definiert.",
|
||||||
|
"Entdeckung einer kritischen XSS-Lücke in einem Eingabe-Formular, die eine sofortige Hot-Fix-Implementierung nötig macht."
|
||||||
|
]},
|
||||||
|
{ service:"Zentrales Dokumenten-Management-System (DMS)",
|
||||||
|
desc:"Elektronisches Archiv, das alle ein- und ausgehenden Dokumente (PDF, Scans, E-Mails) zentral speichert, versioniert und revisionssicher archiviert.",
|
||||||
|
changes:[
|
||||||
|
"EU-DSGVO-Ergänzung (z. B. neue Vorgaben zur Daten-Minimierung) → komplette Neugestaltung des Metadaten-Modells und der Archivierungs-Policies.",
|
||||||
|
"Einführung eines neuen Fachverfahrens (z. B. „Bürgerbeteiligungs-Verfahren“), das eigene Dokumenten-Klassen und Workflows erfordert.",
|
||||||
|
"Rückmeldung aus dem Finanzamt: Ein Metadaten-Feld (z. B. neues Dropdown-Feld „Kostenstelle“) muss angepasst werden.",
|
||||||
|
"Quartalsweises Update der DMS-Software-Version (Sicherheits- und Funktions-Patches) – im Standard-Change-Katalog.",
|
||||||
|
"Ransomware-Alarm: Verdächtige Verschlüsselung von Dokumenten – sofortige Isolation des Storage-Systems und Wiederherstellung aus letzten Snapshots."
|
||||||
|
]},
|
||||||
|
{ service:"Kommunales GIS-Portal (Geoinformations-System)",
|
||||||
|
desc:"Web-basiertes Karten- und Analyse-Portal, das Fachämtern (Bau, Umwelt, Verkehr) räumliche Daten (Flurstücke, Infrastruktur, Umweltzonen) und bearbeitbare Layer bereitstellt.",
|
||||||
|
changes:[
|
||||||
|
"Bundesweite Vorgabe zur Nutzung von EU-Standards → komplette Migration des GIS-Stacks zu konformen Services und Datenmodellen.",
|
||||||
|
"Das Umweltamt möchte ein neues Analyse-Modul (z. B. „Klimarisiko-Analyse“) einführen, das neue Daten-Layer und Rechen-Ressourcen erfordert.",
|
||||||
|
"Rückmeldung aus dem Bauamt: Korrektur einer falschen Beschriftung eines Karten-Layers.",
|
||||||
|
"Monatliches Update der GIS-Software (z. B. GeoServer 2.23 → 2.24) – im Standard-Change-Katalog definiert.",
|
||||||
|
"Entdeckung einer kritischen Schwachstelle an einer Schnittstelle, die unautorisierten Datenzugriff ermöglicht → sofortige Deaktivierung des Dienstes und Patch-Roll-out."
|
||||||
|
]},
|
||||||
|
{ service:"Beschaffungs- und Vertrags-System für Fachämter",
|
||||||
|
desc:"Web-Applikation, über die Fachämter interne Beschaffungen (Material, Dienstleistungen) anlegen, prüfen und Verträge digital verwalten.",
|
||||||
|
changes:[
|
||||||
|
"Neue EU-Vergaberichtlinie zwingt zur Einführung von e-Invoicing und erweiterten Transparenz-Reports.",
|
||||||
|
"Einführung eines neuen Lieferanten-Portals (z. B. für Badenova), das neue API-Schnittstellen und Authentifizierungs-Flows erfordert.",
|
||||||
|
"Rückmeldung aus dem Finanzamt: Anpassung eines Formular-Labels (z. B. „Kostenstelle“ → „Kostenstelle (4-stellig)“).",
|
||||||
|
"Quartalsweises Sicherheits-Patch-Update des Anwendungs-Servers – bereits im Change-Katalog.",
|
||||||
|
"Entdeckung einer kritischen Schwachstelle im Vertrags-Upload-Modul, die das Hochladen von Schadcode ermöglicht → sofortige Deaktivierung des Upload-Endpoints und Hot-Fix."
|
||||||
|
]}
|
||||||
];
|
];
|
||||||
|
|
||||||
const STATIONEN = [
|
const STATIONEN = [
|
||||||
|
|
@ -200,7 +266,7 @@ const STATIONEN = [
|
||||||
expl:"Die Service-Definition ist das zentrale Artefakt der Design-Phase."}
|
expl:"Die Service-Definition ist das zentrale Artefakt der Design-Phase."}
|
||||||
]},
|
]},
|
||||||
{ id:"ds_02", phase:"design", typ:"aktivitaet",
|
{ id:"ds_02", phase:"design", typ:"aktivitaet",
|
||||||
name:"Designen der Service- und Service-Management-Komponenten",
|
name:"Designen der erforderlichen Service- und Service-Management-Komponenten",
|
||||||
beschreibung:"Einarbeiten der Service-Eigenschaften in ein vollständiges Designmodell.",
|
beschreibung:"Einarbeiten der Service-Eigenschaften in ein vollständiges Designmodell.",
|
||||||
umfasst:["Servicearchitektur (Komponenten, Schnittstellen)","Design der Betriebs- & Supportprozesse","Sicherheit/Compliance/Datenschutz","Monitoring & Reporting","Rollenmodell"],
|
umfasst:["Servicearchitektur (Komponenten, Schnittstellen)","Design der Betriebs- & Supportprozesse","Sicherheit/Compliance/Datenschutz","Monitoring & Reporting","Rollenmodell"],
|
||||||
artefakt:"Service Design Document",
|
artefakt:"Service Design Document",
|
||||||
|
|
@ -256,6 +322,151 @@ const STATIONEN = [
|
||||||
optionen:["Go oder Stop","Intern oder Extern","Entwicklung oder Konfiguration","Test oder Release"], richtig:2,
|
optionen:["Go oder Stop","Intern oder Extern","Entwicklung oder Konfiguration","Test oder Release"], richtig:2,
|
||||||
expl:"Entwicklung (tr_02) vs. Konfiguration (tr_05) — Konfiguration überspringt tr_02–tr_04."}
|
expl:"Entwicklung (tr_02) vs. Konfiguration (tr_05) — Konfiguration überspringt tr_02–tr_04."}
|
||||||
]},
|
]},
|
||||||
|
{ id:"tr_02", phase:"transition", typ:"aktivitaet",
|
||||||
|
name:"Koordinieren der Entwicklungs- und Beschaffungsaktivitäten",
|
||||||
|
beschreibung:"Steuern der Entwicklungsaktivitäten im Projekt.",
|
||||||
|
umfasst:["Abstimmung mit Lieferanten","Ressourcenplanung","Termin- und Budgetnachführung","Sicherstellung von Change-Kontrollen","Definition von Build- und Konfigurationspaketen"],
|
||||||
|
artefakt:"Projektsteuerung / Build- & Konfigurationspakete",
|
||||||
|
raci:[["projektleitung","A"],["architektur","C"],["service_owner","I"],["lieferant","C/I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer trägt die Ergebnisverantwortung (A) für die Koordination der Entwicklung?",
|
||||||
|
optionen:["Projektleitung","Architektur","Service Owner","Lieferant"], richtig:0,
|
||||||
|
expl:"Die Projektleitung ist Accountable; Architektur berät (C), der Service Owner ist informiert (I)."}
|
||||||
|
]},
|
||||||
|
{ id:"tr_03", phase:"transition", typ:"aktivitaet",
|
||||||
|
name:"Entwickeln von Anwendungen und Systemen",
|
||||||
|
beschreibung:"Realisierung der technischen Service-Komponenten.",
|
||||||
|
umfasst:["Softwareentwicklung","Customizing","Schnittstellenentwicklung","Infrastrukturaufbau","Versionierung & Dokumentation","Testdaten & Migrationspfade vorbereiten"],
|
||||||
|
artefakt:"Entwickelte Service-Komponenten",
|
||||||
|
raci:[["projektleitung","A"],["projektteam","R"],["lieferant","R"],["service_owner","C"],["architektur","C"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer führt die Entwicklung operativ aus (R)?",
|
||||||
|
optionen:["SPM","Projektteam bzw. Lieferant","Service Owner","Testmanagement"], richtig:1,
|
||||||
|
expl:"Projektteam (intern) und Lieferant (extern) sind Responsible; die Projektleitung bleibt Accountable."}
|
||||||
|
]},
|
||||||
|
{ id:"tr_04", phase:"transition", typ:"aktivitaet",
|
||||||
|
name:"Entgegennehmen der Service-Komponenten",
|
||||||
|
beschreibung:"Qualitätssicherung beim Übergang von der Entwicklung zur Testphase.",
|
||||||
|
umfasst:["Eingangskontrolle","Prüfung von Vollständigkeit / Qualität","Sicherstellung der Dokumentationen","Übergabe an Testmanagement"],
|
||||||
|
artefakt:"Abgenommene Service-Komponenten",
|
||||||
|
raci:[["service_owner","A"],["projektleitung","R"],["testmanagement","R"],["lieferant","C"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"An wen werden die entgegengenommenen Komponenten übergeben?",
|
||||||
|
optionen:["An den Betrieb","An das Testmanagement","An die SOR","An das SPM"], richtig:1,
|
||||||
|
expl:"tr_04 ist die Qualitätssicherung beim Übergang in die Testphase — Übergabe an das Testmanagement."}
|
||||||
|
]},
|
||||||
|
{ id:"tr_05", phase:"transition", typ:"aktivitaet",
|
||||||
|
name:"Konfiguration der Service-Komponenten",
|
||||||
|
beschreibung:"Einrichtung von Konfigurationsparametern, Settings, Rollen und Zugängen. Einstiegspunkt bei Gate-1-Entscheidung Konfiguration (überspringt tr_02–tr_04).",
|
||||||
|
umfasst:["Setup von Parametern, Policies, Templates","Toolkonfiguration (ITSM-Systeme, Monitoring)","Anpassung bestehender Komponenten","Verknüpfung mit Service-Katalog / Portfolio"],
|
||||||
|
artefakt:"Konfigurierte Service-Komponenten",
|
||||||
|
raci:[["service_owner","A"],["projektteam","R"],["betriebsteam","C"],["service_support_team","C"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Bei welcher Gate-1-Entscheidung ist tr_05 der Einstiegspunkt?",
|
||||||
|
optionen:["Entwicklung","Konfiguration","Ablehnung","Go-Live"], richtig:1,
|
||||||
|
expl:"Bei der Entscheidung Konfiguration werden tr_02–tr_04 übersprungen und direkt bei tr_05 eingestiegen."}
|
||||||
|
]},
|
||||||
|
{ id:"tr_06", phase:"transition", typ:"aktivitaet",
|
||||||
|
name:"Erstellen oder Aktualisieren der Betriebs-Dokumentation",
|
||||||
|
beschreibung:"Alle Betriebsunterlagen werden erstellt oder aktualisiert.",
|
||||||
|
umfasst:["Service Operation Manual","Supportanleitungen","Monitoring-Spezifikationen","Eskalationswege","Standard Changes","Konfigurations-/Betriebsrichtlinien"],
|
||||||
|
artefakt:"Betriebsdokumentation (Service Operation Manual)",
|
||||||
|
raci:[["service_owner","A"],["projektteam","R"],["betriebsteam","C"],["service_support_team","C"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Welches Artefakt entsteht hier vor allem?",
|
||||||
|
optionen:["Service-Definition","Betriebsdokumentation (Service Operation Manual)","Gate-Vorlage","Review-Bericht"], richtig:1,
|
||||||
|
expl:"tr_06 erstellt/aktualisiert alle Betriebsunterlagen (u.a. Service Operation Manual, Supportanleitungen)."}
|
||||||
|
]},
|
||||||
|
{ id:"tr_07", phase:"transition", typ:"aktivitaet",
|
||||||
|
name:"Testen der Service-Komponenten",
|
||||||
|
beschreibung:"Verifizierung, dass alle Servicekomponenten funktionsfähig und betriebsbereit sind.",
|
||||||
|
umfasst:["Funktionstests","Integrationstests","Abnahmetests","Nachweis der Betriebsreife","Testprotokolle & Freigaben"],
|
||||||
|
artefakt:"Testprotokolle & Freigaben",
|
||||||
|
raci:[["projektleitung","A"],["testmanagement","R"],["service_owner","C"],["lieferant","C/I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer ist Responsible (R) für das Testen der Komponenten?",
|
||||||
|
optionen:["Projektleitung","Testmanagement","Service Owner","Betriebsteam"], richtig:1,
|
||||||
|
expl:"Das Testmanagement ist Responsible; die Projektleitung ist Accountable."}
|
||||||
|
]},
|
||||||
|
{ id:"tr_08", phase:"transition", typ:"aktivitaet",
|
||||||
|
name:"Formale Übergabe (Build abgeschlossen)",
|
||||||
|
beschreibung:"Der Build ist abgeschlossen. Alle Artefakte werden für die Entry-Prüfung (Gate 2) bereitgestellt.",
|
||||||
|
umfasst:["Bereitstellung aller Betriebsunterlagen","Bereitstellung der Testprotokolle","Dokumentierter Übergabe-Termin","Vorbereitung Gate-2-Antrag"],
|
||||||
|
artefakt:"Übergabepaket (Gate-2-Antrag)",
|
||||||
|
raci:[["projektleitung","A"],["service_owner","R"],["betriebsteam","C"],["service_support_team","C"],["spm","I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Worauf bereitet die formale Übergabe (Build abgeschlossen) vor?",
|
||||||
|
optionen:["Gate 1","Gate 2","Gate 3","ELS-Exit"], richtig:1,
|
||||||
|
expl:"tr_08 stellt alle Artefakte für die Entry-Prüfung an Gate 2 (tr_09) bereit."}
|
||||||
|
]},
|
||||||
|
{ id:"tr_09", phase:"transition", typ:"gate", gateNr:2,
|
||||||
|
name:"Gate 2: Entry-Prüfung nach Build",
|
||||||
|
beschreibung:"Validierung der Übergabefähigkeit nach Abschluss des Builds. Dies ist eine SO-Einzelentscheidung (keine Gremienentscheidung).",
|
||||||
|
umfasst:["Prüfung der Übergabe-Vollständigkeit","Prüfung des Abnahme-Status","Ressourcen-Outlook (Betrieb/Support vorbereitet)","Pilot-Entscheidung (falls erforderlich)","Dokumentation im Transition-Steckbrief"],
|
||||||
|
artefakt:"Gate-2-Entscheidung (Transition-Steckbrief)",
|
||||||
|
pfade:[
|
||||||
|
["Freigabe","Weiter zu den Deploy-Aktivitäten → tr_10"],
|
||||||
|
["Freigabe mit Auflagen","Weiter, definierte Punkte müssen nachgearbeitet werden"],
|
||||||
|
["Zurück an Build","Nachbesserung erforderlich → tr_02 (ggf. tr_05–tr_07)"],
|
||||||
|
["Ablehnung","Endgültige Ablehnung — erfordert SOR-Eskalation"]
|
||||||
|
],
|
||||||
|
pruef:[
|
||||||
|
["Übergabe-Vollständigkeit","Sind alle Artefakte vorhanden?"],
|
||||||
|
["Abnahme-Status","Liegt die Auftraggeber-Abnahme vor?"],
|
||||||
|
["Ressourcen-Outlook","Sind Betrieb und Support prinzipiell vorbereitet?"],
|
||||||
|
["Pilot-Entscheidung","Ist ein Pilotbetrieb erforderlich?"]
|
||||||
|
],
|
||||||
|
raci:[["service_owner","A"],["projektleitung","R"],["betriebsteam","C"],["service_support_team","C"],["spm","I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer entscheidet an Gate 2 (Accountable)?",
|
||||||
|
optionen:["SOR-Gremium","Service Owner allein","SPM","Projektleitung"], richtig:1,
|
||||||
|
expl:"Gate 2 ist eine SO-Einzelentscheidung; bei Ablehnung erfolgt SOR-Eskalation."},
|
||||||
|
{frage:"Was prüft Gate 2 vor allem?",
|
||||||
|
optionen:["Die Budgetfreigabe für das Design","Die Übergabefähigkeit nach dem Build","Die Portfolio-Strategie","Die Incident-Quote"], richtig:1,
|
||||||
|
expl:"Gate 2 validiert die Übergabefähigkeit nach Abschluss des Builds (Vollständigkeit, Abnahme, Ressourcen)."}
|
||||||
|
]},
|
||||||
|
{ id:"tr_10", phase:"transition", typ:"aktivitaet",
|
||||||
|
name:"Ausrollen der Service-Komponenten",
|
||||||
|
beschreibung:"Technische Bereitstellung/Deployment des Services in die produktive Umgebung.",
|
||||||
|
umfasst:["Deployment von Anwendungen, Systemen, Komponenten","Konfiguration produktiver Systeme","Migration von Daten","Aktivierung von Monitoring","Zugänge, Rollen, Berechtigungen","Schnittstellen-Integration","Technische Abnahmetests"],
|
||||||
|
artefakt:"Ausgerollter Service (produktiv)",
|
||||||
|
raci:[["service_owner","A"],["betriebsteam","R"],["spm","C"],["lieferant","C/I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer rollt die Service-Komponenten aus (R)?",
|
||||||
|
optionen:["Betriebsteam","Projektteam","Testmanagement","SPM"], richtig:0,
|
||||||
|
expl:"Das Betriebsteam ist Responsible für das Deployment; der Service Owner ist Accountable."}
|
||||||
|
]},
|
||||||
|
{ id:"tr_11", phase:"transition", typ:"aktivitaet",
|
||||||
|
name:"Vorbereiten der Service-Aktivierung",
|
||||||
|
beschreibung:"Prüfung der Betriebsbereitschaft und Vorbereitung des Go-Live-Antrags für Gate 3.",
|
||||||
|
umfasst:["Review der Betriebsdokumentation","Prüfung der Überwachungsregeln","Prüfung der Rollen- und Eskalationswege","Zugriffe & Toolanbindung sicherstellen","Vorbereitung der Go-Live-Kommunikation","Validierung mit Supportteams","Vorbereitung Gate-3-Antrag (SOR-Vorlage)"],
|
||||||
|
artefakt:"Go-Live-Readiness (Gate-3-Antrag)",
|
||||||
|
raci:[["service_owner","A"],["betriebsteam","R"],["spm","C"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Worauf bereitet tr_11 vor?",
|
||||||
|
optionen:["Den Build-Start","Den Go-Live-Antrag für Gate 3","Das ELS-Ende","Die Außerbetriebnahme"], richtig:1,
|
||||||
|
expl:"tr_11 prüft die Betriebsbereitschaft und bereitet den Gate-3-Antrag (SOR-Vorlage) vor."}
|
||||||
|
]},
|
||||||
|
{ id:"tr_12", phase:"transition", typ:"gate", gateNr:3,
|
||||||
|
name:"Gate 3: Go-Live-Freigabe",
|
||||||
|
beschreibung:"Portfolio-Freigabe und formale Aktivierung des Services. Exit-Gate der Transition — SOR-Entscheidung nach dem Konsent-Prinzip.",
|
||||||
|
umfasst:["Prüfung der Portfolio-Konsistenz","Prüfung der Betriebsreife (SO-Bestätigung)","Prüfung der Support-Bereitschaft","Prüfung der SLA/SLO-Vereinbarung","Prüfung der Auflagen-Erfüllung aus Gate 2","Bewertung der Geschäftskritikalität","Formale Aufnahme ins Service-Portfolio"],
|
||||||
|
artefakt:"Gate-3-Entscheidung + Portfolio-Aufnahme",
|
||||||
|
pfade:[
|
||||||
|
["Go-Live","Service wird aktiviert → Operation (op_01)"],
|
||||||
|
["Go-Live mit Auflagen","Aktivierung, definierte Punkte nacharbeiten → Operation"],
|
||||||
|
["Zurück an Transition","Nachbesserung erforderlich → tr_10 (ggf. tr_09)"],
|
||||||
|
["Ablehnung","Endgültige Ablehnung des Service-Vorhabens"]
|
||||||
|
],
|
||||||
|
raci:[["sor","A"],["service_owner","R"],["spm","C"],["projektleitung","C"],["operations_manager","C"],["support_manager","C"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer entscheidet an Gate 3 (Accountable)?",
|
||||||
|
optionen:["Service Owner","SOR (Konsent)","Support Manager","Betrieb"], richtig:1,
|
||||||
|
expl:"Gate 3 ist eine SOR-Entscheidung nach dem Konsent-Prinzip — das Exit-Gate der Transition."},
|
||||||
|
{frage:"Was bewirkt die Go-Live-Freigabe zusätzlich?",
|
||||||
|
optionen:["Die Aufnahme ins Service-Portfolio","Den Start des Designs","Die Schließung aller Incidents","Den ELS-Exit"], richtig:0,
|
||||||
|
expl:"Mit der Freigabe wird der Service formal ins Portfolio aufgenommen und der Katalog-Eintrag aktiviert."}
|
||||||
|
]},
|
||||||
{ id:"op_01", phase:"operation", typ:"aktivitaet",
|
{ id:"op_01", phase:"operation", typ:"aktivitaet",
|
||||||
name:"Early Life Support (ELS)",
|
name:"Early Life Support (ELS)",
|
||||||
beschreibung:"Phase erhöhter Aufmerksamkeit direkt nach Go-Live: produktiv, aber intensiver beobachtet und betreut als im Normalbetrieb.",
|
beschreibung:"Phase erhöhter Aufmerksamkeit direkt nach Go-Live: produktiv, aber intensiver beobachtet und betreut als im Normalbetrieb.",
|
||||||
|
|
@ -272,18 +483,269 @@ const STATIONEN = [
|
||||||
beschreibung:"Strukturelle Grundlage für den täglichen Servicebetrieb.",
|
beschreibung:"Strukturelle Grundlage für den täglichen Servicebetrieb.",
|
||||||
umfasst:["Betriebshandbuch bereitstellen/pflegen","Betriebsprozesse & Arbeitsanweisungen","Rollen, Eskalation, Kommunikation klar","Standard Changes & Known Errors"],
|
umfasst:["Betriebshandbuch bereitstellen/pflegen","Betriebsprozesse & Arbeitsanweisungen","Rollen, Eskalation, Kommunikation klar","Standard Changes & Known Errors"],
|
||||||
artefakt:"Betriebshandbuch",
|
artefakt:"Betriebshandbuch",
|
||||||
raci:[["service_owner","A"],["operations_manager","R"]],
|
raci:[["service_owner","A"],["operations_manager","R"],["spm","C/I"]],
|
||||||
quiz:[
|
quiz:[
|
||||||
{frage:"Welches Artefakt ist hier zentral?",
|
{frage:"Welches Artefakt ist hier zentral?",
|
||||||
optionen:["Service-Definition","Betriebshandbuch","Testbericht","Gate-Vorlage"], richtig:1,
|
optionen:["Service-Definition","Betriebshandbuch","Testbericht","Gate-Vorlage"], richtig:1,
|
||||||
expl:"Das Betriebshandbuch ist die strukturelle Grundlage des laufenden Betriebs."}
|
expl:"Das Betriebshandbuch ist die strukturelle Grundlage des laufenden Betriebs."}
|
||||||
|
]},
|
||||||
|
{ id:"op_03", phase:"operation", typ:"aktivitaet",
|
||||||
|
name:"Durchführen laufender Betriebsaufgaben",
|
||||||
|
beschreibung:"Täglich wiederkehrende Betriebsaktivitäten zur Erbringung des Services.",
|
||||||
|
umfasst:["Benutzerverwaltung & Berechtigungen","Backup/Restore","Technische Routineaufgaben","Konfigurationspflege","Pflege von Logs, Diensten, Überwachungsobjekten","Security- & Compliance-Anforderungen","Umsetzung freigegebener Standard-Changes"],
|
||||||
|
artefakt:"Erbrachte Betriebsleistung",
|
||||||
|
raci:[["operations_manager","A"],["betriebsteam","R"],["service_owner","C"],["lieferant","C/I"],["spm","I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer ist Responsible (R) für die laufenden Betriebsaufgaben?",
|
||||||
|
optionen:["Betriebsteam","Service Owner","SPM","Support Manager"], richtig:0,
|
||||||
|
expl:"Das Betriebsteam führt aus (R); der Betrieb (AL B&C / AL App) ist Accountable."}
|
||||||
|
]},
|
||||||
|
{ id:"op_04", phase:"operation", typ:"aktivitaet",
|
||||||
|
name:"Ressourcen, Dienstleister und Budget managen",
|
||||||
|
beschreibung:"Sicherstellen, dass der Servicebetrieb über die nötigen Mittel verfügt — stabil und wirtschaftlich.",
|
||||||
|
umfasst:["Personelle und technische Ressourcen sicherstellen","Koordination mit externen Dienstleistern","Überwachung des Betriebsbudgets","Abstimmung mit Supplier-/Finanz-/Vertragsmanagement","Sicherstellen von Wartung & Lizenzen"],
|
||||||
|
artefakt:"Ressourcen- & Budget-Status",
|
||||||
|
raci:[["operations_manager","A"],["betriebsteam","R"],["service_owner","C"],["spm","I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Was ist das Ziel dieser Aktivität?",
|
||||||
|
optionen:["Incidents lösen","Ressourcen, Dienstleister und Budget steuern","Den Service designen","Das Review durchführen"], richtig:1,
|
||||||
|
expl:"op_04 sichert die nötigen personellen, technischen und finanziellen Mittel für einen stabilen, wirtschaftlichen Betrieb."}
|
||||||
|
]},
|
||||||
|
{ id:"op_05", phase:"operation", typ:"aktivitaet",
|
||||||
|
name:"Überwachen der Services",
|
||||||
|
beschreibung:"Strukturierte Überwachung des Services anhand definierter KPIs und Metriken.",
|
||||||
|
umfasst:["Verfügbarkeit, Performance, Auslastung überwachen","Schnittstellen und Konfigurationsobjekte überwachen","Trends / drohende Störungen erkennen","Verknüpfung mit Events, Alerts, Dashboards","Monitoring-Regeln im Betrieb erstellen"],
|
||||||
|
artefakt:"Monitoring-Daten / Alerts",
|
||||||
|
raci:[["operations_manager","A"],["betriebsteam","R"],["service_owner","C"],["service_support_team","I"],["spm","I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Welche Aktivität beschreibt op_05?",
|
||||||
|
optionen:["Strukturierte Überwachung anhand von KPIs/Metriken","Erstellung der Service-Definition","Lösen von Incidents","Gate-Entscheidung"], richtig:0,
|
||||||
|
expl:"op_05 überwacht Verfügbarkeit, Performance und Auslastung und verknüpft mit Events/Alerts/Dashboards."}
|
||||||
|
]},
|
||||||
|
{ id:"op_06", phase:"operation", typ:"aktivitaet",
|
||||||
|
name:"Erstellen des Service-Qualitätsbericht",
|
||||||
|
beschreibung:"Regelmäßige formale Berichte über die erreichte Servicequalität.",
|
||||||
|
umfasst:["SLA-/SLO-Auswertung","Auswertung technischer KPIs","Abgleich gegen Qualitätsziele","Identifikation von Verbesserungspotenzialen","Zuarbeit für Service Review & SPM"],
|
||||||
|
artefakt:"Service-Qualitätsbericht",
|
||||||
|
raci:[["service_owner","A"],["betriebsteam","R"],["spm","C"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Welches Artefakt entsteht hier?",
|
||||||
|
optionen:["Betriebshandbuch","Service-Qualitätsbericht","Problem Record","Testbericht"], richtig:1,
|
||||||
|
expl:"op_06 erstellt den Service-Qualitätsbericht (SLA-/SLO-Auswertung, KPIs) als Zuarbeit für das Review."}
|
||||||
|
]},
|
||||||
|
{ id:"op_07", phase:"operation", typ:"aktivitaet",
|
||||||
|
name:"Proaktive Problem Identifikation",
|
||||||
|
beschreibung:"Geht über Monitoring hinaus: aktive Suche nach strukturellen Problemen.",
|
||||||
|
umfasst:["Trendanalysen aus Monitoringdaten","Analyse von Engpässen, Ressourcenproblemen","Technische Analyse von Systemmustern","Erkennen potenzieller SLA-Verletzungen"],
|
||||||
|
artefakt:"Identifizierte strukturelle Probleme",
|
||||||
|
raci:[["service_owner","A"],["betriebsteam","R"],["spm","I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wodurch unterscheidet sich op_07 vom reinen Monitoring?",
|
||||||
|
optionen:["Es ist rein reaktiv","Es ist die aktive Suche nach strukturellen Problemen","Es schließt Tickets","Es entscheidet über Go-Live"], richtig:1,
|
||||||
|
expl:"Proaktive Problem-Identifikation nutzt Trend-/Musteranalyse zur Früherkennung struktureller Probleme."}
|
||||||
|
]},
|
||||||
|
{ id:"sp_01", phase:"support", typ:"aktivitaet",
|
||||||
|
name:"Bereitstellen von Leitlinien für den Service-Support",
|
||||||
|
beschreibung:"Strukturelle Rahmenbedingungen, damit der Service-Support effizient arbeiten kann.",
|
||||||
|
umfasst:["Unterstützungsprozesse (Incident-/Request-Modell)","Vorgaben zu Eskalationen, Reaktionszeiten, Rollen","Tool-Konfigurationen (Ticketklassen, Templates)","Zugriffsmöglichkeiten & Security-Policies","Konsistentes Wissensmanagement"],
|
||||||
|
artefakt:"Support-Leitlinien",
|
||||||
|
raci:[["service_owner","A"],["support_manager","R"],["spm","C/I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer ist Responsible (R) für die Support-Leitlinien?",
|
||||||
|
optionen:["Support Manager","Service Owner","SPM","1st Level Agent"], richtig:0,
|
||||||
|
expl:"Der Support Manager führt aus und pflegt die Leitlinien; der Service Owner verantwortet die fachlichen Vorgaben (A)."}
|
||||||
|
]},
|
||||||
|
{ id:"sp_02", phase:"support", typ:"aktivitaet",
|
||||||
|
name:"Wissensdatenbank",
|
||||||
|
beschreibung:"Strukturierter Wissensspeicher für Support-Lösungen, Betriebsinfos, Workarounds und Standardanfragen.",
|
||||||
|
umfasst:["Lösungen zu Incidents speichern","Workarounds dokumentieren","FAQ, Standard-Requests, Anleitungen","Pflege & Aktualisierung","Zentrales Arbeitsmittel für 1st & 2nd Level"],
|
||||||
|
artefakt:"Gepflegte Wissensdatenbank",
|
||||||
|
raci:[["service_owner","A"],["service_support_team","R"],["problem_manager","C"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer liefert Workarounds und Known Errors für die Wissensdatenbank (C)?",
|
||||||
|
optionen:["Problem Manager","Queue Koordinator","SPM","Testmanagement"], richtig:0,
|
||||||
|
expl:"Der Problem Manager liefert Workarounds/Known Errors; das Service-Support-Team pflegt die Inhalte (R)."}
|
||||||
|
]},
|
||||||
|
{ id:"sp_03", phase:"support", typ:"aktivitaet",
|
||||||
|
name:"Überwachen / Verteilung von Incidents und Service Requests",
|
||||||
|
beschreibung:"Koordination eingehender Störungen/Anfragen: Priorisierung, Routing, korrekte Aufnahme und Verteilung (Ticket-Queue-Koordination).",
|
||||||
|
umfasst:["Sichtung neuer Tickets","Automatisches oder manuelles Routing","Prioritäts- und Impact-Bewertung","SLA-Konformität sicherstellen","Eskalation bei Bedarf"],
|
||||||
|
artefakt:"Priorisierte/geroutete Tickets",
|
||||||
|
raci:[["support_manager","A"],["queue_koordinator","R"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer übernimmt Sichtung und Routing der Tickets (R)?",
|
||||||
|
optionen:["Queue Koordinator","Support Manager","2nd Level Agent","Service Owner"], richtig:0,
|
||||||
|
expl:"Der Queue Koordinator erledigt die initiale Sichtung und das Routing; der Support Manager ist Accountable."}
|
||||||
|
]},
|
||||||
|
{ id:"sp_04", phase:"support", typ:"aktivitaet",
|
||||||
|
name:"Bearbeiten von Requests",
|
||||||
|
beschreibung:"Behandlung aller Standard-Serviceanfragen von Nutzern (z.B. Passwort, Berechtigungen, Informationen).",
|
||||||
|
umfasst:["Klassifizierung gemäß Request-Katalog","Prüfung von Berechtigungen","Erfüllung standardisierter Anfragen","Dokumentation der Erledigung"],
|
||||||
|
artefakt:"Erledigter Service Request",
|
||||||
|
raci:[["support_manager","A"],["first_level_agent","R"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer bearbeitet einfache Standard-Requests (R)?",
|
||||||
|
optionen:["1st Level Agent","2nd Level Agent","Problem Manager","Betriebsteam"], richtig:0,
|
||||||
|
expl:"Der 1st Level Agent bearbeitet Standard-Requests gemäß Katalog; der Support Manager ist Accountable."}
|
||||||
|
]},
|
||||||
|
{ id:"sp_05", phase:"support", typ:"aktivitaet",
|
||||||
|
name:"Lösen von Incidents im 1st Level Support",
|
||||||
|
beschreibung:"Schnelle Lösung typischer Störungen mit bekanntem Wissen.",
|
||||||
|
umfasst:["Erstdiagnose","Nutzung der Wissensdatenbank","Anwenderunterstützung","Workarounds anwenden","Lösung dokumentieren","Entscheidung über Weiterleitung an 2nd Level"],
|
||||||
|
artefakt:"Gelöster Incident (1st Level)",
|
||||||
|
raci:[["support_manager","A"],["first_level_agent","R"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer löst typische Incidents im 1st Level (R)?",
|
||||||
|
optionen:["1st Level Agent","2nd Level Agent","Problem Manager","Lieferant"], richtig:0,
|
||||||
|
expl:"Der 1st Level Agent löst mit bekanntem Wissen; reicht es nicht, erfolgt Weiterleitung an den 2nd Level."}
|
||||||
|
]},
|
||||||
|
{ id:"sp_06", phase:"support", typ:"aktivitaet",
|
||||||
|
name:"Lösen von Incidents im 2nd Level Support",
|
||||||
|
beschreibung:"Bearbeitung von Incidents, die im 1st Level nicht lösbar sind — tiefergehende Diagnostik und technische Lösung.",
|
||||||
|
umfasst:["Komplexe technische Diagnosen","Zusammenarbeit mit Betrieb, Fachverfahren, Lieferanten","Ggf. Einbezug von Spezialisten/Herstellern","Rückmeldung an 1st Level / Anwender","Lösung dokumentieren","Ungelöst → Problem Record"],
|
||||||
|
artefakt:"Gelöster Incident (2nd Level)",
|
||||||
|
raci:[["support_manager","A"],["second_level_agent","R"],["lieferant","C"],["service_owner","I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer übernimmt Incidents, die der 1st Level nicht lösen kann (R)?",
|
||||||
|
optionen:["2nd Level Agent","Queue Koordinator","SPM","Service Owner"], richtig:0,
|
||||||
|
expl:"Der 2nd Level Agent macht die tiefergehende Diagnose; bleibt es ungelöst, entsteht ein Problem Record (sp_09)."}
|
||||||
|
]},
|
||||||
|
{ id:"sp_07", phase:"support", typ:"aktivitaet",
|
||||||
|
name:"Incident Record (Gelöst) / Request Record (Gelöst)",
|
||||||
|
beschreibung:"Abschluss der Ticketbearbeitung inkl. Dokumentation und Qualitätssicherung.",
|
||||||
|
umfasst:["Validierung, ob wirklich gelöst","Kommunikation an den Endnutzer","Dokumentationen / FAQs aktualisieren","Klassifikation für Trendanalysen","Übergabe an Schließen von Incidents"],
|
||||||
|
artefakt:"Incident/Request Record (gelöst)",
|
||||||
|
raci:[["support_manager","A"],["first_level_agent","R"],["second_level_agent","R"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Was passiert in sp_07?",
|
||||||
|
optionen:["Eröffnen eines Problem Records","Abschluss der Bearbeitung inkl. Validierung und Doku","Routing der Tickets","Root-Cause-Analyse"], richtig:1,
|
||||||
|
expl:"sp_07 validiert die Lösung, kommuniziert an den Nutzer und bereitet den finalen Abschluss (sp_08) vor."}
|
||||||
|
]},
|
||||||
|
{ id:"sp_08", phase:"support", typ:"aktivitaet",
|
||||||
|
name:"Schließen von Incidents & Service Requests",
|
||||||
|
beschreibung:"Finaler Ticketabschluss inkl. Dokumentation, Reporting und Einordnung für spätere Verbesserungen.",
|
||||||
|
umfasst:["Ticket final schließen","Prüfung vollständiger Dokumentation","Ticketklassifizierung / KPI-Zuordnung","Rückmeldung an Monitoring/Reporting","Wiederkehrende Incidents identifizieren"],
|
||||||
|
artefakt:"Geschlossenes Ticket + KPI-Zuordnung",
|
||||||
|
raci:[["support_manager","A"],["first_level_agent","R"],["second_level_agent","R"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer ist Accountable für das Schließen von Incidents und Requests?",
|
||||||
|
optionen:["Support Manager","1st Level Agent","Problem Manager","SOR"], richtig:0,
|
||||||
|
expl:"Der Support Manager ist Accountable; 1st und 2nd Level sind Responsible für den finalen Abschluss."}
|
||||||
|
]},
|
||||||
|
{ id:"sp_09", phase:"support", typ:"aktivitaet",
|
||||||
|
name:"Anlegen Problem Record für nicht lösbare Incidents",
|
||||||
|
beschreibung:"Ist ein Incident auch im 2nd Level nicht lösbar, wird eine strukturelle Ursache vermutet.",
|
||||||
|
umfasst:["Nicht-lösbar-Entscheidung","Dokumentation der Symptome","Eröffnen eines Problem Records","Übergabe an Root-Cause-Analyse"],
|
||||||
|
artefakt:"Problem Record",
|
||||||
|
raci:[["problem_manager","A"],["second_level_agent","R"],["service_owner","I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Welches Artefakt entsteht, wenn ein Incident nicht lösbar ist?",
|
||||||
|
optionen:["Workaround","Problem Record","Service-Definition","Testprotokoll"], richtig:1,
|
||||||
|
expl:"sp_09 eröffnet einen Problem Record; der Problem Manager ist Accountable, der 2nd Level Agent Responsible."}
|
||||||
|
]},
|
||||||
|
{ id:"sp_10", phase:"support", typ:"aktivitaet",
|
||||||
|
name:"Wiederkehrende Incidents analysieren & Problem Record anlegen",
|
||||||
|
beschreibung:"Reaktiver Weg zur strukturierten Problemerkennung, wenn dieselbe Störung mehrfach auftritt.",
|
||||||
|
umfasst:["Clustering wiederkehrender Incidents","Analyse gemeinsamer Ursachen","Entscheidung: Problem Record notwendig","Übergabe an Problem Management"],
|
||||||
|
artefakt:"Problem Record (aus wiederkehrenden Incidents)",
|
||||||
|
raci:[["problem_manager","A"],["support_manager","R"],["second_level_agent","C"],["service_owner","I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wann wird in sp_10 ein Problem Record angelegt?",
|
||||||
|
optionen:["Bei jedem Incident","Wenn dieselbe Störung mehrfach auftritt","Nur an Gates","Bei Go-Live"], richtig:1,
|
||||||
|
expl:"sp_10 clustert wiederkehrende Incidents und legt bei gemeinsamer Ursache einen Problem Record an."}
|
||||||
|
]},
|
||||||
|
{ id:"sp_11", phase:"support", typ:"aktivitaet",
|
||||||
|
name:"Operative Root-Cause-Analyse durchführen & Workaround bereitstellen",
|
||||||
|
beschreibung:"Start der Problembehandlung zur Ermittlung der Ursache und Schaffung eines Workarounds.",
|
||||||
|
umfasst:["Root-Cause-Analyse","Erstellen eines Workarounds","Eintrag in die Wissensdatenbank","Entscheidung über Change-Bedarf"],
|
||||||
|
artefakt:"Workaround + aktualisierter Problem Record",
|
||||||
|
raci:[["service_owner","A"],["problem_manager","R"],["second_level_agent","C"],["lieferant","C/I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Was wird in der operativen Root-Cause-Analyse zusätzlich bereitgestellt?",
|
||||||
|
optionen:["Ein Workaround","Ein Betriebshandbuch","Eine Gate-Vorlage","Ein Review-Bericht"], richtig:0,
|
||||||
|
expl:"sp_11 ermittelt die Ursache, erstellt einen Workaround und entscheidet über Change-Bedarf (aktualisiert den Problem Record)."}
|
||||||
|
]},
|
||||||
|
{ id:"rv_01", phase:"review", typ:"aktivitaet",
|
||||||
|
name:"Taktische Root-Cause-Analyse + Auswertung Support-KPIs",
|
||||||
|
beschreibung:"Strukturelle Analyse wiederkehrender Supportfälle und KPIs, um mittelfristige Verbesserungen anzustoßen.",
|
||||||
|
umfasst:["KPI-Auswertung (Supportqualität, Trends)","Wiederkehrende Tickets und systemische Ursachen","Abgleich mit Problem Records","Ableitung taktischer Verbesserungsmaßnahmen"],
|
||||||
|
artefakt:"Taktische Verbesserungsmaßnahmen",
|
||||||
|
raci:[["service_owner","A"],["problem_manager","R"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer führt die taktische Root-Cause-Analyse durch (R)?",
|
||||||
|
optionen:["Problem Manager","Service Owner","SOR","1st Level Agent"], richtig:0,
|
||||||
|
expl:"Der Problem Manager führt die taktische Analyse durch; der Service Owner priorisiert und bestätigt Maßnahmen (A)."}
|
||||||
|
]},
|
||||||
|
{ id:"rv_02", phase:"review", typ:"aktivitaet",
|
||||||
|
name:"Service Performance & Improvement Review",
|
||||||
|
beschreibung:"Operativer Review des Servicezustands anhand Qualitätsberichten, Supportdaten und Problem-Analysen. Methodik: 4-Dimensionen-Modell mit Ampelbewertung.",
|
||||||
|
umfasst:["Leistung gegen Ziele und SLAs abgleichen","Gesamterfüllungsgrad bewerten","Operative Risiken, Störungen, Engpässe diskutieren","Optimierungsmaßnahmen identifizieren","Vorbereitung für SOR-Review","Handlungsempfehlung: CONTINUE / IMPROVEMENT / REDESIGN / RETIRE"],
|
||||||
|
artefakt:"Service Performance & Improvement Review (Ampelbewertung)",
|
||||||
|
raci:[["service_owner","A/R"],["spm","I"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Welche Bewertungsskala nutzt das Service Performance & Improvement Review?",
|
||||||
|
optionen:["1–10 Punkte","Grün / Gelb / Rot","Pass / Fail","A / B / C"], richtig:1,
|
||||||
|
expl:"Das 4-Dimensionen-Modell (Leistung, Stabilität, Zufriedenheit, Zukunftsfähigkeit) wird per Ampel (Grün/Gelb/Rot) bewertet."}
|
||||||
|
]},
|
||||||
|
{ id:"rv_03", phase:"review", typ:"aktivitaet",
|
||||||
|
name:"SOR: Periodischer Service Review",
|
||||||
|
beschreibung:"Die SOR bewertet regelmäßig die Serviceleistung und trifft operative Entscheidungen. Verzweigt in vier Wege.",
|
||||||
|
umfasst:["Sichtung des Service Performance & Improvement Reviews","Bewertung von Stabilität & Betriebsreife","Priorisierung operativer Verbesserungen","Freigabe kleinerer Maßnahmen","Schnittstelle zur Demand-/Portfolio-Steuerung"],
|
||||||
|
artefakt:"SOR-Entscheidung (Review)",
|
||||||
|
pfade:[
|
||||||
|
["Weiter wie bisher","Service stabil, keine Maßnahmen → Operation"],
|
||||||
|
["Verbesserung nötig (klein)","→ rv_04 Service Improvement"],
|
||||||
|
["Strukturelle Überarbeitung","→ rv_05 Redesign / Erweiterung"],
|
||||||
|
["Service End-of-Life","→ rv_06 Außerbetriebnahme"]
|
||||||
|
],
|
||||||
|
raci:[["sor","A"],["service_owner","R"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer trifft im periodischen Service Review die Entscheidung (A)?",
|
||||||
|
optionen:["Service Owner","SOR","SPM","Problem Manager"], richtig:1,
|
||||||
|
expl:"Die SOR entscheidet; der Service Owner berichtet und präsentiert (R)."},
|
||||||
|
{frage:"Welche Wege kann rv_03 eröffnen?",
|
||||||
|
optionen:["Nur Weiter oder Stop","Weiter / Improvement / Redesign / Retirement","Go / No-Go","Intern / Extern"], richtig:1,
|
||||||
|
expl:"Weiter wie bisher, kleine Verbesserung (rv_04), Redesign (rv_05) oder Außerbetriebnahme (rv_06)."}
|
||||||
|
]},
|
||||||
|
{ id:"rv_04", phase:"review", typ:"aktivitaet",
|
||||||
|
name:"Service Improvement",
|
||||||
|
beschreibung:"SOR-Entscheidung: Planung und Steuerung kleinerer Verbesserungsmaßnahmen innerhalb des Service.",
|
||||||
|
umfasst:["Probleme in Verbesserungs-Initiativen umwandeln","Aufwandsschätzung und Priorisierung","Zielmetriken festlegen","Verantwortlichkeiten zuweisen","Sichtbarkeit im Service-Portfolio"],
|
||||||
|
artefakt:"Verbesserungs-Initiative (zurück in Operation)",
|
||||||
|
raci:[["service_owner","A/R"],["spm","C"],["problem_manager","C"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wohin fließen die Verbesserungsmaßnahmen aus rv_04 zurück?",
|
||||||
|
optionen:["In die Operation (laufender Betrieb)","In die Design-Phase","In den Demand-Lifecycle","An Gate 1"], richtig:0,
|
||||||
|
expl:"Service Improvement setzt kleinere Maßnahmen im laufenden Betrieb (Operation) um."}
|
||||||
|
]},
|
||||||
|
{ id:"rv_05", phase:"review", typ:"aktivitaet",
|
||||||
|
name:"Service Redesign / Erweiterung",
|
||||||
|
beschreibung:"SOR-Entscheidung: strukturelle Weiterentwicklung des Service. Übergabe an den Demand-Lifecycle.",
|
||||||
|
umfasst:["Überarbeitung der Service-Definitionen","Anpassung von Komponenten, Prozessen, Rollen","Anforderungen für Entwicklungsprozess identifizieren","Übergabe an Demand-Lifecycle-Prozess"],
|
||||||
|
artefakt:"Neuer Demand (Redesign) → DPM",
|
||||||
|
raci:[["service_owner","A"],["spm","C"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wohin übergibt rv_05 (Redesign/Erweiterung)?",
|
||||||
|
optionen:["An die Operation","An den Demand-Lifecycle (DPM) als neuer Demand","An den Support","An Gate 2"], richtig:1,
|
||||||
|
expl:"Strukturelle Änderungen werden als neuer Demand erfasst und durchlaufen den Demand-Lifecycle."}
|
||||||
|
]},
|
||||||
|
{ id:"rv_06", phase:"review", typ:"aktivitaet",
|
||||||
|
name:"Service außer Betrieb nehmen",
|
||||||
|
beschreibung:"Strukturierte Entscheidung und kontrollierte Abschaltung eines Services.",
|
||||||
|
umfasst:["Auslöser definieren (Nutzung, Kosten, Überalterung)","Bewertung durch SOR","Retirement-Plan erstellen (Kommunikation, Migration, Abschaltung)","Koordination mit Portfolio (SPM)","Übergabe an Projekt-/Transitionsthemen"],
|
||||||
|
artefakt:"Retirement-Plan / Decommissioning-Auftrag → DPM",
|
||||||
|
raci:[["sor","A"],["service_owner","R"],["spm","C"]],
|
||||||
|
quiz:[
|
||||||
|
{frage:"Wer entscheidet über die Außerbetriebnahme eines Services (A)?",
|
||||||
|
optionen:["Service Owner","SOR","SPM","Support Manager"], richtig:1,
|
||||||
|
expl:"Die SOR entscheidet über die Stilllegung; der Service Owner führt den Retirement-Plan aus (R)."}
|
||||||
]}
|
]}
|
||||||
];
|
];
|
||||||
|
|
||||||
/* ====================== STATE ====================== */
|
/* ====================== STATE ====================== */
|
||||||
const LS_KEY = "slc-companion-proto";
|
const LS_KEY = "slc-companion-proto";
|
||||||
function defaultState(){
|
function defaultState(){
|
||||||
return { scenario:0, index:0, stage:"discuss", quizIndex:0,
|
return { service:0, change:0, index:0, stage:"discuss", quizIndex:0,
|
||||||
picks:{}, done:{}, unclear:{} };
|
picks:{}, done:{}, unclear:{} };
|
||||||
}
|
}
|
||||||
let S = load();
|
let S = load();
|
||||||
|
|
@ -335,7 +797,10 @@ function render(){
|
||||||
${chip}
|
${chip}
|
||||||
<div class="stationName">${st.name}</div>
|
<div class="stationName">${st.name}</div>
|
||||||
<div class="stationId">${st.id}</div>
|
<div class="stationId">${st.id}</div>
|
||||||
<div class="token">Action-Stein: <b>${SZENARIEN[S.scenario]}</b></div>
|
<div class="token">Action-Stein: <b>${USE_CASES[S.service].service}</b>
|
||||||
|
<span class="ctChip">${CHANGE_TYPES[S.change]}</span>
|
||||||
|
<div class="ctText">${USE_CASES[S.service].changes[S.change]}</div>
|
||||||
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
if(S.stage==="discuss") body += renderDiscuss(st);
|
if(S.stage==="discuss") body += renderDiscuss(st);
|
||||||
|
|
@ -401,9 +866,11 @@ function renderQuiz(st){
|
||||||
function renderReveal(st){
|
function renderReveal(st){
|
||||||
const raci = st.raci.map(([r,c])=>`<tr><td>${roleLabel(r)}</td><td><span class="raciBadge raci-${c}">${c}</span></td></tr>`).join("");
|
const raci = st.raci.map(([r,c])=>`<tr><td>${roleLabel(r)}</td><td><span class="raciBadge raci-${c}">${c}</span></td></tr>`).join("");
|
||||||
let extra = "";
|
let extra = "";
|
||||||
if(st.typ==="gate"){
|
if(st.pfade){
|
||||||
extra += `<h4>Entscheidungspfade</h4><div class="pfade">` +
|
extra += `<h4>Entscheidungspfade</h4><div class="pfade">` +
|
||||||
st.pfade.map(([n,d])=>`<div class="pfad"><b>${n}</b><span style="color:var(--muted)">${d}</span></div>`).join("") + `</div>`;
|
st.pfade.map(([n,d])=>`<div class="pfad"><b>${n}</b><span style="color:var(--muted)">${d}</span></div>`).join("") + `</div>`;
|
||||||
|
}
|
||||||
|
if(st.pruef){
|
||||||
extra += `<h4>Prüf-Dimensionen</h4><ul>` + st.pruef.map(([n,d])=>`<li><b>${n}</b> — ${d}</li>`).join("") + `</ul>`;
|
extra += `<h4>Prüf-Dimensionen</h4><ul>` + st.pruef.map(([n,d])=>`<li><b>${n}</b> — ${d}</li>`).join("") + `</ul>`;
|
||||||
}
|
}
|
||||||
return `
|
return `
|
||||||
|
|
@ -459,7 +926,9 @@ function openDebrief(){
|
||||||
<div><b>${total?Math.round(correct/total*100):0}%</b><span>Quiz richtig (${correct}/${total})</span></div>
|
<div><b>${total?Math.round(correct/total*100):0}%</b><span>Quiz richtig (${correct}/${total})</span></div>
|
||||||
<div><b>${unclearList.length}</b><span>als unklar markiert</span></div>`;
|
<div><b>${unclearList.length}</b><span>als unklar markiert</span></div>`;
|
||||||
let md = `# SLC-Workshop — Debrief\n\n`;
|
let md = `# SLC-Workshop — Debrief\n\n`;
|
||||||
md += `**Szenario:** ${SZENARIEN[S.scenario]}\n`;
|
md += `**Service:** ${USE_CASES[S.service].service}\n`;
|
||||||
|
md += `**Change-Typ:** ${CHANGE_TYPES[S.change]}\n`;
|
||||||
|
md += `**Auslöser:** ${USE_CASES[S.service].changes[S.change]}\n`;
|
||||||
md += `**Stationen bearbeitet:** ${doneN}/${STATIONEN.length}\n`;
|
md += `**Stationen bearbeitet:** ${doneN}/${STATIONEN.length}\n`;
|
||||||
md += `**Quiz:** ${correct}/${total} richtig\n\n`;
|
md += `**Quiz:** ${correct}/${total} richtig\n\n`;
|
||||||
md += `## Als unklar markiert\n`;
|
md += `## Als unklar markiert\n`;
|
||||||
|
|
@ -476,10 +945,13 @@ function openDebrief(){
|
||||||
|
|
||||||
/* ====================== INIT ====================== */
|
/* ====================== INIT ====================== */
|
||||||
(function init(){
|
(function init(){
|
||||||
const sel = $("#scenarioSel");
|
const svcSel = $("#serviceSel"), chSel = $("#changeSel");
|
||||||
sel.innerHTML = SZENARIEN.map((s,i)=>`<option value="${i}">${s}</option>`).join("");
|
svcSel.innerHTML = USE_CASES.map((u,i)=>`<option value="${i}">${u.service}</option>`).join("");
|
||||||
sel.value = S.scenario;
|
chSel.innerHTML = CHANGE_TYPES.map((c,i)=>`<option value="${i}">${c}</option>`).join("");
|
||||||
sel.onchange = ()=>{ S.scenario = +sel.value; save(); render(); };
|
svcSel.value = S.service;
|
||||||
|
chSel.value = S.change;
|
||||||
|
svcSel.onchange = ()=>{ S.service = +svcSel.value; save(); render(); };
|
||||||
|
chSel.onchange = ()=>{ S.change = +chSel.value; save(); render(); };
|
||||||
$("#debriefBtn").onclick = openDebrief;
|
$("#debriefBtn").onclick = openDebrief;
|
||||||
$("#closeDebrief").onclick = ()=> $("#debriefDlg").close();
|
$("#closeDebrief").onclick = ()=> $("#debriefDlg").close();
|
||||||
$("#copyBtn").onclick = ()=> navigator.clipboard?.writeText($("#debriefText").textContent);
|
$("#copyBtn").onclick = ()=> navigator.clipboard?.writeText($("#debriefText").textContent);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue