© S&S Media GmbH
Best Practices bei der Auswahl konkurrierender Technologien

Wählen statt quälen


In sehr kurzen Zeitabständen erreichen uns Informationen über neue Technologien und Ansätze, um ein bestimmtes Problem zu lösen. Unzählige Frameworks konkurrieren zum Beispiel um die Gunst des Entwicklers. Jeder neue Ansatz verspricht eine elegantere Lösung bzw. ein moderneres Vorgehen. Bei näherer Betrachtung kommt man jedoch oft zum Schluss, dass der Hype wahrscheinlich nicht das einhalten kann, was wir uns erhoffen.

Die Informationstechnologie im Allgemeinen und die Softwareentwicklung im Speziellen sind Bereiche, die durch ein hohes Maß an Innovationen gekennzeichnet sind. Wie in anderen Bereichen der Wirtschaft auch, kann man diese Innovationen einteilen in Produkt- und Prozessinnovationen. Produktinnovationen sind in diesem Fall Neuerungen der digitalen Produkte, also zum Beispiel ein neues Feature in einem Betriebssystem. Wir werden dann i. d. R. aufgefordert, eine neue Version des Betriebssystems zu installieren. Der Einsatz der neuen Version verspricht dem Anwender neben neuen Funktionen auch Verbesserungen bestehender Features und Fehlerbereinigungen. Gelegentlich werden nicht mehr benötigte Funktionen aus einer aktuellen Version entfernt.

Der zweite Bereich der Innovationen betrifft die Prozesse. Es geht also um die Herstellung des Produkts, in unserem Fall die Entwicklung von Software. Ob eine neue Technologie oder ein neuer technischer Ansatz tatsächlich bereits eine Innovation darstellt oder noch in einer frühen Phase steckt, lässt sich im IT-Bereich nicht immer sofort sagen.

Invention vs. Innovation

Im Rahmen des Innovationsmanagements unterscheidet man in diesem Zusammenhang zwischen einer Invention und einer Innovation. Eine Invention ist zunächst einmal eine Idee am Anfang des Innovationsprozesses. Daraus kann im Laufe der nächsten Schritte eine Innovation werden. Eine Innovation wiederum ist die Markteinführung und Marktdurchsetzung von Entwicklungsergebnissen in Form von Produkten und Verfahren, also auch einer neuen Technologie. Das entscheidende Kriterium, dass sich eine Neuerung durchsetzt, ist an dieser Stelle die Akzeptanz des Marktes (Abb. 1).

bochkor_technologieauswahl_1.tif_fmt1.jpgAbb. 1: Invention vs. Innovation [1]

Nur ein kleiner Teil der Ideen, Ansätze, Produkte und Technologien werden es schaffen, sich Nachhaltig auf dem Markt einen Platz zu erarbeiten und sich damit etablieren. Viele Inventionen werden nach und nach wieder verschwinden und durch eine neue Idee ersetzt werden. Der Prozess beginnt von vorn. Im Bereich der Softwareentwicklung sind wir jedoch in vielen Fällen direkt Mitwirkende an diesem Auswahlprozess. Das liegt daran, dass Software durch ihre besonderen Eigenschaften sehr schnell auf den Markt gebracht werden kann. Technologien werden beispielsweise in Form von Bibliotheken, Frameworks usw. über die Entwicklercommunity direkt verfügbar gemacht. Nur wenige Mausklicks genügen, und man kann eine neue Technologie direkt erproben. Über GitHub und ähnliche Portale können wir den Entwicklungsprozess eines neuen Ansatzes unmittelbar und nahezu live mitverfolgen und uns jederzeit dafür entscheiden, die neue Technik zu verwenden. Wir Entwickler werden also Teil des Evaluierungsprozesses und müssen dabei wählen, welche Rolle wir einnehmen möchten.

Echte Innovationen werden nur dann entstehen – vom Zufall einmal abgesehenen –, wenn die Menge von Ideen und die Anzahl der Versuche sehr groß sind. Eine solche Vielfalt an Lösungsansätzen erhöht die Wahrscheinlichkeit, dass ein Ansatz darunter ist, der tatsächlich das Potenzial hat, eine Vorgehensweise nachhaltig zu ändern. Wir bezeichnen einen solchen Ansatz auch als Game Changer, also eine Technologie, die eine bisherige Vorgehensweise nahezu auf den Kopf stellt. Untersucht man vorhandene und vergangene Technologien aus dem Softwareentwicklungsbereich, dann wird sehr schnell deutlich, welche Technologien das Potenzial hatten und es auch genutzt haben, sich nachhaltig festzusetzen. .NET ist zum Beispiel eine solche Technologie, die schon seit sehr langer Zeit auf dem Markt ist. Selbst wenn .NET nun seinen vollen Reifegrad erreicht und die Ablösung durch .NET Core im vollen Gang ist, kann man die vorhandenen Applikationen weiter pflegen. Integrierte Technologien wie WPF und WinForms werden sogar portiert. Es ist problemlos möglich, noch heute ein Projekt auf dieser Basis zu starten. Gleichzeitig zeigt sich aber auch, dass künftig Webtechnologien einen immer größeren Raum einnehmen. Sie sind heute schon zunehmend eine entscheidende Technologie. Innovationen finden im Moment gerade in diesem Umfeld statt. Bei der Auswahl der Technologie muss man das also im Blick haben.

Die Angst, etwas zu verpassen …

Schaut man sich als Softwareentwickler dieses Geschehen von innen heraus an, kann man der Verzweiflung sehr nahekommen. Trotz intensiver Beschäftigung mit den aktuellen Themen ist man kaum noch in der Lage zu erkennen, in welche Richtung der Trend geht. Welcher Ansatz wird tragfähig sein? Ist das Framework geeignet oder gibt es bereits eine bessere Lösung? Wird die Technologie auch morgen noch unterstützt?

Neue Technologien erfordern immer wieder ein großes Maß an Einarbeitung und Beschäftigung. Die Angst, etwas zu verpassen oder gänzlich aufs falsche Pferd zu setzen, ist aber i. d. R. unbegründet. Werkzeuge und Technologien, die ihre Praxistauglichkeit bewiesen haben, sind nicht gleich ungeeignet, wenn etwas Neues auf den Markt kommt. Basiskonzepte sind normalerweise beständig und werden oft nur in Facetten angepasst. Es bleibt also immer ein Abwägen, in welchem Umfang man bei einem neuen Projekt gleich auf bekannte und bewährte Technologien setzt oder zunächst einen mehr oder weniger aufwendigen Prozess der Evaluierung startet. Die eben skizzierte Befürchtung, eine Technologie komplett zu verschlafen, droht also nicht direkt. Kollegen, andere Teams und die Entwicklercommunity werden langfristig dafür sorgen, dass ein neues Vorgehen und ein neuer Ansatz, der seine Versprechen einhält, präsent werden und sich nach und nach durchsetzen.

Eine solche Zurückhaltung sollte aber auch nicht falsch verstanden werden. Natürlich sollte man einen bestimmten Anteil des knappen Zeitbudgets auch in die Evaluierung neuer Ansätze stecken. Das macht bekanntermaßen Spaß und weckt den Entdeckergeist. Hat man aussichtsreiche Ansätze und Lösungsoptionen für das kommende Projekt evaluiert, geht es um die konkrete Auswahl der Technologie. Hier können ggf. die nachfolgenden Hinweise helfen.

Methodenbewertung und -auswahl

Vor dem Hintergrund der dargestellten Zusammenhänge muss man nun im Einzelfall jedoch zu einer Auswahl der passenden Methode, des Ansatzes, Frameworks usw. gelangen. Dabei zeigt sich, dass man durch ein sorgfältiges und systematisches Vorgehen die Wahrscheinlichkeit einer Fehlentscheidung minimieren kann. Welchen Aufwand man für die Entscheidung betreibt, ist maßgeblich von der Größe und Dauer des Projektes abhängig. Bekanntermaßen lassen sich einmal getroffene Technologieentscheidungen später nicht mehr oder nur noch mit einem erheblichen Aufwand revidieren. Eine Bewertung der zur Auswahl stehenden Optionen ist auch gleichzeitig eine Vorbereitung der Entscheidung. Mit anderen Worten: Die Kriterien, die man der Auswahl zugrunde legt, bestimmen bereits über die Richtung der Entscheidung. In diesem Zusammenhang wird auf die folgende Vorgehensweise hingewiesen:

  • Abstecken des Entscheidungsfeldes: Es muss zu Beginn eindeutig festgelegt werden, zwischen welchen Alternativen man tatsächlich entscheiden kann. Welche Programmiersprachen stehen zur Auswahl? Unwahrscheinliche Option...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang