• Teaser Home

    Clean Code Developer School

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

MobTimer

Application Kata „MobTimer“

Schreibe eine Anwendung, die hilft, die Arbeit eines Teams beim MobProgramming [1] „im Tomatentakt“ [2] zu verrichten. Als Timer soll die Anwendung jeweils nach Ablauf zweier Zeitspannen alarmieren:

  1. Es gibt Arbeitsphasen, d.h. längere Zeitspannen (Voreinstellung: 25 Min).
  2. Es gibt Pausen, d.h. kürzere Zeitspannen. Eine kürzere Pause nach jeder Arbeitsphase (Voreinstellung: 5 Min) und eine längere Pause (Voreinstellung: 15 Min) nach einer Anzahl von Arbeitsphasen (Voreinstellung: 3).

Beim MobProgramming arbeitet das Team an nur 1 Rechner. Der dort sitzende Driver wird durch die anderen Teammitglieder (Navigatoren) „ferngesteuert“. Nach jeder Arbeitsphase wechselt der Driver. Daher soll in der Anwendung auch eine Liste der Teammitglieder erfasst werden, aus der für jede Arbeitsphase der nächste Driver ausgewählt wird.

Zu jeder Arbeitsphase kann außerdem eine kurze Beschreibung eingegeben werden, worum es in ihr gehen wird. So entsteht zusammen mit dem Namen des Drivers ein einfaches Protokoll der Tagesarbeit.

Am Ende einer Arbeitsphase alarmiert die Anwendung das Team durch ein Tonsignal und indem es sich über den ganzen Bildschirm in den Vordergrund legt. Das unterbricht zwar die Arbeit radikal – macht die Notwendigkeit eines Wechsels aber umso deutlicher.

Am Ende einer Pause alarmiert die Anwendung wieder durch ein Tonsignal. Die nächste Arbeitsphase wird jedoch nicht automatisch gestartet. Dazu bedarf es einer Auswahl des Drivers und einer manuellen Bestätigung.

Wenn Arbeitsphasen nicht konzentriert durchgehalten werden können, sind sie zu unterbrechen. Das wird von der Anwendung gesondert protokolliert [2]. Nach der Unterbrechung ist eine neue Arbeitsphase zu starten.

Während Arbeitsphasen und Pausen soll die Anwendung einen Countdown anzeigen. Solange die Anwendung minimiert ist, sollte der irgendwie „am Bildschirmrand“ (Fenstertitel?) oder zumindest als Tooltip zu sehen sein.

Ressourcen

[1]http://mobprogramming.org/

[2]http://pomodorotechnique.com/