Grüß Bot! Wir sollten reden.

Wöchentliche Projektstatusbesprechung. Wie viele Stunden sind bisher angefallen? Blick in die Zeiterfassung. Wie viel war ursprünglich geschätzt? Blick ins Angebot. Was ist noch zu tun? Blick in unsere Aufgabenliste. Geht sich der vereinbarte Fertigstellungstermin aus? Blick in die Ressourcenverwaltung.

Liebe Software-Entwickler: Wie würden Sie diesen Prozess vereinfachen? Durch eine zentrale Web-Anwendung, die alle Informationen aus den verschiedenen Systemen sammelt und übersichtlich visualisiert? Haben wir uns auch gedacht – aber es geht besser.

Bot 1

Die Rede ist von Conversational User Interfaces (auch CUI oder Bots genannt):

  • Interaktion mittels (geschriebener oder gesprochener) Sprache
  • Start der Konversation durch den Benutzer oder proaktiv durch den Bot
  • Verwendung von Chat-Anwendungen wie Skype, Messenger oder Slack anstelle einer grafischen Benutzeroberfläche
  • Unterstützung bei der Erledigung von Aufgaben

Interaktion mittels Sprache

Sprache ist die natürlichste Form der Interaktion. Seit Jahrzehnten wird versucht, auch Software mittels Sprache zu steuern – mit wechselhaftem Erfolg. Zu kompliziert ist die Grammatik, zu mehrdeutig manche Wörter, zu unterschiedlich die Aussprache. Doch die Technologie schreitet voran, Sprachassistenten wie Siri, Google Assistant, Cortana oder Alexa verstehen uns bereits in beeindruckender Art und Weise. Microsoft stellt in Form der Cognitive Services einige APIs bereit – zum Beispiel das Custom Speech Service (eine auf die eigene Domäne angepasste Speech-to-Text-Erkennung) oder das Language Understanding Intelligent Service (die Erkennung der Bedeutung von Sätzen und relevanten Wörtern mittels Machine Learning).

Es warten aber auch nicht-technische Herausforderungen auf die Entwickler: Die Gestaltung von Sprach-Schnittstellen verlangt andere Fähigkeiten als die Anordnung von Buttons auf einer Oberfläche: Wie spreche ich den Benutzer an? Wie lang sollen die Sätze sein? Reicht es aus, wenn wir zu 80 % glauben, den Benutzer verstanden zu haben – oder fragen wir noch einmal nach?

Proaktive Konversation

Und: Wie oft meldet sich der Bot, ohne gefragt zu werden? Der vielleicht spannendste Unterschied zu herkömmlicher Software ist die Möglichkeit, den Benutzer jederzeit direkt anzusprechen. Informationen werden nicht bereitgestellt und bei Bedarf abgerufen – stattdessen ist die Software so intelligent, bei gewissen Auffälligkeiten aktiv zu werden und eine Aktion vorzuschlagen.

Die Grenze zwischen einem aktiven und einem hyperaktiven Bot ist aber nicht leicht zu ziehen und möglicherweise vom Benutzer und seiner Tagesverfassung abhängig. Im Idealfall lernt der Bot mit der Zeit und hält sich mit Kontaktaufnahmen zurück, um nicht unangenehm aufzufallen.

Chat-Channels

Die Kommunikation zwischen Mensch und Bot findet dort statt, wo der Benutzer ohnehin bereits aktiv ist: in Chat-Programmen wie Skype, Messenger, Slack oder Microsoft Teams. Das Microsoft Bot Framework ermöglicht die Entwicklung unabhängig von der konkreten Plattform: Der Bot wird zentral als REST-Service implementiert und für die gewünschten Channels freigeschaltet. Selbstverständlich begleitet der Bot den Benutzer auch mobil – dann eben in der Skype- oder Messenger-App am Smartphone.

Erledigung von Aufgaben

Von nutzlosen Witze-erzähl-Bots einmal abgesehen: Im professionellen Umfeld sollte ein Bot mehr sein als bloße Unterhaltung. Im Idealfall hat er Schnittstellen zu allen relevanten Systemen und bietet dem Benutzer echte Lösungen an – unabhängig, was im Hintergrund dafür notwendig ist.

Dieses Denken in konkreten Aufgaben und Use-Cases hat einen durchaus gesunden Effekt, der auch beim Entwickeln von herkömmlichen Web- oder Desktop-Anwendungen nützlich ist. Während man bisher vielleicht ein Menü mit zahlreichen Unterpunkten angeboten hat („Der Benutzer soll auswählen, was er sehen will!“) erfordert die auf Nachrichten reduzierte Benutzeroberfläche eines Bots viel mehr Auseinandersetzung mit dem perfekten Ablauf („Was will der Benutzer als nächstes entscheiden? Was muss er dafür wissen?“).

Der Tagebuch-Bot

Der oben beschriebene Bot existiert wirklich und wird u.a. von Michael Steiner im Zuge seiner Bachelorarbeit an der JKU Linz entwickelt. Unsere Kunden haben schon bisher über das Software-Tagebuch im Web Zugriff auf den aktuellen Projektstatus und die detaillierte Zeiterfassung. Der dazu passende Bot unterstützt uns (vorerst intern) bei der Dokumentation und dem pünktlichen Liefern von Features – und erlaubt uns gleichzeitig, Praxiserfahrung bei der Entwicklung von intelligenten Bots zu sammeln. Sollten Sie auch ein spannendes Projekt zu diesem Thema haben: Wir sollten reden!

Hinweise zur Entwicklung Einige Beispiele und Anleitungen zur Entwicklung von Bots mit Hilfe des Microsoft Bot Frameworks haben wir auf Github unter Samples Botframework zur Verfügung gestellt.