Erste Fassung Doku zu Cockburn
This commit is contained in:
215
doc/Cockburn.md
Normal file
215
doc/Cockburn.md
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
---
|
||||||
|
marp: true
|
||||||
|
html: true
|
||||||
|
paginate: true
|
||||||
|
style: |
|
||||||
|
@import url('https://fonts.googleapis.com/css2?family=Ubuntu:wght@300;400;700&display=swap');
|
||||||
|
section {
|
||||||
|
font-family: 'Ubuntu', sans-serif;
|
||||||
|
padding-top: 55px;
|
||||||
|
font-size: 30px; /* Normaler Text */
|
||||||
|
}
|
||||||
|
.columns {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
gap: 2em;
|
||||||
|
}
|
||||||
|
.grau, .grau p, .grau li, .grau ol { color: #888 !important; }
|
||||||
|
section h1 {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding: 8px 30px;
|
||||||
|
font-size: 1.0em;
|
||||||
|
background-color: #2c3e50;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
section::after {
|
||||||
|
content: "S." attr(data-marpit-pagination) " / " attr(data-marpit-pagination-total);
|
||||||
|
position: absolute;
|
||||||
|
bottom: 15px;
|
||||||
|
right: 30px;
|
||||||
|
font-size: 0.75em;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Zentraler Projekt-Anker: Use Cases (Epics, Sollprozesse ...)
|
||||||
|
|
||||||
|
## Notwendige Inhalte:
|
||||||
|
|
||||||
|
1. Story/ Kurzbeschreibung
|
||||||
|
|
||||||
|
2. Liste aller Akteure (Stakeholder) und deren Interessen/Ziele
|
||||||
|
|
||||||
|
3. Standard-Ablauf (primäres Erfolgsszenario)
|
||||||
|
|
||||||
|
4. Beschreibung aller Ausnahme-Szenarios
|
||||||
|
|
||||||
|
---
|
||||||
|
# Titel, Story, Beispiele
|
||||||
|
|
||||||
|
## Barabheben vom Geldautomat
|
||||||
|
|
||||||
|
- Bankkunde hebt an einem Geldautomaten einen beliebigen Geldbetrag von einem Konto ab.
|
||||||
|
|
||||||
|
## Designer creates CAD Document
|
||||||
|
|
||||||
|
- Designer creates a new CAD document from a template.
|
||||||
|
|
||||||
|
## Tester führt Testcase durch
|
||||||
|
|
||||||
|
- Tester fuhrt die Schritte eines Test Case durch und bewertet.
|
||||||
|
|
||||||
|
---
|
||||||
|
# Stakeholder und Interessen, möglich Losung
|
||||||
|
|
||||||
|
## Kunde
|
||||||
|
|
||||||
|
- will jederzeit einen möglichst beliebigen Betrag komfortabel abheben
|
||||||
|
- will, dass Ort und Zeit seiner Abhebung aus dem Kontoauszug ersichtlich sind
|
||||||
|
- will, dass kein anderer von seinem Konto abheben kann
|
||||||
|
- mochte optional eine Sprache und Stückelung vorgeben
|
||||||
|
|
||||||
|
## Bank
|
||||||
|
|
||||||
|
- muss nur auszahlen, wenn der Betrag durch das Kunden-Konto gedeckt ist
|
||||||
|
- muss sicherstellen, dass der GA nicht missbräuchlich benutzt wird
|
||||||
|
- mochte mögliche Haftungsrisiken bei Missbrauch minimieren
|
||||||
|
|
||||||
|
---
|
||||||
|
# Beispiel Standardablauf fur UC: Barabheben vom Geldautomat
|
||||||
|
|
||||||
|
1. Kunde fuhrt EC — Karte in Geldautomat (GA) ein
|
||||||
|
2. GA identifiziert und validiert Karte und Kontodaten, verlangt
|
||||||
|
Transaktionsauswahl und PIN
|
||||||
|
3. Kunde wählt Barabhebung und gibt PIN ein.
|
||||||
|
4. GA validiert PIN und präsentiert gängige Beträge zur Auswahl
|
||||||
|
5. Kunde wählt Betrag
|
||||||
|
6. GA sendet Betrag und Kontodaten zur Abhebung an Hauptsystem, erhält Freigabe und neuen Kontostand
|
||||||
|
7. GA stellt EC-Karte und Geldbetrag in beliebiger Stückelung zur Verfügung und zeigt aktuellen Kontostand.
|
||||||
|
8. Kunde entnimmt Geldbetrag und Karte
|
||||||
|
9. GA archiviert Transaktionsinformationen
|
||||||
|
|
||||||
|
---
|
||||||
|
# Für jeden Schritt im Standard-Ablauf (main flow) ...
|
||||||
|
|
||||||
|
1. Kunde führt EC-Karte in Geldautomat (GA) ein:
|
||||||
|
|
||||||
|
1.1 Kunde wählt andere Sprache (X) *
|
||||||
|
|
||||||
|
2. GA identifiziert und validiert Karte und Kontodaten,
|
||||||
|
-> verlangt Transaktionsauswahl und PIN:
|
||||||
|
|
||||||
|
2.1 Karte oder Konto nicht bekannt oder Karte nicht lesbar
|
||||||
|
-> Kunde informieren, Karte zurückgeben, Vorgang abbrechen, loggen
|
||||||
|
|
||||||
|
2.2 Karte oder Konto gesperrt
|
||||||
|
-> Kunde informieren, Karte einbehalten, Vorgang abbrechen, loggen
|
||||||
|
|
||||||
|
2.3 Hauptsystem nicht erreichbar
|
||||||
|
|
||||||
|
Identifizieren von Ausnahmen, Erweiterungen (X), Optionen (X) per Brainstorming
|
||||||
|
|
||||||
|
---
|
||||||
|
# Beispiel **Ausnahmen** für UC: Barabheben — Schritte 1–4
|
||||||
|
|
||||||
|
<style scoped>section { font-size: 28px; }</style>
|
||||||
|
|
||||||
|
<div class="columns">
|
||||||
|
<div>
|
||||||
|
|
||||||
|
1. Kunde führt EC — Karte in GA ein
|
||||||
|
2. GA identifiziert und validiert Karte und Kontodaten, verlangt Transaktionsauswahl und PIN
|
||||||
|
3. Kunde wählt Barabhebung und gibt PIN ein
|
||||||
|
4. GA validiert PIN und präsentiert gängige Beträge zur Auswahl
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="grau">
|
||||||
|
|
||||||
|
1.1 Kunde wählt andere Sprache (X)
|
||||||
|
2.1 Karte, Konto nicht bekannt oder Karte nicht lesbar
|
||||||
|
2.2 Karte oder Konto gesperrt
|
||||||
|
2.3 Hauptsystem nicht erreichbar
|
||||||
|
3.1 Kunde wählt andere Transaktion (X)
|
||||||
|
3.2 Kunde bricht ab (X)
|
||||||
|
4.1 PIN falsch
|
||||||
|
4.2 PIN 3x falsch
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
---
|
||||||
|
# Beispiel **Ausnahmen** für UC: Barabheben — Schritte 5–9
|
||||||
|
|
||||||
|
<style scoped>section { font-size: 28px; }</style>
|
||||||
|
|
||||||
|
<div class="columns">
|
||||||
|
<div>
|
||||||
|
<ol start="5">
|
||||||
|
<li>Kunde wählt Betrag</li>
|
||||||
|
<li>GA sendet Betrag und Kontodaten zur Abhebung an Hauptsystem, erhält Freigabe und neuen Kontostand</li>
|
||||||
|
<li>GA stellt EC-Karte und Geldbetrag in beliebiger Stückelung zur Verfügung und zeigt aktuellen Kontostand</li>
|
||||||
|
<li>Kunde entnimmt Geldbetrag und Karte</li>
|
||||||
|
<li>GA archiviert Transaktionsinformationen</li>
|
||||||
|
</ol>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="grau">
|
||||||
|
|
||||||
|
5.1 Kunde möchte spezifischen Betrag (X)
|
||||||
|
5.2 Kunde wählt spezielle Stückelung (X)
|
||||||
|
5.3 Kunde bricht ab (X)
|
||||||
|
6.1 Konto nicht gedeckt, keine Freigabe
|
||||||
|
6.2 Hauptsystem nicht erreichbar
|
||||||
|
7.1 gewünschter Betrag nicht mehr verfügbar
|
||||||
|
7.2 gewünschte Stückelung nicht vorhanden
|
||||||
|
8.1 Karte wird nicht entnommen
|
||||||
|
8.2 Geldbetrag wird nicht entnommen
|
||||||
|
9.1 Hauptsystem nicht erreichbar
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
# Verblüffende Neben-Effekte
|
||||||
|
|
||||||
|
- Fokus, Priorität
|
||||||
|
- Prozess-Verständnis
|
||||||
|
- Sämtliche Test Case Pfade fix und fertig
|
||||||
|
- Implizit optimiertes, einfacheres Datenmodell
|
||||||
|
- Implizite Stabilität und Performance für den Standardpfad
|
||||||
|
- Freiheiten für die Umsetzung bewahrt
|
||||||
|
|
||||||
|
die Trennung in primäres Erfolgsszenario und Ausnahmeszenario
|
||||||
|
|
||||||
|
---
|
||||||
|
# 7 Schritte zum finalen Use Case ...
|
||||||
|
|
||||||
|
C: Kunde / Project Owner
|
||||||
|
M: Dev Team Member
|
||||||
|
T: Dev Team
|
||||||
|
|
||||||
|
1. Titel /Teaser, Prosa Story (C)
|
||||||
|
|
||||||
|
2. Stakeholder / Interessen (Anwender Ziele) (T)
|
||||||
|
|
||||||
|
3. Standard Ablauf entwerfen (M)
|
||||||
|
|
||||||
|
4. Ausnahmen und Erweiterungen sammeln (T)
|
||||||
|
|
||||||
|
5. Ausnahme / Behandlung detaillieren, Schneiden in Userstories (M)
|
||||||
|
|
||||||
|
6. Schätzen BV / Schätzen Aufwand (T)
|
||||||
|
|
||||||
|
7. Review / Prüfe alle Interessen , DOR (C)
|
||||||
|
|
||||||
|
|
||||||
|
Draft liefert: genügend Details für Schätzungen (Aufwand, Termine, Budget)
|
||||||
Reference in New Issue
Block a user