Bachelorarbeit: Anbindung von Slack an das Desksharing-Tool desk.ly

Abschlussarbeit Slack/desk.ly

Luise Spata hat sich im Rahmen ihrer Bachelorarbeit mit der Anbindung des Instant-Messaging-Dienstes Slack an das Desksharing-Tool desk.ly auseinandergesetzt. Im Fokus der Arbeit steht die Entwicklung einer Check-in-Möglichkeit von desk.ly-Buchungen über Slack und die Evaluierung verschiedener Umsetzungen. In diesem Artikel stellt Luise ihr Projekt vor.

Mein Weg zu basecom 

Während meines Studiums im Zweifächer-Bachelor Informatik/Physik an der Universität Osnabrück habe ich festgestellt, dass ich meine berufliche Zukunft im Bereich der Softwareentwicklung sehe. Um diese Entscheidung zu bestärken, wollte ich meine Bachelorarbeit in einem praktischen Kontext der Informatik schreiben. Durch die Empfehlung eines Verwandten bin ich dann auf basecom aufmerksam geworden und war nach meinem Bewerbungsgespräch direkt überzeugt. Die Themenfindung für die Arbeit hat sich ebenfalls schnell ergeben, da ich die Anbindung von Slack an desk.ly von Anfang an spannend fand. Für mich war es vor allem wichtig, eine praktische Arbeit zu schreiben und somit die Aufgaben einer Softwareentwickler*in besser kennenzulernen. 

Die Ausgangssituation

Bei basecom wird die Nutzung von Arbeitsplätzen anhand von Buchungen über das Desksharing-Tool desk.ly organisiert. Vergessene, nicht genutzte Buchungen blockieren Arbeitsplätze und begrenzen damit die Flexibilität im Büro. Um gebuchte, aber ungenutzte Plätze freigeben zu können, soll ein täglicher Check-in des gebuchten Arbeitsplatzes erfolgen. Zur Umsetzung habe ich im Zuge meiner Bachelorarbeit eine Anbindung des Instant-Messaging-Dienstes Slack an desk.ly prototypisch umgesetzt. Über die Anbindung werden Erinnerungen an getätigte Buchungen in Form einer Check-in-Aufforderung in Slack verschickt. Fokus der Arbeit ist das Zusammenspiel der Schnittstellen von desk.ly und Slack, um die Buchungsdaten spezifisch an die passenden Nutzer*innen in Slack zu verschicken. Ich habe drei Prototypen entwickelt, in denen die Kommunikation der Schnittstellen und das Versenden der Nachrichten in Slack unterschiedlich umgesetzt wird. 

Allgemeine Umsetzung 

Zunächst werden die Gemeinsamkeiten der Prototypen vorgestellt, sodass anschließend nur noch die Spezifikationen der einzelnen Prototypen betrachtet werden. 

Slack stellt Schnittstellen zur Entwicklung eigener Anwendungen (im folgenden Apps) mit und in Slack zur Verfügung. Zusätzlich wird die Erstellung der Apps über das Framework Bolt erleichtert. Bolt ist ein Framework von Slack – speziell für die Erstellung von Slack-Apps – und unterstützt die Programmiersprachen Java, JavaScript und Python. Ich habe meine App in JavaScript umgesetzt, da die Sprache am ehesten mit den sonst genutzten Technologien bei basecom zusammenpasst. Den Code habe ich mit der JavaScript-Laufzeitumgebung Node ausgeführt.

Die Schnittstelle von desk.ly zur Übertragung der Buchungsdaten wurde für die Arbeit simuliert, sodass die Funktionalität der Anbindung unabhängig vom laufenden System geprüft werden konnte. 

Der grundlegende Ablauf der Anwendung ist in allen Prototypen ähnlich. In der Slack-App werden aus den desk.ly-Buchungsdaten personalisierte Nachrichten generiert, die an die Slacknutzer*innen verschickt werden. Die Nutzer*innen erhalten Informationen zu dem gebuchten Platz und die Interaktionsmöglichkeiten ‘Check-in’ und ‘Stornieren’.

Durch eine Interaktion wird eine Funktion in der App ausgelöst, die die Buttons aus der Nachricht entfernt und eine Schnittstellenanfrage an desk.ly schickt. In der Anfrage wird die Art der Interaktion übertragen. Sobald die Anfrage von desk.ly verarbeitet wurde, wird eine Antwort an die Slack-App geschickt. Durch den Empfang der Antwort wird in der Slack-App eine Funktion ausgelöst, mit der die ursprüngliche Nachricht so bearbeitet wird, dass eine Bestätigung der Interaktion erscheint. 

 

  • Prototyp 1
    Im ersten Prototyp werden die Buchungsdaten aktiv von desk.ly an die Slack-App übertragen. Die Übertragung findet dabei abhängig von den hinterlegten Buchungszeitfenstern des Unternehmens statt. Also zum Beispiel immer 15 Minuten vor dem Beginn des hinterlegten Buchungszeitfensters. Dadurch sind die Buchungsdaten möglichst aktuell. Nach der Anfrage wird unverzüglich die Slack Schnittstellenmethode “app.client.chat.postMessage()” zum Versenden der einzelnen Nachrichten verwendet.

 

  • Prototyp 2
    Im zweiten Prototyp werden die gesamten Buchungsdaten eines Tages gebündelt nachts von desk.ly an Slack übertragen. Dieses Vorgehen erleichtert die Umsetzung der Anbindung in desk.ly, da alle Daten unabhängig von den Buchungszeitfenstern übertragen werden und die Verarbeitung in der Slack-App stattfindet. In diesem Prototyp werden die Nachrichten nicht instant verschickt, sondern passend zu den Buchungszeitfenstern geplant. Dafür wird die “app.client.chat.scheduleMessage”- Methode der Slack-Schnittstelle verwendet.

 

  • Prototyp 3
    Für den dritten Prototypen habe ich die Initialisierung der Aktivität umgekehrt. In dieser Variante fragt die Slack-App die Buchungsdaten von desk.ly an. Anschließend werden die Daten äquivalent zum zweiten Prototypen verarbeitet.

Vergleich der Prototypen/Ergebnis 

Zur Beurteilung der unterschiedlichen Prototypen habe ich Vor- und Nachteile der Umsetzung herausgearbeitet. Dabei ist herausgekommen, dass der Ansatz des dritten Prototyps die geeignetste der betrachteten Umsetzungen ist. Der wichtigste Punkt ist dabei, dass im dritten Prototyp die Verantwortlichkeiten für die Anbindung klar getrennt sind. In desk.ly muss ausschließlich eine geeignete Schnittstelle zur Verfügung gestellt werden, alle weitere Logik liegt in der Slack-App. Diese Struktur ermöglicht eine qualitative, klare Weiterentwicklung der Anbindung. 

Insgesamt konnte in der Arbeit eine Anbindung von Slack an desk.ly umgesetzt werden, die eine Check-in Möglichkeit bietet. Eine weitere Entwicklung einer Anbindung von Slack an desk.ly auf Basis der Ergebnisse meiner Arbeit ist geplant.

Wie geht es jetzt weiter?

Ich habe meine Zeit bei basecom sehr genossen und die bestmögliche Unterstützung für meine Bachelorarbeit bekommen. Daher hat es mich besonders gefreut, als ich gefragt wurde, ob ich auch nach meinem Studium bei basecom bleiben und meinen Berufseinstieg absolvieren möchte. Nach ein paar Monaten Pause bin ich jetzt also wieder bei basecom in der Academy und freue mich auf meinen Einstieg in die Business Unit als Junior Software Developer.

 

An dieser Stelle bleibt nur zu sagen: Danke Luise für deinen ausführlichen Bericht! Wir freuen uns, dass du uns als Software Developer erhalten bleibst.  

Wenn auch du Interesse daran hast, deine Bachelorarbeit bei basecom zu schreiben, dann informiere dich auf unserer Karriereseite www.wirsprecheninter.net. Wir freuen uns auf deine Bewerbung!