Skip to content

Coaching Protocols

Benjamin Mayer edited this page Mar 16, 2022 · 13 revisions

Coaching 09.03.2022

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.

Feedback zu bisherigen Arbeit

  • 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

Fragen

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

Ziel bis nächstes Coaching

UserStories die noch benötigt werden erstellen
Mit Umsetzung von RMI Schnittstelle von Kundendatenbank kann schon begonnen werden

Coaching 16.03.2022

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.

Feedback zu bisherigen Arbeit

  • 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)

Fragen

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

Ziel bis nächstes Coaching

Link vom Board (DevOps) an Feilhauer und Stadelwieser weiterleiten
Definition of Done und Definition of Ready erstellen
Mit implementation der Userstories beginnen

Clone this wiki locally