Mit welcher Technologie erhöht das Unternehmen die Effizienz? Wäre für die anstehenden Aufgaben eine andere Programmiersprache besser geeignet? Welche IoT-Lösung eignet sich? Wenn es um die Technologiewahl, um die Evaluation einer neuen Technologie geht, gibt es viele offene Fragen wie auch Gründe, die für einen Technologiewechsel sprechen: Manchmal ist es ein veraltetes System, das hinterfragt werden muss, die Änderung des Businessmodells oder eine angestrebte Effizienzsteigerung im Unternehmen.
«Unter Umständen fährt man gut mit einer altbewährten Methode oder einer bereits vielfach eingesetzten Technologie», sagt Roland Achermann, Business Area Manager Industrie & Energie bei bbv. «Trotzdem sollte man sich immer wieder fragen, ob sich andere Instrumente vielleicht besser eignen oder einen Vorteil bringen.» Die oft gehörte Aussage «Das haben wir immer so gemacht, also machen wir es auch weiterhin so» sollte also immer wieder hinterfragt werden. Neue Möglichkeiten müssen bei der Technologiewahl zumindest geprüft werden.
Am Beispiel des bbv-Kunden Komax zeigt sich, dass die Wahl der Programmiersprache vielschichtige Überlegungen erfordert. Für die Steuerung einer Serie von Kabelverarbeitungsmaschinen setzte das Unternehmen nicht wie bisher auf C++, sondern neu auf Go als Programmiersprache. Wie man dabei vorgegangen ist, erklärt Daniel Emmenegger, Fachbereichsleiter Informatik bei Komax.
Technologiewahl
Die Steuerungen der Komax-Maschinen stehen relativ lange im Einsatz und werden stets weiterentwickelt. Es stellt sich also eher seltener die Frage, ob eine neue Programmiersprache zum Einsatz kommen soll. Ein Wechsel bedeutet immer auch ein Risiko. Schliesslich entstehen viele Unsicherheiten, die geklärt werden müssen.
Daniel Emmenegger weiss, dass das Überdenken der angewandten Technologie im Alltag nicht viel Platz einnimmt. «Mit Projekten beschäftigt und unter Zeitdruck, bekommen so manche Verantwortliche und Entwickler einen Tunnelblick. Das Abklären und Ausprobieren neuer Tools oder Programmiersprachen kommt dann zu kurz.» Dabei lohnt es sich, auch mal links und rechts zu schauen, was es sonst noch auf dem Technologieradar zu entdecken gäbe. Aus diesem Grund veranstaltet Komax regelmässig die «Techweek» – eine Woche, während der die Mitarbeitenden Gelegenheit bekommen, neue Themen und Technologien kennenzulernen, Schulungen zu besuchen oder zum Beispiel eben auch neue Programmiersprachen auszuprobieren. «Beispielsweise besuchen Mitarbeitende einen Crashkurs für eine Programmiersprache, um damit während der Woche herumzupröbeln und Erfahrungen zu sammeln. So bekommen sie das Gespür, welches Potenzial in der Sprache liegt oder ob sie sich konkret für eine Anwendung im Unternehmen eignen könnte», erklärt Daniel Emmenegger, der für die Planung der Techweek-Woche mitverantwortlich ist.
Die Wahl der Programmiersprache
Bei Komax ging es konkret darum herauszufinden, ob für die Maschinensteuerung einer Produktefamilie die über längere Zeit bewährte C++-Sprache weiterhin eingesetzt werden soll. Oder ob nicht besser die noch relativ junge, aber vielversprechende Go (auch unter dem Namen Golang bekannt) eingesetzt werden soll. Go wurde 2007 von Google-Mitarbeitenden entwickelt und 2012 erstmals als Open-Source-Projekt öffentlich verfügbar.
In der Techweek erhielten nun die Entwickler Gelegenheit, spielerisch erste Aufgaben mit Go zu lösen. «Eine Programmiersprache lässt sich grundsätzlich lernen. Die Frage ist nur, ob die Sprache, das verfügbare Tooling und eine entsprechende Verbreitung gegeben sind, so dass sich der Aufwand dafür lohnt», sagt Daniel Emmenegger. Es würden sich aber noch viele weitere Fragen stellen, die es zu beantworten gelte. Zum Beispiel die Frage nach der Zukunftstauglichkeit: «Wir fragten uns am Anfang, ob Go bloss ein kurzfristiger Hype oder ein länger andauernder Trend sein würde. Mit der Zeit konnten wir aber abschätzen, dass die Sprache zukunftstauglich ist, unseren speziellen Anforderungen genügt und somit theoretisch in unseren langfristigen Systemen eingesetzt werden kann», so Emmenegger.
Folgende Fragen und Überlegungen können bei der Wahl einer neuen Technologie – in diesem Fall der Programmiersprache – entscheidend sein:
- Ist die Technologie geeignet, um die anstehende Aufgabe zufriedenstellend zu lösen?
- Ist die Weiterentwicklung der bestehenden Produkte gewährleistet?
- Wie gestaltet sich die Interaktion mit anderen Diensten und Systemen? Werden entsprechende Schnittstellen unterstützt? Läuft der Code auf den gewünschten Zielplattformen? Wie wird sich er Unterhalt gestalten?
- Könnte eine neue Technologie gar mehr Stabilität bieten als die alte?
- Wie gross ist der Aufwand für die Migration inklusive Schulung der Mitarbeitenden?
- Ist der Zeitpunkt für einen Wechsel geeignet? Ist der Reifegrad der möglichen neuen Technologie hoch genug, um den unternehmerischen Ansprüchen gerecht zu werden?
- Wie populär ist die Technologie? Setzen sie auch andere, grosse Unternehmen ein oder besetzt sie eher eine Nische?
- Welche Argumente sprechen für die bisherige Lösung? Sind notorische Probleme vorhanden? Sind die bestehenden Probleme vernachlässigbar oder müssen sie gelöst werden?
- Ist die Unterstützung der kommerziellen Software garantiert bzw. besitzt die Open-Source-Lösung viele Anwender, eine breit abgestützte Community?
- Sind entsprechende Lizenzen verfügbar, dass eine kommerzielle Nutzung überhaupt möglich ist?
- Wie ist die Verfügbarkeit von Fachkräften, welche die Technologie beherrschen und gewillt sind, damit zu arbeiten? Ist das Know-how im Unternehmen bereits vorhanden?
Am Ball bleiben
Das Wissen, welche Technologien aktuell verfügbar und geeignet sind, welche Erfahrungen andere Entwickler und Unternehmen damit machen oder wie die Programmiersprache funktioniert, muss aktiv erworben werden. «Über Web-Magazine, Blogs, Foren, Konferenzen oder auch straight-forward via Youtube lässt sich viel Wissen über neue Technologien erwerben», sagt Emmenegger. Viele Inputs kämen auch von Mitarbeitenden, die sich laufend informieren und Neues ausprobieren. Um das Potenzial auszuloten, ist es oft vorteilhaft, nicht zu viele Vorgaben zu machen. So lässt Daniel Emmenegger etwa Studierende bei Semsterarbeiten die Programmiersprache oft selbst wählen, mit der sie eine Aufgabe lösen oder eine Übung umsetzen wollen.
Die Entscheidung
Die Entscheidung für eine neue Technologie erfolgt nicht von heute auf morgen. Im Fall von Komax erstreckten sich das Kennenlernen, Pröbeln, Testen und Evaluieren über Jahre. Seit Anfang 2019 wird Go nun produktiv eingesetzt. Die neue Lösung hatte gegenüber der zwar weit abwärtskompatiblen, aber viel komplexeren C++ die besseren Argumente. «Go ist schnell, kann alles, was wir benötigen und ist einfach zu lernen, insbesondere auch für Mitarbeitende, die eine andere Programmiersprache auf professionellem Niveau beherrschen», sagt Daniel Emmenegger. Zudem bestehe für Go ein Ecosystem und viele vordefinierte Module, die genutzt werden können. Eine einfache Syntax und die standardmässig vorgegebene Code-Formatierung sorgen für eine einfache Verwendung und Wartung ohne grosse Diskussionen zu «wie denn ein Stück Go-Code auszusehen hat». Nicht immer steht aber ein radikaler Schritt an, sodass ein System oder eine Umgebung komplett erneuert werden muss. Statt auf der «grünen Wiese» zu beginnen, klappe es vielleicht auch, einzelne bestehende Teile ins neue System zu übernehmen und somit auf einer «braunen Wiese» mit der neuen Technologie durchzustarten, sagt Daniel Emmenegger.
Der Experte
Roland Achermann
Roland Achermann ist als Head of Business Area bei bbv für den Bereich Industrie und Energie verantwortlich. Er hat über 20 Jahre Erfahrung in der Softwareentwicklung für die Industrie. Heute bringt er seine Expertise in den Bereichen Digitalisierung und Individualsoftware in spezifische Lösungsangebote ein.