Software zwischen Hype und Realität – Einblicke in den Maschinenraum der GFT


Im Rahmen eines INSEAD Alumni Treffens fand vor kurzem eine Vortragsveranstaltung zum Thema „Das Innovationsmanagement in der Softwarebranche und Industrie“ im Corporate Center der GFT statt. Dabei konnten die rund 50 Teilnehmer unter anderem einer spannenden Podiumsdiskussion zwischen GFT Executive Director Bernd-Josef Kohl und Jürgen Wehnert, Senior IT-Architekt bei GFT, folgen. Der Titel lautete „Software zwischen Hype und Realität – Einblicke in den Maschinenraum der GFT“. Wir haben zusammengefasst, worüber sich die Experten unter Moderation von GFT Global Head of Marketing, Jürgen Görner, unterhalten haben.

Jürgen G.: Da nicht alle hier IT-Experten sind, sollten wir zunächst einmal die Begrifflichkeiten Software und Hardware genauer betrachten. Hardware umfasst ja alle physischen Bestandteile eines Computers, während der Begriff Software Programme beschreibt, die zum Betrieb eines Computers notwendig sind. Zunächst wurden Soft- und Hardware noch verbunden und als Einheit wahrgenommen, später sorgte dann eine Entscheidung der US-Regierung in den 1970er Jahren für eine Neuheit, da IBM auf Rechnungen Software und Hardware getrennt berechnen und aufführen musste. Somit wurde die Einzelhaftigkeit von Software sowie die Abgrenzung der Software von der Hardware von offizieller Seite anerkannt.

Bernd-Josef: Das stimmt. Allerdings kann es zu Problemen kommen, wenn man Soft- und Hardware ausschließlich getrennt betrachtet. Ein bekanntes Beispiel sind die Space Shuttles der NASA. Für deren Ausrüstung wurden lange Zeit noch alte 8086 Prozessoren von Intel verwendet, die in der zweiten Hälfte der 70er-Jahre entstanden und damals state-of-the-art waren. Da diese später allerdings völlig veraltet waren und eigentlich gar nicht mehr hergestellt wurden, hatte die NASA große Schwierigkeiten.

Jürgen Görner im Gespräch mit Bernd-Josef Kohl und Jürgen Wehnert (v.l.n.r.)

Jürgen G.: Bei der Softwareentwicklung muss jemand die Software ja erst einmal „machen“. Es gibt Firmen, die stellen hierfür einfach hektisch drei Java-Developer ein… Wie läuft das bei GFT klassisch ab?

Jürgen W.: Eigentlich beginnt alles mit einer Anforderung, im Sinne von „kann man das nicht automatisieren?“, oder „so, wie es ist, ist es nicht optimal“. Und wenn dann jemand das Budget dazu hat, das zu ändern, dann geht es los – wie im richtigen Leben, wenn ich umziehen möchte, wenn beispielsweise das Eigenheim oder die Mietwohnung zu klein geworden oder der neue Job wo anders ist. Bei jedem Entwicklungsprojekt starte ich damit, meine gewünschte Anforderung aufzuschreiben. Im klassischen Wasserfallmodell habe ich dann neben dieser Planung noch die weiteren Phasen Definition, Entwurf, Implementierung, Testen sowie den Einsatz und die Wartung der finalen Software.

Jürgen G.: Aber heute ist doch eigentlich alles „agile“?

Jürgen W.: Wünschenswert ist es natürlich, dass der Kunde seine Anforderung kennt und diese auch nach einiger Zeit immer noch besteht. Die Realität sieht allerdings anders aus. Daher werden heute immer mehr Software-Entwicklungsprojekte agil entwickelt: Nicht alle Anforderungen sind von Beginn an bekannt, und wenn sich Anforderungen im Laufe der Entwicklungszeit ändern, so wird dies im Entwicklungsprojekt berücksichtigt.

Jürgen G.: Und was bedeutet das, wie geht das genau?

Jürgen W.: Die Anforderungen werden als „User Stories“ verfasst, sozusagen als kleine überschaubare Anforderung, von der der Nutzer wirklich einen Mehrwert hat. Diese werden vom Kunden priorisiert und dann nach und nach in sogenannten Iterationen oder Sprints umgesetzt. Das wichtigste Ziel ist dabei, möglichst kurz nach dem Start des Projekts eine Software zu haben, die bereits produktiv eingesetzt werden kann – allerdings noch mit einem sehr beschränkten Funktionsumfang. Der Kunde kann den Fortschritt der Softwareentwicklung mitverfolgen und – ganz wichtig – auch beeinflussen.

„Immer mehr Projekte werden heute agil entwickelt. So kann der Kunde den Fortschritt mitverfolgen und beeinflussen“

Jürgen G.: Bernd, man kann aber auch Standardsoftware verwenden, oder?

Bernd-Josef: Bei neuen Anforderungen sollte man sich immer die Frage stellen, ob nicht eine Standardsoftware die gewünschte Anforderung erfüllt. Denn eine Standardsoftware ist meist günstiger als eine Eigenentwicklung. Häufig kommt man aber zum Entschluss, dass man die gewünschte Anforderung selbst entwickeln muss, da die Standardsoftware doch nicht passt, oder eben nur zu einem Teil. Einige Hersteller bieten daher an, dass der Kunde die Standardsoftware erweitern oder erweitern lassen kann. Und dann muss noch die Hardware berücksichtigt werden, denn Software läuft normalerweise immer auf einer bestimmten Hardware. Eine Standard-PC-Anwendung läuft zum Beispiel nicht auf einem Großrechner, und Software auf einem Samsung-Smartphone läuft nicht auf dem Apple iPhone.

Jürgen G.: Um das Thema etwas technischer zu betrachten: Was ist dein aktuelles Cloud Projekt, Jürgen?

Jürgen W.: Aktuell sind wir bei einem großen Maschinenbauer unterwegs, um eine bestehende Applikation, die etwas in die Jahre gekommen ist, in die Cloud zu bringen. Das Ganze ist in den vergangenen 15 Jahren historisch gewachsen und wie üblich ein Monolith.

Jürgen G.: Was sind denn hier die Vorteile, wenn diese Applikation in der Cloud betrieben wird?

Jürgen W.: Zunächst die scheinbar trivialen Aspekte: Die lokale Installation per CD fällt weg. Bei einer einzigen Installation entspricht das auch ungefähr dem Aufwand, der bei der Installation in der Cloud entsteht. In unserem Fall wird die Applikation aber von weltweit knapp 1.000 Kunden genutzt, d.h. jede Installation erfolgt manuell und ein Mitarbeiter muss die Software vor Ort installieren. Bei dem Betrieb aus der Cloud heraus kann dieser Schritt gegebenenfalls entfallen. In unserem Fall wird nur eine Komponente vor Ort installiert werden, hier planen wir ein Konzept, das der Installation einer App auf dem Smartphone ähnelt, um den Aufwand vor Ort zu minimieren. Auch Updates werden direkt in der Cloud eingespielt, hier ist der Aufwand gegenüber einer lokalen Installation überschaubar. Und: Nur noch ein Softwarestand ist in Produktion – so lange alle Kunden die Version in der Cloud nutzen und ungeachtet von Testversionen. Darüber hinaus vereinfacht sich die Wartung erheblich. Alle Daten für den Betrieb der Software stehen dem Betreiber direkt zur Verfügung. Sie brauchen keine Log-Dateien anzufordern, die ja im Offline-Fall erst noch per E-Mail oder per USB-Stick verschickt werden müssen. Die Daten stehen für eine Analyse direkt zur Verfügung. Dann weiß der Betreiber vielleicht sogar vor dem Kunden, wenn es ein Problem mit der Software gibt.

Jürgen G.: Und wie sieht es mit der Sicherheit einer Cloud-Lösung aus? Viele sehen es doch sehr skeptisch, wenn die eigenen Daten oder sogar die Daten der Kunden in der Cloud landen.

Jürgen W.: Eine Software in der Cloud zu betreiben ist sicherer als lokal – auch wenn die beiden Varianten nicht ganz so einfach vergleichbar sind: Denken wir doch an die vielen Möglichkeiten von Fehlern bei einem Betrieb vor Ort. Vielfach werden noch USB-Sticks eingesetzt und hier besteht die reale Gefahr, dass nicht nur Daten unautorisiert weitergegeben werden, sondern dass auch Schadsoftware eingespielt werden kann. Die Infizierung durch Viren ist heute ebenso bei einer E-Mail Anbindung ein großes Problem, die per Word-Makros, manipulierten Bildern und getarnten Exe’n auf den Rechner kommen. Zudem gibt es unterschiedliche Arten der Cloud, zum einen, was den Service betrifft, zum anderen auch bezüglich der Verwendung: Bei einer Private Cloud habe ich als beauftragende Firma die alleinige Kontrolle, ich bestimme, wer auf den physikalischen Rechner zugreift.

„Eine Software in der Cloud zu betreiben ist sicherer als lokal – auch wenn die beiden Varianten nicht ganz so einfach vergleichbar sind“

Jürgen G.: Du sagst, es gibt unterschiedliche Services in der Cloud?

Jürgen W.: Ja, diese können je nach Wusch und Notwendigkeit des Kunden beauftragt werden. Brauche ich nur Rechnerkapazität? Dann miete ich nur die Maschinen, alles andere mache ich wie bisher auch. Wenn mir das zu viel ist, miete ich mir die Plattform, dann ist auch das Betriebssystem mit dabei, der Cloud-Anbieter kümmert sich in dem Fall um die Aktualisierung des Betriebssystems. Am bequemsten ist Software as a Service, da ich nur die Applikation an den Cloud-Anbieter übergebe, der sich dann um den Betrieb kümmert.

Jürgen G.: Was ändert sich denn in der Entwicklung, wenn man Software für die Cloud produziert?

Jürgen W.: Alles oder auch nichts, je nach dem… Das hängt vor allem mit der Erfahrung des Entwicklungsteams und der gewünschten Funktionalität zusammen. Im einfachsten Fall läuft die bestehende Applikation einfach in der Cloud. Die größte Änderung erfolgt, wenn auch die Entwicklung sowie der Test in der Cloud laufen.

Jürgen G.: Und was ist der Vorteil von Open Source?

Jürgen W.: Die Verwendung von Open Source vereinfacht die Entwicklung, da viele Features bereits fertig zur Verfügung stehen. Sogar sehr komplexe Frameworks und ganze Applikationen sind für die eigene Verwendung verfügbar – auch im kommerziellen Bereich.

Jürgen G.: Zum Abschluss noch eine letzte Frage an dich, Bernd. Wie wird deiner Meinung nach die Softwarewelt in 3-5 Jahren aussehen? Wird es nur noch KI-basierte Systeme geben, die sich selbst programmieren?

Bernd-Josef: In 3-5 Jahren wird es sicherlich noch nicht so weit sein, aber in 10 Jahren wird man perspektivisch auf jeden Fall einen großen Unterschied zu heute sehen.

Jürgen G.: Vielen Dank an euch beide für das interessante Gespräch!