• Teaser Home

    Clean Code Developer School

    Saubere Softwareentwicklung üben – regelmäßig, fokussiert, individuell, angeleitet

Terminvereinbarung

Architecture Kata „Terminvereinbarung“

Entwickle einen Dienst, mit dem Termine elektronisch vereinbart werden können. Vorbild ist natürlich http://doodle.com.

Ein Gastgeber möchte Gäste zu einem Termin einladen. Dazu legt er im Dienst ein Treffen an, das er mit möglichen Terminen versieht. Termine sind einzelne zusammenhängende Zeitabschnitte.

Zeitabschnittbeispiele:

  • 12.3.2015 13:00 bis 15:00
  • 12.3.2015 // ohne weitere Zeitangabe, d.h. der ganze Tage
  • 12.3.2015 13:00 bis 15.3.2015 12:00 // tagübergreifend

Terminbeispiele:

  • 12.3.2015 13:00 bis 15:00 // nur ein Zeitabschnitt
  • 12.3.2015 9:00 bis 17:00 und 13.3.2015 9:00 bis 17:00 und 14.3.2015 9:00 bis 13:00

Zusätzlich bekommt jedes Treffen natürlich einen Titel und einen erläuternden Text. Außerdem kann ein Zeitpunkt hinterlegt werden, bis zu dem die Gäste die Terminvorschläge bewertet haben sollen.

Der Gastgeber benachrichtigt anschließend die Gäste über das Treffen. [1] Sie werden damit eingeladen, sich zu den Terminvorschlägen zu äußern.

Jeder Gast bewertet daraufhin die Terminvorschläge. Im einfachsten Fall kann das binär geschehen („Passt für mich“ bzw. „Passt für mich nicht“). Eine Skala für die Eignung wäre aber vielleicht auch nicht schlecht, z.B. „Passt!“, „Ich könnte es einrichten“, „Wenn es unbedingt sein muss“, „Passt gar nicht“.

Wenn die Deadline erreicht ist (oder auch zu einem anderen Zeitpunkt) entscheidet der Gastgeber über den finalen Termin anhand der Übersicht der Bewertungen; er sieht, wer welche Vorschläge wie bewertet hat. Von seiner Entscheidung werden die Gäste automatisch benachrichtigt. [2]

Benutzer des Dienstes können eine Übersicht ihrer Termine einsehen, die aus den gesendeten und empfangenen Einladungen besteht. Unbewertete Einladungen und ausstehende Terminentscheidungen sollten hervorgehoben werden.

Der Dienst kann im Web laufen und die Benachrichtigung per Email erfolgen. Er kann aber auch inhouse auf dem Desktop laufen. Dann können Benachrichtigungen alternativ als Toast oder Veränderung eines Tray-Icons angezeigt werden.

Die Identifikation von Anwendern kann in jedem Fall über die Email-Adresse stattfinden. Ggf. kann auch ein Schutz mittels Passwort stattfinden.

Nur der Gastgeber hat das Recht, Angaben zum Treffen zu verändern und es abzuschließen.

Treffen können auf einen konkreten Gästekreis beschränkt werden oder offen sein für jeden, der die Nummer des Treffens kennt.


[1] Jedes Treffen hat eine eindeutige Nummer. Darüber können die Gäste das Treffen im Dienst auswählen.

[2] Die Entscheidung kann jederzeit revidiert werden. Es kann natürlich auch kein Termin ausgewählt werden, um die Terminvereinbarung abzuschließen. Vielleicht gab es zu wenig Übereinstimmung bei den Bewertungen.