Vor einem Jahr kam alles anders. Wir waren uns der Tatsache gar nicht bewusst, aber noch ging alles ruhig seinen Weg mit der Computersoftware. Natürlich gab es die üblichen treibenden Faktoren für neue Entwicklungen: Konkurrenten, funktionale Anforderungen durch Kunden oder Anwender, Neuerungen an Betriebssystemen, strategische Planung für neue Plattformen, Fehlerbehebung, und anderes mehr. Dann jedoch stand ganz plötzlich die Welt still, als sich der Coronavirus Version 2020 (oder 2019, so genau weiß man das ja nicht) verbreitete.

„Dann arbeiten wir einfach alle mal eine Weile von daheim,“ meinte die Chefin. Recht hat sie, so soll es sein. Kann ja nicht so schwer sein – immerhin gibt’s ja schon BYOD, „bring your own device“, die Idee, dass Mitarbeiter mit dem eigenen Tablet, Handy oder gar Laptop in der Firma mitarbeiten können. So mancher Mitarbeiter war es schon gewohnt, ab und zu mal von zuhause zu arbeiten. Das Prinzip ist schließlich dasselbe. Und die IT ist eh auf dem modernsten Stand, richtig? Richtig. Natürlich. Wie soll man auch sonst auf diese Fragen antworten…

Plötzlich gibt es ein neues Anforderungsprofil

Das Problem war an dieser Stelle nicht, dass die Systeme nicht den Anforderungen genügten, oder dass die Implementation schlecht war, oder dass manchmal etwas nicht wie vorgesehen funktionierte. Das Problem war, dass von einem Tag auf den anderen ein neues Anforderungsprofil existierte. Diese Tatsache war nicht immer und überall offensichtlich, und tatsächlich gibt es noch nach sechs Monaten erstaunlich viele Firmen, die sich nicht an die neue Realität gewöhnt haben, wo die Chefs immer noch meinen, demnächst werde alles wieder ganz normal sein.

Nun denkt vielleicht so mancher von Ihnen, wenn Sie diesen Artikel lesen, dass ich etwas übertreibe. So schlimm, so anders, ist doch alles gar nicht. Vielleicht stimmt das für Sie – die Dinge sind nicht überall gleich schlimm. Das hängt von vielen Faktoren ab – die Art des Geschäfts, die Struktur der Firma, die Örtlichkeiten (städtisch, ländlich, in Deutschland oder anderswo), die Handhabung seitens der Regierungen im lokalen und weiteren Umfeld. So manche Firma hatte vielleicht Glück. Corona war hauptsächlich anderswo, die eigene Technik war gerade in den letzten zwei Jahren nochmal generalüberholt worden, die Mitarbeiter sind flexibel. Aber im Jahre 2020 arbeitet niemand auf der grünen Wiese, es gibt Zulieferer und Abnehmer und Kooperationen weltweit, und so betrifft das Problem letztlich doch beinahe jedes Unternehmen.

Was ist nun eigentlich das Problem, um das es hier geht? Im Kern ist es eigentlich ganz einfach zu beschreiben: Software muss von überall verwendbar sein. Natürlich sollten wir uns freuen, dass heutzutage alles auf Software basiert. Keine Ahnung, was wir vor vielleicht 30 Jahren gemacht hätten. Heute gibt’s aber Software, in praktisch jedem großen oder kleinen Betrieb, auf Computern, Tablets und Handys, und natürlich in der Cloud. Wenn es nun angesichts von Isolation und dezentraler Arbeitsweise mit dem Geschäft weitergehen soll, muss die vorhandene Software von überall nutzbar sein. Das ist alles. Ganz einfach.

Software überall – dabei bleibt’s

Auf die Details dieser neuen Anforderung (und auch darauf, warum und inwiefern sie neu ist!) werde ich gleich noch weiter eingehen. Zunächst möchte ich noch betonen, dass die Zustände sich nicht einfach wieder zurück ändern werden. Dazu gibt es bereits aussagekräftige Zahlen und Statistiken, und auch auf menschlicher Ebene ist das sehr verständlich. Ich greife einmal vor: nachdem nun der Arbeitnehmer gesehen hat, dass er gar nicht jeden Tag im Büro sein muss, um sinnvolle Arbeit zu leisten, wird er nicht sehr einfach wieder zur Fahrt ins Büro zu motivieren sein. Viele Menschen suchen nach alternativen Wohngegenden, die Stadt hat viel an Verlockung verloren. Früher stand man am Morgen eine Stunde eher auf, um sich allgemein präsentabel zu machen und dann 45 Minuten zur Arbeit zu fahren. Nach dem Kampf mit dem Verkehr wurde etwas gearbeitet, bevor dann zu Mittag im Imbiss Geld ausgegeben werden musste, noch etwas Arbeit und eine lange Fahrt zurück nach Hause. Stattdessen geht das heute anders – solange der Oberkörper auf der Webcam ordentlich aussieht, ist man für die Arbeit schön genug. Daheim essen ist billiger und gesünder, man spart viel Zeit jeden Tag, indem die lange Fahrt und die Parkplatzsuche durch ein paar Schritte zu Couch oder Schreibtisch ersetzt worden sind. Warum sollte man das wieder ändern?

Verstehen Sie mich nicht falsch: beide Seiten einer solchen Diskussion haben viele gute Argumente. Obwohl die Veränderung schnell und unerwartet kam, gehe ich davon aus, dass sie nicht schnell, vielleicht auch niemals, rückgängig gemacht werden kann. Letztlich ist das auch oft gar nicht im Interesse der Arbeitgeber – wenn es da nicht die ausstehenden technischen Probleme gäbe! Nun also zurück zu diesen…

Softwarearchitektur nach Covid 19- Abbildung: Fernzugriff auf Unternehmenssoftware war in der Vergangenheit oft bestimmten Mitarbeitern oder Abteilungen vorbehalten

Fernzugriff auf Unternehmenssoftware war in der Vergangenheit oft bestimmten Mitarbeitern oder Abteilungen vorbehalten

Problem Nummer 1: Die Software der Vergangenheit ist nicht einfach genug zugänglich. Die wenigsten Unternehmen hatten bisher Software, die beliebig von jedem Mitarbeiter von überall her eingesetzt werden konnte und durfte.

Zum Beispiel gab es vielleicht eine Desktop-Software, die von Mitarbeitern intern verwendet wurde. Theoretisch war es auch möglich, diese Software mithilfe von Remote Desktop-Technologie von außen zu nutzen, oder vielleicht über ein VPN. Praktisch wurde dies allerdings nur für die Geschäftsführung tatsächlich angeboten, weil die Kosten der notwendigen Infrastruktur zu hoch waren und die „normalen“ Mitarbeiter sowieso nur in Ausnahmefällen von daheim arbeiten durften.

Als zweites Beispiel gab es anderswo vielleicht auch eine Web-Version einer internen Software. Allerdings wurde diese ursprünglich für einen spezifischen Zweck entwickelt, etwa zur Unterstützung der Außendienstmitarbeiter. Daher ist die Web-Software funktional eingeschränkt – das wurde bisher für eine Tugend gehalten, da durch die Abwesenheit vieler Funktionen manche potentiellen Sicherheitsbedenken besänftigt werden konnten.

Bestehende Lösungen gehen nicht weit genug

Viele Firmen finden sich in der Situation, dass manche Teile der Anforderung „Zugriff jederzeit von überall“ bereits abgedeckt werden können, jedoch andere Teile schwer einzubeziehen sind. Oft hapert es außerdem am Detail. Die Desktop-Software wurde in der Vergangenheit immer nur in der spezifischen Windows 7-Umgebung getestet, die auf den Büro-PCs installiert ist. Nun haben die Mitarbeiter daheim aber keine solchen PCs – was tun? Man könnte ihnen die PCs aus dem Büro mit nach Hause geben, aber wer pflegt die dann? Wie sorgt man dafür, dass keine Spiele oder schlimmeres drauf installiert werden? Vielleicht dürfen die Mitarbeiter die Software auch auf eigenen PCs installieren, aber sie brauchen für den Zugriff auf die Unternehmensdatenbanken VPN-Zugang. Bekanntlich können Hacker so einen Weg bis ins Unternehmensnetzwerk finden, besonders wenn private PCs mit beliebiger zusätzlicher Software ins Spiel kommen. Und was ist eigentlich, wenn die Mitarbeiter privat lieber Macs benutzen?

Dies sind also die Gründe, warum ich die Anforderungen “neu” nenne: die Details sind jetzt anders, die Priorität ist anders, und eine Lösung ist existentiell wichtig. Die grundlegende Idee gibt es natürlich schon lange, aber in den meisten Umgebungen wurde bisher nur halbherzig nach Wegen gesucht.

Natürlich spaltet die Entscheidung zwischen nativer Desktop-Software und dem Web schon immer – oder zumindest seit vielen Jahren – die Entwicklergemeinde. Viele Entwickler mögen JavaScript nicht, vertrauen der Ausführungsgeschwindigkeit einer Webanwendung nicht, vermissen die Nähe zum System, den Eindruck der Omnipotenz, die man als Programmierer einer Bare Metal-Anwendung verspüren kann. Mein persönlicher Eindruck ist es, dass die Gründe, Webtechnologie zu verabscheuen, meistens eher subjektiver Natur sind. Tatsächlich funktioniert Software auf Basis von Webtechnologie einwandfrei, für die meisten Anwendungsgebiete, und dafür gibt es zahllose Beispiele. Es gibt auch Umfelder, wo das gar nicht in Abrede gestellt wird, aber trotzdem mit Desktop-Software weitergearbeitet wird – einfach, weil der Aufwand zu hoch erscheint, die Funktionalität neu zu entwickeln.

Unter den aktuellen Umständen, mit den beschriebenen neuen und zukünftigen Anforderungen, ist es Zeit, die Situation objektiv zu bewerten. Das soll natürlich nicht bedeuten, dass Desktop-Software automatisch ausgeschlossen wird. Nehmen wir einmal an, es gäbe eine Unternehmenssoftware für den Desktop, etwa mit WPF oder WinForms oder Delphi geschrieben, die in klassischer Art mit einem Datenbankserver kommuniziert. Die Software ist womöglich auch mit Office integriert, verwendet etwa Automation zur Erzeugung von Excel-Dateien oder ähnliches. Was ist zu tun, um diese Software für alle Mitarbeiter zugänglich zu machen? Offensichtlich ist eine Neuentwicklung als Webanwendung nicht einfach, und schon gar nicht in kürzester Zeit zu erledigen.

Softwarearchitektur nach Covid 19 - Abbildung: Desktop-Software auf Mitarbeiter-Computern daheim kommuniziert mit der Firmendatenbank durch ein VPN

Desktop-Software auf Mitarbeiter-Computern daheim kommuniziert mit der Firmendatenbank durch ein VPN

Wenn ich wie ein Entwickler oder Softwarearchitekt denke, fallen mir als erstes technische Probleme ein. Soll die Software auf einem beliebigen PC oder Laptop laufen, wie etwa ein Mitarbeiter ihn daheim besitzt, muss dies getestet werden. Sicher gibt es einen Installer, aber den habe ich bisher nur im sorgsam behüteten Umfeld der unternehmenseigenen IT verwendet. Natürlich wird die Software, für Windows geschrieben, auch nur auf Windows funktionieren. Es müssen also Lösungen her für die Anwender, die einen Mac, ein Chromebook, ein Linux-Gerät oder lediglich ein Tablet oder dergleichen besitzen. Dann geht es weiter mit dem Datenzugriff – der Datenbankserver läuft im Büro, da muss eine VPN-Verbindung her. Diese muss wiederum auf dem Zielsystem installiert und konfiguriert werden, und dann muss irgendwie sichergestellt werden, dass nicht im Heimnetzwerk des Anwenders andere Systeme die VPN-Verbindung für den Zugang zum Firmennetz missbrauchen können – oder natürlich ein Virus auf dem PC. Das sind ziemlich viele komplexe Probleme, besonders wenn ich davon ausgehe, dass der Besuch eines Technikers in der Wohnung des Mitarbeiters nicht ohne weiteres möglich ist.

Desktop-Software mit dem Holzhammer weiterverwenden

Aus einem anderen Blickwinkel fällt mir dann eine vermutlich bessere Lösung ein: Remote Desktop. Der PC des Mitarbeiters im Büro könnte von außen mit einem Remote Desktop-Client angesteuert werden, den es für beinahe jede Plattform gibt. Natürlich will auch dazu der Zugang ordentlich abgesichert sein, aber dafür gibt es fertige Lösungen. Der Mitarbeiter kann dann sofort von daheim mit jeder Anwendung arbeiten, die normalerweise am Arbeitsplatz verwendet wird – das klingt vielversprechend! Natürlich funktioniert das nur, wenn tatsächlich jeder Mitarbeiter einen eigenen PC im Büro hat. Bei geteilten Arbeitsplätzen ist die Sache eventuell komplizierter. Die Pflege der PCs muss nach wie vor im Büro durchgeführt werden. Schließlich sind die Anforderungen an die Internetanbindung enorm, wenn alle Mitarbeiter gleichzeitig von daheim arbeiten – dafür war die Leitung bisher nie gedacht. Es hängt von den Umständen ab, ob für vertretbares Geld eine ausreichend schnelle Anbindung gewährleistet werden kann.

Die Idee „Remote Desktop“ lässt sich noch weitertreiben. Zum Beispiel gibt es in der Amazon Cloud WorkSpaces, und auch andere Anbieter bieten Desktop-as-a-Service an. Natürlich sind solche Umgebungen virtuell. Wer also darauf setzt, dass eine Desktop-Software etwa auch mit lokal angeschlossener Hardware arbeiten kann, wird damit nicht glücklich. Allerdings ist dieser Fall auch nicht mit dem Fernzugriff auf den PC im Büro abzudecken. Grundsätzlich sollte klar sein: Desktop-Software ist unter den Umständen noch immer einsetzbar, aber die monolithische Natur einer solchen Installation macht es notwendig, grobe Schritte für den Zugriff einzusetzen. Es steckt eine gewisse Eleganz in der Einfachheit der Lösung: Remote Desktop anschalten und los geht’s! Noch eleganter wäre es allerdings, wenn die verschiedenen Komponenten einer Softwarelösung separat zu betrachten wären, wenn dedizierte Lösungen für Detailprobleme gefunden werden könnten – dies ist auf Basis von Desktop-Software nicht so einfach. Grundsätzlich ist zum Beispiel ein VPN entweder zwischen zwei Punkten aktiv oder nicht, und der Zugang mittels Remote Desktop ist entweder möglich oder nicht. Diese grobe Granularität bringt ihre eigenen Probleme mit sich.

Im Gegensatz dazu liefert eine Architektur auf Basis von Webtechnologie für Frontends jeden gewünschten Grad der Modularisierung. Theoretisch kann mithilfe von HTML und JavaScript eine Oberfläche gebaut werden, die von einer Desktop-Anwendung visuell nicht zu unterscheiden ist. Die Erfahrung hat gezeigt, dass dies nicht unbedingt der beste Weg ist. Webanwendungen werden oft mit vereinfachten Oberflächen gebaut, und durch ihre Struktur bieten sie sich für Modularisierung an. Im Deployment sind sie unschlagbar flexibel, können von Webservern verfügbar gemacht, auf Desktop-Systemen installiert, oder aus App Stores heruntergeladen werden. Natürlich laufen sie auf jedem Computersystem der modernen Welt – Betriebssysteme sind damit irrelevant.

Elegante Post-COVID-Architektur: Microservices

In diesem Sinne sollte eine Architektur der Wahl nach COVID-19 bewertet werden: sie muss modular und flexibel sein, verteilt oder zumindest nicht ortsgebunden, unabhängig von Systemplattformen besonders für die Anwenderseite, aber möglichst auch für Server bzw. Services. Aus Sicht eines Programmierers lassen sich diese Ziele mit beinahe jeder Programmiersprache und Ausführungsumgebung erreichen: JavaScript, TypeScript, Node.js, ASP.NET Core, C#, Java, Python, Ruby, Go, WebAssembly – sie alle haben eine Rolle zu spielen oder können in bestimmten Bereichen jeweils die Nase vorn haben. Das Konzept der Modularisierung ist ein Metakonzept und entspricht im Wesentlichen der Idee von Microservices. Der Plan, Dienste zu verteilen, dient nicht in erster Linie der Verteilung selbst, sondern der Vermeidung von Bindungen.

Softwarearchitektur nach Covid19 - Abbildung - Eine Umgebung auf Basis von Microservices bietet Funktionalität überall an, modular in Zugriff und Pflege

Eine Umgebung auf Basis von Microservices bietet Funktionalität überall an, modular in Zugriff und Pflege

Wer ein Softwaresystem so gestaltet, dass es überall laufen kann, dass einzelne Komponenten möglichst unabhängig von anderen sind, dass jeder einzelne Teil flexibel ersetzbar ist, der erzeugt Zukunftssicherheit.

Diese Sicherheit entsteht nicht aus der unsinnigen Erwartung, dass die Zukunft sich genau in die geplante Richtung entwickelt, sondern aus dem Verständnis und der Akzeptanz des Ungewissen. Wir müssen aufhören, an die eigene Unfehlbarkeit zu glauben, an die Idee, dass wir auch nur ein paar Jahre technologischer Entwicklung vorhersehen können. Die Vergangenheit zeigt schon seit vielen Jahren immer wieder, dass das nicht funktioniert – und heute ist es ein Virus, das uns die Fehlbarkeit unserer Planung am deutlichsten aufzeigt.

Der Weg vorwärts nach COVID-19 besteht in der Erkenntnis, dass Ersetzbarkeit und Wegwerfbarkeit von Systemkomponenten höchste Priorität haben muss.

 

Titelmotiv: Bild von fernando zhiminaicela auf Pixabay

Oliver Sturm
Letzte Artikel von Oliver Sturm (Alle anzeigen)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Die von Ihnen hier erhobenen Daten werden von der Host Europe GmbH zur Veröffentlichung Ihres Beitrags in diesem Blog verarbeitet. Weitere Informationen entnehmen Sie bitte folgendem Link: www.hosteurope.de/AGB/Datenschutzerklaerung/