-
Notifications
You must be signed in to change notification settings - Fork 0
Coaching Protocols
Scrummaster für Sprint 1 ist Fabian Dreher.
Plan für erstes Coaching: Alle Dinge klären die für den 1. Sprint erforderlich sind.
Domain model sollte im Idealfall vor dem 1. Sprint abgeschlossen werden und danach nichtmehr verändert werden.
-
Ci-Pipeline aufgesetzt
Automatischer Build Prozess ist gut, kann/sollte erweitert werden mit automatischer Erstellung und Ausführung einer .jar
An sich sollte die Pipeline funktionieren, muss jedoch nicht perfekt sein für unsere Anwendung -
Kunden- & Applikationsdatenbanken aufgesetzt, Kundendatenbank wurde mit Datensätzen befüllt\
-
Projekt Struktur Diagramm erstellt, wie hängt was zusammen
Gut als übersicht zu verwenden, Ausarbeitung beinhaltet alles was für das Projekt benötigt/implementiert werden muss -
Domain Model
Song immer in einem Album (Singles) gut
Label reicht als Attribut keine eigene Klasse
Musikteil gut (länge des song nicht unbedingt notwendig, einzlne recordings müssen nicht unterschieden werden)
Modelkomplezität ist ausreichend für unser projekt
Warum 2 Preise (LineItem, MusicMedium)? Preis bei LineItem wurde entfernt
Warum unterscheidung zwischen Account & Customer? Nicht jeder Kunde hat einen Account, bei Straßenkunden haben wir garkeine Kundendaten
Kunden, Account bis nächstes Coaching durchbesprechen/überarbeiten!
Optional Employee zur Invoice anhängen, damit nachvollziehbar ist welcher Mitarbeiter welchen Kauf getätigt hat - Wird nicht umgesetzt!
Rolle des Employees als eigene Entity anlegen anstatt als Attribut, Rechte dann direkt an Rolle hängen
Messaging/Tag teil passt gut - Kann optional auf Kunden erweiter werden -
Project Canvas
Nicht besprochen -
Userstories
Kundensuche optional, genauso wie Transaktionshistorie von Kunden - Steht jedoch in Produktvision? Wird umgesetzt!
Kaufablauf: Employee sucht nach Musikstück -> in Warenkorb hinzugefügt -> Warenkorb kann gekauft werden -> Optional hinzufügen von Kunden -> Invoice erstellen
Kundendatenbank Zugriff mittels JPA oder nur mit JDBC?
Empfehlung JDBC ist einfacher, Remote Interface für die Kundendatenbank erstellen
Wie wird auf Server deployed bzw. wie kann lokal getestet werden?
Nicht viele Docker Kentnisse, direkt auf VM aufsetzen. Es wird ausführbahre jar benötigt die dann automatisch gestartet wird.
Optional Pipeline für Client einrichten welcher heruntergeladen werden kann.
Da Interface und DTP bei Client und Server benötigt wird, bietet sich an eine shared pipeline an.
Kann Swing anstatt JavaFX verwendet werden?
Swing darf verwendet werden, Oberfläche soll java basiert sein, alternative sei .jsp, auch awt kann verwendet werden. Keine direkte Vorgaben.
Design inwiefern wichtig/benotet?
Wie es aussieht ist egal, es sollte benutzbar sein. Usability > Ausehen
Genaue Aufgaben der unterschiedlichen Rollen?
Operator kann neue messages erstellen, ansonsten gleich. Rollen nur in Datenbank hinterlegt, keine administrative Benutzeroberfläche
Vorschlag für LDAP Server unter Linux?
Apache, wird jedoch erst in 2. Sprint benötigt
OpenAPI verwenden?
Ja, REST Schnittstellen Design/Aufbau wird noch im Detail im Unterricht besprochen
UserStories die noch benötigt werden erstellen
Mit Umsetzung von RMI Schnittstelle von Kundendatenbank kann schon begonnen werden
Scrummaster für Sprint 1 ist Fabian Dreher.
Plan für zweites Coaching: User stories besprechen, priorisieren, ggf. task erstellen in coaching, Alle offenen Fragen klären welche für sprint 1 benötigt werden.
Ins ilias Wiki kann ein Link zu unserem Github wiki einfügen.
-
Product Canvas
Weitere Personas definieren (z.B. für Operator, Web-Service etc.), die ebenfalls Interesse am System haben -
Domain Model
Messages müssen nicht modelliert werden; ein Tag mit einem Themennamen reicht.
Lager (-bestand) modellieren; siehe Punkte weiter unten.
Preis von MusicMedium muss ins LineItem kopiert werden.\
User Stories (für 1. Sprint):
-
Database access
In "Music search" hinzufügen; es ist keine sinnvolle, eigenstehende User Story -
Music search
Zu Beginn nur Alben anzeigen (einfachere Variante; später möglicherweise per Filter nach Songs suchen)
Anzeigen, ob Artikel auf Lager sind (*)
Einfacher wäre, wenn man in den Ergebnissen die Artikel einzeln pro Medium anzeigt -
Product overview
Download im Laden muss nicht berücksichtigt werden (somit reicht es für das Erste auch, wenn nur das Album am Anfang gekauft werden kann)
Überlegen ob Medium direkt in Suchliste angezeigt werden soll, jedoch uns überlassen -
Add music to cart
Als einzelne Story anlegen (keine Sub-Story) -
Display and edit cart
Alles OK
(*) Lager:
- Wenn etwas ausverkauft ist, soll statt dem "Add to cart"-Button ein "Order"-Button angezeigt werden
- Bestellung wird nicht reserviert oder sonstiges, first come first serve
- der Operator bekommt eine Nachricht, in der beschrieben steht, welche und wieviele Artikel bestellt werden sollen (Operator führ Nachbestellungen durch)
- Lagerbestand wird direkt über die Datenbank erhöht
User Stories (für 2. Sprint):
- Generate invoice from shopping cart
Erster Schritt nur anonyme Kundenbestellungen
Zweiter Schritt bestehende Kunden
Dritter Schritt neue Kunden aufnehmen/anlegen (optional)
Zahlungsmethode: Bar und Kreditkarte (optional auch auf Rechnung), wobei Kreditkarten-Information nur für Onlinekauf angegeben werden muss (bei Kauf vor Ort nicht relevant)
Rechnung muss nicht als PDF ausgegeben werden; aber der Kunde muss eine Rechnungsnummer erhalten, um Artikel ggf. zurückgeben zu können
RMI:
- Customer search: Ergänzen, dass auch Nachname und E-Mail gesucht werden kann, Teilstrings und case-insensitive
CustomerDTO:
- nur relevante Attribute hinzufügen (bzw. ergänzen)
Welche Funktionen werden für die Rechnung benötigt? PDF,Email?
Die Rechnung muss nur erstellt werden in Sprint 1/2, diese muss nicht als PDF/Email exportiert werden können. Später einfach einen Menüpunkt in welchem alle Rechnungen nach Rechnungsnummer durchsucht werden können.
Lagerbestand implementieren?
Produkte mit relevanten Mediums (CD,Vinyl) haben einen Lagerbestand. Falls dieser 0 dann sollte von Verkäufern eine Bestellung eingeleitet werden können. Hierbei wird später eine Message an Operator geschickt. Lagerbestand wird direkt über Datenbank
Link vom Board (DevOps) an Feilhauer und Stadelwieser weiterleiten
Definition of Done und Definition of Ready erstellen
Mit implementation der Userstories beginnen