Developer Experience – von intuitiv bis komplex

Es klingt nach einer spannenden Zukunftsvision: Anwender:innen jedes Fachbereichs nutzen vorgefertigte Programmbausteine, um schnell und einfach Simulationen, Optimierungsaufgaben oder Analysen mittels Künstlicher Intelligenz (KI) zu erstellen. Das können dann auch Fachabteilungen umsetzen, deren Mitarbeiter:innen nicht über Kenntnisse in einer höheren Programmiersprache verfügen. Soweit die Idee. Vorab müssen Entwickler:innen diese Programmbausteine natürlich erstellen, damit Fachanwender:innen daraus eine für ihre Anforderung passende Lösung zusammensetzen können.

KI-gestützte Analysen für die Fachabteilung

Gemeinsam mit unseren Partnern forschen wir im Projekt KI-Marktplatz daran, dieser Vision ein Stück näher zu kommen. Namensgebendes Ziel ist es, KI-Anwendungen auf dem Gebiet des Produktentstehungsprozess zu entwickeln und auf einer zentralen Handelsplattform anzubieten. Das Angebot soll zudem Services, wie zum Beispiel Seminare zu ausgewählten KI-Themen oder Auftragsentwicklungen sowie fertige KI-gestützte Apps und Programmblöcke für ganz spezielle Aufgaben umfassen. Die Entwicklung und Wiederverwendung der Apps befinden sich aktuell in der Erprobung. Parallel dazu evaluiert das Projektteam Nutzen und Qualität der Resultate.

Verschiedene Programmierebenen für eine breitere Anwendung

Soweit der Stand der Forschung, aber wie genau unterstützen wir bei CONTACT die Entwicklung wiederverwendbarer Programmbausteine, die Integration von Simulationsmodellen oder KI-gestützter Analysemethoden? Ein Beispiel für den Einsatz in der Praxis findet sich im Bereich der vorausschauenden Wartung (englisch: predictive maintenance). Vorausschauend heißt, dass Wartungszeiträume nicht wie bisher in festen Abständen stattfinden, sondern in Abhängigkeit von Betriebsdaten und Ereignissen an der Maschine oder Anlage berechnet werden. Unsere Plattform Elements for IoT stellt für solche Anwendungsfälle eine Lösung bereit, Betriebsdaten direkt zu analysieren. Dabei speichert der Digitale Zwilling die Daten der jeweiligen Maschine oder Anlage in einem eindeutigen Kontext. Diese lassen sich anhand einer blockbasierten Programmierung direkt abrufen und einfach auswerten. Mit der No-Code-Funktionalität der IoT-Plattform können Fachabteilungen Digitale Zwillinge intuitiv erstellen, automatische Regeln definieren und Ereignisse überwachen sowie Diagramme und Dashboards anlegen – ohne eine Zeile Code zu schreiben.

Darüber hinaus gibt es Anwendungen rund um den Digitalen Zwilling, die mehr Programmier-Know-how erfordern. Hierfür bietet die Plattform Analysten die Möglichkeit, mit einem Jupyter Notebook oder anderen Analysewerkzeug ihre Modelle in einer höheren Programmiersprache selbst zu entwickeln. Vor allem im Bereich des Prototyping ist Python die Sprache der Wahl. Es ist aber auch möglich, mit einer Compiler-basierten Programmiersprache wie C++ zu arbeiten. Eine kontinuierliche Berechnung der Prognosen erfolgt dann über eine Automatisierung der Modelle, die in einer Laufzeitumgebung zur Verfügung stehen. Die Ausführung des Codes erfolgt entweder in der eigenen IT-Infrastruktur oder direkt an der Anlage oder Maschine im Feld (Edge).

Dieses Vorgehen fassen wir unter dem Begriff Low-Code-Entwicklung zusammen, da nur noch der Code für die Entwicklung der Modelle geschrieben wird. Die Datenanbindung erfolgt über den Digitalen Zwilling und geschieht konfigurativ. Das Stück Programm-Code kann dann für verschiedene Anwendungen, wie beispielsweise Digitale Zwillinge innerhalb einer Flotte, als Programmblock wiederverwendet werden.

CONTACT Elements for IoT ist somit offen für Interaktionen auf unterschiedlichen Levels: Von der Verwendung vordefinierter Bausteine (No-Code), über die Möglichkeit, mit selbstgeschriebenem Programm-Code zu interagieren (Low-Code), bis zur Definition eigener Geschäftsobjekte und der Erweiterung der Plattform auf der Basis von Python.

Digitale Barrierefreiheit für alle

Moderne Software sollte barrierefrei sein. Doch was für Barrieren kann Software haben und für wen? Und wie können Softwarehersteller diese beseitigen? Das allgemeine Verständnis von barrierefreier Software bezieht sich zumeist darauf, dass Menschen mit Behinderungen oder anderen körperlichen Einschränkungen sie gut bedienen können. So reduziert eine derart gestaltete Software beispielsweise die Verwechslungsgefahr von farblichen Darstellungen auf dem Monitor bei einer Rot-Grün-Sehschwäche oder erleichtert Menschen mit Parkinson die Bedienung der Maus. Das ist ein wichtiger Anspruch, den moderne Software erfüllen sollte.

Denkt man den Ansatz, dass allen Nutzer:innen keine Barrieren bei der Bedienung im Weg stehen dürfen, konsequent weiter, so zeigt sich schnell, dass jeder Mensch bei der Benutzung eines Computers mehr oder weniger große Einschränkungen erfährt. So sind zum Beispiel auch für normal sehende Anwender:innen Elemente der Programmoberfläche auf einem schlechten Monitor schwer zu erkennen, die Umgebung kann zu laut sein, um sich zu konzentrieren oder die Maus aufgrund einer aktuellen Handverletzung nicht bedient werden. Barrierefreiheit geht also alle an!

Barrierefreiheit als Standard

Für Consumer Software ist das Reduzieren oder Eliminieren von Bedienbarrieren längst Standard. So kann ich etwa die Schrift auf meinem iPhone größer stellen oder mir Texte vorlesen lassen. Für das World Wide Web wurden schon früh die Web Content Accessibility Guidelines (WCAG) etabliert. Als internationaler Standard bieten sie Entwickler:innen Richtlinien, um Websites möglichst allen zugänglich zu machen. Sie sind mittlerweile der De-facto-Standard für barrierefreie Bedienerlebnisse schlechthin und sogar Gesetzestexte zur Gleichstellung von Menschen mit Behinderungen referenzieren darauf.

Barrieren beseitigen – Kräfte freisetzen

Diesen Standards zu folgen, bedeutet für mich nicht nur, meiner Verantwortung als Produktdesigner nachzukommen. Es bedeutet schlicht auch eine garantierte Verbesserung der Produktqualität – für alle Anwender:innen. Schließlich profitieren nicht nur Nutzer:innen mit besonderen visuellen Einschränkungen von kontrastreicher Darstellung oder einer Tastatursteuerung, um nur zwei Beispiele zu nennen. Die Unternehmerin und Accessibility-Fürsprecherin Debrah Ruh hat es auf den Punkt gebracht: „Accessibility allows us to tap into everyone’s potential.” Ich finde, das passt hervorragend zu unserem Anspruch bei CONTACT: Energizing great minds.

Terminplanung – Der Hammer des Projektmanagements?

Mark Twain wird das Bonmot zugeschrieben „Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel“. Auch wenn nicht zweifelsfrei geklärt ist, wer tatsächlich der Urheber dieser Äußerung ist, bleibt es die wohl prägnanteste Formulierung für „Maslows Hammer“.

Was hat das mit Projektmanagement zu tun?

Bei Projektmanagement-Software beobachte ich immer wieder, dass Anwender versuchen, mit nur einem Werkzeug, nämlich der Terminplanung, verschiedenste Ziele zu erreichen. Verübeln kann man es ihnen nicht, verleiten doch viele Projektmanagement-Tools die Benutzer genau dazu.

Dabei entstehen Pläne aus Hunderten oder Tausenden von tagesgenauen Aufgaben. Mir begegnen dabei nicht selten auch Vorgänge in Frageform, wie „Spezifikation freigegeben?“, „Kundenpräsentation erfolgt?“ und Ähnliches, versehen mit Dauer, Termin und Vorgangsverknüpfungen.

Überdetaillierte Planung rächt sich im Projekt

Das Dilemma: Solche Pläne sind nur scheingenau, mit vielen aus Vorgangsverknüpfungen berechneten Detailterminen. Obwohl jeder Beteiligte eigentlich weiß, dass bei größeren Projekten keine Aktivität auf den Tag genau eingehalten wird. Dennoch tun alle so, als ob der Plan exakt so richtig wäre.

Auch die Praxis, die Ressourcenauslastung zu managen, indem man alle Aufgaben einer bestimmten Person hintereinander verknüpft, geht nur so lange gut, bis man die Planung ändern muss. Dann stimmt das ganze Planungsgefüge nicht mehr. Aber das Terminplanungstool berechnet die Termine weiterhin erbarmungslos nach Netzplan.

Je detaillierter der Plan ist, desto aufwändiger sind Änderungen im Projektverlauf. Sie verschieben eine Aufgabe und ganz viele andere verschieben sich mit – nur leider nicht so, wie Sie das erwartet hätten. Sie verstehen Ihren eigenen, zu komplizierten Netzplan nicht mehr und benötigen hohen Umplanungsaufwand für neue Scheingenauigkeit. Manche lassen den Plan dann gleich unverändert und beginnen stattdessen zu improvisieren.

Nutzen Sie den ganzen Werkzeugkasten

Hier liegt es nahe, an agile Vorgehensweisen als Alternative zu denken. Doch dafür muss man sein Projektmanagement nicht unbedingt komplett ändern. Viele erfahrene Projektmanager sagen: „Agilität ist ja nichts Neues. Bei mir ist es halt kein Task Board, sondern eine gute alte Offene-Punkte-Liste.“ Und genau das ist der Schlüssel. Planen Sie nur so genau wie nötig und wie wirklich sinnvoll. Das Motto lautet hier: Lieber eine gute Grobplanung als eine schlechte Detailplanung. Auch wenn der Grobplan wahrscheinlich nicht so eintrifft wie gedacht, lässt er sich viel einfacher korrigieren und macht den Impact auf das Projekt schneller ersichtlich.

Für Detailthemen ist eine Liste offener Punkte (LOP) mit klar festgelegten Verantwortlichkeiten das Werkzeug der Wahl. Und für alles, was Sie in Frageform einplanen wollen, helfen Checklisten, die regelmäßig im Projektverlauf überprüft werden. Bei Nichterfüllung setzen Sie eine Maßnahme auf Ihre LOP. Und vielleicht erfassen und beobachten Sie Risiken und definieren Gegenmaßnahmen, um rechtzeitig und effektiv gegenzusteuern. Damit sind Sie in aller Regel sehr viel besser aufgestellt für ein erfolgreiches Projekt.

Also: Verwenden Sie den Hammer wirklich nur für Nägel. Für alles andere greifen Sie ruhig zu Zange, Schraubendreher oder Schraubenschlüssel!