Motivation - PBuchmann/clicktt-schema GitHub Wiki

Motivation des Projekts

Click-tt ist eine gewachsene und funktional ziemlich komplette Web-Anwendung, bei der es sich nicht alleine um einen Tischtennis-Ergebnisdienst handelt, sondern auch um eine komplexe fachliche Anwendung vor allem für die Tischtennis-Verbände in Deutschland. Funktional ist Click-tt inzwischen so weit gewachsen, dass fast keine Wünsche offen bleiben.

Eine dieser fehlenden Funktionen ist eine bessere Unterstützung im Rahmen der Terminplanerstellung bei Nutzung des Terminmeldungsmoduls, das die Angabe von Wechsel- und Zusammenwünschen ermöglicht. Bei der Vergabe der Rasternummern werden hierbei die angegebenen Wünsche komplett außen vor gelassen.

Ich möchte nun zuerst einmal grundlegend auf die möglichen Arten der Terminplan-Erstellung eingehen. Terminpläne von Tischtennisklassen in Deutschland unterscheiden sich in vielen Aspekten deutlich und müssen vielseitige Anforderungen erfüllen. Dabei ist die Distanz der Orte, in denen die Mannschaften angesiedelt sind, ein Hauptkriterium.

  1. Ist die Distanz groß, dann werden Spiele vornehmlich am Wochenende durchgeführt. Dabei sind Doppelspieltage (zwei Spiele an einem Wochenende) oder sogar Koppelspiele (zwei Spiele an einem Tag) oft sinnvoll, um Wege zu entfernt liegenden Orten möglichst zu optimieren. Zur Erstellung von Terminplänen solcher Klassen hat Click-tt ein Tool (Meinl-Generator) integriert. Außerdem haben sich Begegnungen am Wochenende in einigen Verbänden auch in niedrigen Klassen mit kürzeren Fahrtstrecken durchgesetzt.

  2. Spiele in regionalen Klassen, bei denen Fahrtstrecken kurz sind, werden in einigen Verbänden überwiegend an Wochentagen gespielt und dies sind genau die Regionen, um die es in meinem Projekt geht.

Verschiedene Arten der Terminplanerstellung

Grundsätzlich gibt es bei der Terminplanerstellung folgende grundlegend unterschiedliche Ansätze:

  1. Jedes Spiel wird einzeln von einem zentralen Planer angelegt, so dass jede Mannschaft genau einmal pro Halbrunde gegen jede andere Mannschaft spielt. Jede Mannschaft hat in einer der beiden Begegnungen Heimrecht. Liegen Spieltage am Wochenende und sollen wegen großer Distanzen Doppelspiele und gegebenenfalls Koppelspiele genutzt werden, so können solche Nebenbedingungen im Rahmen einer individuellen Planung berücksichtigt werden. Ein automatischer Planer wie der Meinl-Generator muss in der Lage sein die vielen möglichen Kriterien individuell erfassbar zu machen und zu berücksichtigen.

  2. Dezentrale Planung durch eine "Crowd": Hierbei organisieren Klassenleiter pro Klasse eine Kommunikation zwischen den Mannschaftsführern, auf einer meist virtuellen Plattform (Internetseite?) auf der sich die Mannschaftsführer gegenseitig Vorschläge zu Terminen machen können. Jeder Mannschaftsführer erstellt nun eine Liste der für seine Mannschaft gefundenen Termine uns schickt sie dem Klassenleiter. Dieser prüft die Termine und erfasst sie einzeln in Click-tt.

  3. Erstellung der Terminpläne über Raster: Hierbei wird grundsätzlich davon ausgegangen, dass die Spiele eines Terminplans nach einem gewissen Schema namens Raster stattfinden. Jede Mannschaft erhält in einem solchen Schema eine Nummer und spielt im vorgegebenen Schema/Raster an Stelle der ihm zugeordneten Rasternummer: Gegeben sei folgendes Raster:
    Spieltag 1: (1-10) (2-9) (3-8) (4-7) (5-6)
    Spieltag 2: (9-1) (8-2) (7-3) (6-4) (10-5)
    Spieltag 3: …
    Im Raster wird jede Rasternummer durch die zugeordnete Mannschaft ersetzt und man erhält damit den Terminplan. Je nach Spieltag, der Anfangszeit des Heimvereins und der zugeordneten Woche im Rahmenterminplan wird noch der jeweilige Termin mit Uhrzeit bestimmt und der Terminplan ist bis auf Weiteres fertig.
    Bei dieser Art der Terminplanerstellung liegt das Geheimnis in der Art und Weise wie die Mannschaften zu den Rasternummern zugeordnet werden. Ohne weitere Nebenbedingungen können die Rasternummern frei vergeben werden. Je nach Anzahl der Mannschaften in einer Klasse muss ein unterschiedliches Raster vorliegen. Da es Raster nur mit gerader Rastergröße gibt, müssen Klassen mit ungerader Klassengröße immer das nächst größere gerade Raster verwenden. Dabei bleibt eine Rasternummer ohne Zuordnung zu einer Mannschaft und alle Gegner dieser Rasternummer bleiben spielfrei.

Terminplanerstellung bei Vorliegen von Wünschen

Oft geben die Vereine aber Wünsche vor, die bei der Planung beachtet werden sollen. So sollen Mannschaften entweder gleichzeitig ihre Heimspiele austragen oder im Wechsel. Solche Wünsche sind notwendig, wenn Hallenkapazitäten beschränkt sind und ideal ausgenutzt werden sollen.

Die Verbände schreiben zusätzlich vor, dass Begegnungen zwischen Mannschaften des selben Vereins am Anfang der jeweiligen Halbrunde ausgetragen werden müssen. Als Krönung eines guten Spielplans wäre es dann noch ideal, wenn Spitzenspiele oder Spiele, die den Abstieg entscheiden, am Ende der Halbrunde liegen würden, so dass die Spannung möglichst lange aufrecht erhalten bleibt.

Unter den gegebenen Nebenbedingungen ist die Vergabe der Rasternummern nicht mehr trivial. Die Gründe:

  1. Rasternummern einer Klasse hängen gewöhnlich von Rasternummern anderer Klassen ab. Es entsteht ein Netz von Abhängigkeiten, dessen Struktur von der Zusammensetzung der Klassen und der Wünsche gewebt wird. Sollen Wünsche zwischen diesen Klassen harmonisiert werden, so wird eine Kommunikation zwischen den jeweiligen Terminplanerstellern notwendig. Üblicherweise werden höhere Klassen zuerst geplant und die resultierenden Nummern an die später planenden tieferen Klassen weiter gegeben.
  2. Wenn bei der Terminplanung einer Klasse bereits Rasternummern durch die Planung anderer Klassen fixiert sind, dann kann es passieren, dass mehrere Mannschaften dieselbe Rasternummer benötigen, damit die Wünsche erfüllt werden können. Da jede Rasternummer nur einmal vergeben werden kann, muss eine der Mannschaften auf eine nicht ganz optimale Rasternummer ausweichen. Meist gibt es jedoch Ausweich-Rasternummern, deren Vergabe nur zu wenigen Kollisionen führen. Eine Kollision bedeutet dabei, dass in einer Halbrunde an einem Spieltag der Wunsch nicht erfüllt werden konnte. Da die Kollision meist sowohl in der Hinrunde als auch in der Rückrunde auftreten wird, müssen bei einer Kollision üblicherweise zwei Begegnungen separat terminiert werden um die Wünsche erfüllen zu können. Solche Probleme könnten jedoch vermieden werden, wenn die mögliche Kollision bei der vorherigen Vergabe der Rasternummern berücksichtigt worden wäre.
  3. Um Wechsel- oder Zusammen-Wünsche erfüllen zu können, gibt es idealerweise -je nach Raster- Tabellen, mit deren Hilfe man die korrekten Rasternummern ermitteln kann, die den Wunsch erfüllen. Es gibt dabei mehrere Tabellen je nach Klassenstärke der beteiligten Klassen und je nach Gleichheit oder Wechsel. Das Ermitteln der Rasternummer mit der richtigen Tabelle ist ein kritischer Prozess, denn nutzt man die falsche Tabelle, dann ergibt sich auch eine falsche Rasternummer, die im schlimmsten Fall, bei der Verwechselung von Gleichheit und Wechsel, statt den Wunsch zu erfüllen ihn in jedem Spiel nicht erfüllt.
  4. Idealerweise benutzen alle Unter-Regionen innerhalb einer Region dieselben Rahmenterminpläne. Es kann jedoch vorkommen, dass Unter-Regionen angepasste Rahmenterminpläne benötigen. In diesem Fall können die in 3) angesprochenen Tabellen nicht genutzt werden. Entweder müssen spezielle Tabellen erstellt werden oder man muss für jeden Wunsch jede mögliche Rasternummer Spieltag für Spieltag durchschauen.
  5. Das Heraussuchen aller Wünsche auf Basis der Terminmeldungen in Click-tt ist ein mühsamer Prozess. Jede einzelne Mannschaft muss kontrolliert werden und jeder Wunsch muss aus einem Report ermittelt werden, der die Terminmeldungen pro Verein und nicht pro Klasse enthält. Zudem müssen die Wünsche zu dem Mannschaften ermittelt werden, zu denen es bereits vergebene Rasternummern gibt und die neu vergebenen Rasternummern müssen an die Klassen weitergegeben werden, die bisher noch nicht geplant sind. Auch dies ist ein manueller und fehleranfälliger Prozess.

Ein ideales Vorgehen würde bedeuten, die Rasternummern nicht Klasse für Klasse sondern Verein für Verein zu ermitteln. Die Vergabe von Rasternummern könnte maschinell und für eine komplette Region bzw. einen kompletten Verband erfolgen, so dass die komplizierten manuellen Prozesse automatisiert werden könnten. Nach der Vergabe der Rasternummern blieben dann, je nach Automatisierungsgrad noch folgende Prozesse zu erledigen:

  • Eintragen der Rasternummern in Click-tt und damit Erzeugen des Terminplans
  • Ermitteln von Ausweichterminen für Termine, die an Sperrterminen der Vereine/Mannschaften liegen

Auch dies ist prinzipiell automatisierbar, kann aber wenn gewünscht noch im Zuständigkeitsbereich der Klassenleiter verbleiben.

Wenn Interesse an der Implementation eines solchen Programms besteht, das die gemeinsamen Anforderungen der beteiligten Verbände erfüllt, dann würde ich auf der Plattform GitHub, auf der sich dieser Text befindet, eine Open Source Entwicklung starten, an der sich jeder potentielle Interessent auch beteiligen kann. Ich gehe außerdem davon aus, das das Projekt Schnittstellen zu Click-tt benötigt, die aktuell noch nicht existieren.

Ziel der ersten Projektphase ist mit Hilfe eines Fragebogens, die Prozesse der einzelnen Verbände aufzunehmen und zu ermitteln in welchen Verbänden Interesse am Projekt existiert.

  • Entspricht das oben beschriebene Vorgehen auf Euren Verband?
  • Wer vergibt bei Euch die Rasternummern?
  • Habt Ihr andere Prozesse?
  • Wie sieht der zeitliche Ablauf aus?
  • Gibt es bei Euch weitere Prozesse, die hier nicht beschrieben sind?
  • Ist für Euch eine Automatisierung der Rasternummer-Vergabe vorstellbar?
  • Wie sehen Eure Schemata aus? Verwendet Ihr das Schollmeyer-Raster oder ein eigenes?

Hier geht es zur Umfrage >>

Vielen Dank für die Teilnahme an der Umfrage und für die Interesse am Projekt!!