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