Das ewige Open Space-Dilemma: Zu viele spannende Sessions, die eine zufriedenstellende Planung für alle Teilnehmer*innen erschweren. Unsere „Holisticon Open Space Satisfaction App”, kurz HOSSA, geht dieses Problem an und unterstützt bei der Organisation von Open Spaces. Teilnehmer*innen können über die Weboberfläche Sessions anlegen und ihr Interesse an bereits eingetragenen Sessions bestätigen. Anhand dieser Daten erstellt HOSSA einen Zeitplan, der möglichst viele Teilnehmer*innen glücklich macht.
Wie gut das funktioniert, konnten wir nicht nur auf unseren internen Werkstätten testen, sondern zuletzt auch auf dem PM Camp Hamburg 2021. Initial für die Verwendung von Veranstaltungen „vor Ort“ konzipiert, zeigt sich die App damit auch für Remote-Veranstaltungen erfolgreich. Von Teilnehmer*innen wird sie als Open Space-Tool mit echtem Mehrwert sehr positiv aufgenommen.
Hier lassen sich Sessions hinzufügen und auswählen. In der Eingabemaske können einzelne Sessions angelegt werden. Aus den erfassten Daten gestaltet HOSSA den optimalen Zeitplan.
CSP: die Technik hinter HOSSA
Die Anwendung wird gemeinsam mit mehreren Kollegen aus dem Smart Data Workstream in unserer „Holisticon-Zeit“ entwickelt, wie es zu der Idee kam, haben wir bereits im letzten Jahr erzählt. Für die Entwicklung hat sich unser Team intensiv mit Constraint-Satisfaction-Problems (CSPs) auseinandergesetzt und verschiedene Lösungsmöglichkeiten für das Problemfeld „Erstellung eines Zeitplans unter Einhaltung verschiedener Bedingungen“ betrachtet. Für HOSSA haben wir uns dann für den Constraint Solver Optaplanner entschieden. Diese Java-Bibliothek ermöglicht es auf eine für viele Entwickler gewohnte Art, die Problemdomäne zu definieren und Bedingungen zu formulieren.
Für die Zuteilung von Räumen und Zeiten auf Sessions haben wir die Klassen Session
, Room
und Timeslot
modelliert. Im Optaplanner-Kontext bezeichnen wir die Session
Klasse als PlanningEntity und die Klassen Room
und Timeslot
als ProblemFact. Die Bibliothek weist im Rahmen des Lösungsverfahrens den Session
-Instanzen verschiedenen Raum-Zeit-Kombinationen zu und bewertet diese Konstellationen anhand von Bedingungen. Die Bedingung, dass in einem Raum nur eine Session zur Zeit stattfindet, lässt sich damit wie folgt definieren:
fun roomConflict(factory: ConstraintFactory): Constraint {
return factory
// Paare von unterschiedlichen Sessions selektieren,
// die zur selben Zeit im selben Raum stattfinden.
.fromUniquePair(
Session::class.java,
equal(Session::timeslot),
equal(Session::room)
)
// Treffer werden "bestraft"
.penalize("Room conflict", HardSoftScore.of(1, 0))
}
Intuitive Weboberfläche
Die Entwicklungsarbeiten in den letzten Wochen haben sich dann vor allem auf die Benutzeroberfläche konzentriert. Der Austausch und die Zusammenarbeit mit Kollegen aus dem Workstream Web & Mobile hat geholfen, die bis dahin prototypische Anwendung hinsichtlich ihrer User Experience zu verbessern. Eine einfache und intuitive Bedienbarkeit ist dabei wichtig, damit die Durchführung der Veranstaltung nicht behindert wird. Darum gibt es auch keine umständliche Anmeldung, die Teilnehmer*innen können sofort loslegen. Erfasst werden lediglich die zur Durchführung der Veranstaltung wirklich notwendigen Daten. Das stimmt auch die Datenschutzbeauftragten glücklich.
An Ideen und Feedback zu neuen Funktionen in HOSSA und zusätzlichen Bedingungen für die Erstellung des Zeitplans mangelt es uns nicht. Wir freuen uns darauf, die Anwendung weiterzuentwickeln und auf vielen Veranstaltungen im Einsatz zu sehen.
Du hast Interesse an der Nutzung von HOSSA für deine Firma, deine Veranstaltung oder deinen Verein? Melde dich gerne bei Stefan Merkl oder Christian Neuenstadt.