Technologieauswahl als strategische Entscheidung

Der Tech-Stack als Schlüsselfaktor für erfolgreiche Softwareprojekte. Grundlegende Kriterien für die Auswahl der richtigen Technologie.

Es dauert nur 2 Minuten

Über dieses Essay

Dieses Essay soll dem geneigten Leser einen Leitfaden für die Auswahl der Technologien eines Softwareprojekts geben. Es richtet sich nicht an Programmierer oder CTO, sondern an Gründer und CEO, die ein Unternehmen gründen, Unternehmenssoftware erweitern oder ersetzen möchten. Beleuchtet werden nicht einzelne Technologien, sondern grundlegende Kriterien für die Auswahl, historische Hintergründe und einige Klassifikationen.

Was ist ein Tech-Stack warum ist er wichtig

Als Tech-Stack bezeichnet man sämtliche Komponenten, die für die Entwicklung und den Betrieb einer Software benötigt werden. Das umfasst sowohl Hard- als auch Software.

Warum ist er wichtig?

  • In einem Unternehmen mit digitaler Ausrichtung hat der Tech-Stack maßgeblichen Anteil am Unternehmenserfolg
  • Seine Zusammensetzung hat Einfluss auf die Handlungsfähigkeit des Unternehmens und die Ausgaben für IT und Entwicklung
  • Er muss den Anforderungen von Kunden und Mitarbeitern gerecht werden und zum Produkt passen

Anforderungen an einen guten Stack

  • Er muss der aktuellen Situation des Unternehmens gerecht werden
  • Idealerweise ist er so konzipiert, dass sich Komponenten ersetzen und ergänzen lassen
  • Es gilt bei der Auswahl auch rechtliche, bzw. Lizenzrechtliche Aspekte zu berücksichtigen
  • Die Technologien müssen langlebig und einfach wartbar sein
  • Ein Tech-Stack sollte immer geplant werden. Einfach zu verwenden, was man immer verwendet, kann ein Fehler sein

Identität und Unternehmenskultur

Ein etablierter Tech-Stack wird im IT-Team oftmals mit der gleichen Hingabe gefeiert und verteidigt wie eine Fußballmannschaft. Dies wird zusätzlich befeuert durch eine enthusiastische Community, die sich im Ökosystem des Stacks oder seiner Komponenten gebildet hat. Konferenzen und lokale Usergroups verstärken das „Wir" Gefühl weiter.

Company Culture

In Stellenausschreibungen wird mit der Attraktivität des Stack geworben und gleichzeitig ein Einblick in Kultur des Unternehmens gewährt.

Innovation

Am Tech-Stack kann die Innovationsfreude und damit auch die Dynamik und Experimentierfreude eines Unternehmens abgelesen werden.

Risk Management

Ein konservativer Tech-Stack deutet auf Stabilität und bewusstes Risikomanagement hin.

Grundlegende Komponenten eines Tech-Stacks

Programmiersprachen

Programmier­sprachen

Datenbanken und Datenhaltung

Datenbanken und Datenhaltung

Datensicherung

Datensicherung

Server

Server

UI-Frameworks

UI-Frameworks

Entwicklungstools

Entwicklungs­tools

API-Anbindungen

API-Anbindungen

Monitoring und Analyse Tools

Monitoring und Analyse Tools

Ein Tech-Stack beschreibt alle Technologien, die für die Entwicklung und Betrieb einer Software erforderlich sind. Das umfasst sowohl Hard- als Software. Die Zusammensetzung eines Tech-Stacks hat sich den letzten Jahrzehnten dahingehend gewandelt, dass heute wesentlich mehr Technologien zur Verfügung stehen und die Auswahlkriterien sich stark verändert haben. Es stehen heute auf allen Ebenen ausgereifte Alternativen zu Verfügung.

Verschiebung vom Backend zum Frontend

Ein ewiges Paradigma der Softwareentwicklung ist die Trennung von Darstellung und Verwaltung von Daten. Entlang dieser Trennline spricht man vom Backend (für die Verwaltung) und Frontend (für die Darstellung). Ein Entwickler der beide Seiten beherrscht wird heute als „Full-Stack Entwickler" bezeichnet.

History

Früher: Monolithen

In früheren Zeiten wurden Anwendungen oftmals im Rahmen einer monolithischen Architektur entwickelt, wobei alle Bereiche einer Anwendung auf der gleichen Technik basierten und die Trennung von Frontend und Backend mit Hilfe eigener Komponenten realisiert wurden, z.B. durch Template Engines oder interner UI Libraries. Dies gilt in besonderem Maße für die Entwicklung von Web-Applikationen.

Target

Heute: Mächtige Frontends

Mitte der 10er Jahre wurde dann, angetrieben in erster Linie von React, das Frontend neu definiert. Sowohl was die Technik als auch den Umfang angeht. Das führte zu einer neuen Art von Webanwendungen, die sich in erster Linie für den unbedarften Endnutzer geschmeidiger anfühlten und dem Entwickler neue Möglichkeiten der Strukturierung an die Hand geben.

Target

Die Innovationslust in diesem Bereich konzentriert sich naturgemäß auf eine Programmiersprache Javascript bzw. Typescript und ist einmalig in der Historie der Softwareentwicklung. Siehe: https://dayssincelastjavascriptframework.com

Die Quelle der Wahrheit

Complexity

Gesteigerte Komplexität

Durch die Verschiebung zum Frontend wurde die Entwicklung anspruchsvoller, mächtiger, aber auch komplizierter. Das gilt insbesondere für den Datenstand einer Anwendung.

Synchronisation

Das Synchronisationsproblem

Die Daten werden zwar im Frontend – also im Browser - angezeigt, müssen am Ende aber im Backend gespeichert werden. Die Quelle der Wahrheit liegt in der Datenbank und damit im Backend. Es entsteht also zusätzliche Logik, und damit auch Aufwand und Fehlerquellen, weil die Daten im Frontend mit den Daten im Backend und innerhalb des Frontend selbst synchron gehalten werden müssen.

Costs

Kosten vs. Nutzen

Die so gewonnene neue Qualität im Frontend kommt also immer auch mit einem Preisschild und der Nutzen sollte vorab zumindest diskutiert werden, bevor Zeit und Geld aufgewendet werden, ohne dass das Projekt einen signifikanten Nutzen aus dem Einsatz einer komplexen Frontend Technologie zieht.

Alles ist eine Industrie

In der heutigen Zeit spielt es keine Rolle mehr, was das Subjekt Ihres Interesses ist, Sie können sicher sein das sich dahinter eine ganze Industrie verbirgt, die um Ihre Aufmerksamkeit und Kaufkraft buhlt. Das gilt ganz besonders auch für Technologien, egal ob Open Source oder proprietär, es gilt immer auch Geld zu verdienen und das ist am Ende des Tages auch gut so.

Für die Auswahl einer Technologie sollte dieser Aspekt aber nicht vergessen werden. Im Hintergrund steht immer die Frage wer bietet was aus welchen Gründen an. Wie langlebig ist dieses Geschäftsmodel und wie hat sich der Player in der Vergangenheit verhalten?

Nehmen wir zum Beispiel Microsoft und das jüngste Beispiel Xamarin. Diese Technologie wurde kurzerhand eingestampft. Es kann sich auszahlen die Reputation des Anbieter kritisch zu prüfen, kann man sich unter Umständen doch eine komplette Neuentwicklung ersparen. Fragen Sie jetzt nicht, woher wir das Wissen…

Gehen sie immer davon aus, dass Ihre Software langlebig ist.

Tech Industry Illustration

Komplexität ist der Feind

Glücklicherweise ist in weiten Teilen der Entwicklergemeinde die Erkenntnis durchgedrungen, dass grade was Technologie-Einsatz angeht, weniger oft mehr ist. Jede Library die eingesetzt wird erhöht die Komplexität, Abhängigkeit und Anfälligkeit für Störungen jeder Art.

Tools

Die Faszination neuer Tools

Als Programmierer sind wir nicht davor gefeit das neue XY einsetzen zu wollen, es ist ultracool und löst Problem A, B und C. Aber nichts ist umsonst. Manchmal siegen die einfachen Lösungen.

Tags

Pragmatismus statt Trend

Muss es wirklich React sein, wo HTML und Tailwind ausreichen würden, weil die Anwendung eigentlich kein reaktives Frontend erfordert (Ja, sowas gibt es und tatsächlich viel öfter, als man gemeinhin annimmt).

Links

Die Last der Abhängigkeiten

Schreibe ich lieber ein paar hundert Zeilen JavaScript oder importiere 10.000+ Node Module, einfach weil ich daran gewöhnt bin so zu arbeiten, oder schlimmer noch, gar nicht weiss dass es auch anders geht?

Technische Schulden vermeiden

Was sind technische Schulden?

Technische Schulden erscheinen in vielen Gewändern, bei der Auswahl eines Tech Stacks erzeugt man diese, wenn man Technologien einsetzt, die die Komplexität künstlich erhöhen, um dann Technologien einzusetzen, welche die künstlich erhöhte Komplexität dämpfen sollen, z.B. RXJS oder Kubernetes auf AWS, welche Probleme lösen, die vielleicht gar nicht erst entstehen müssten, würde/könnte man auf die eine gerade gehypte Technologie (Babel, Transpiling, GraphQL, Kafka etc…) verzichten.

Die falsche Prämisse

Diesem Problem zugrunde liegt oft eine Architektur, von der angenommen wird, dass sie gut skaliert, so dass man in der Zukunft nicht vor dem Problem steht, Performance Probleme nicht lösen zu können. Vergessen wird dabei allzu oft, dass wenn diese Probleme auftauchen, vorab eine ganze Menge richtig gelaufen sein muss, ansonsten wäre die vertikal maximal skalierte Architektur nicht am Limit, will sagen: Der Rubel rollt und die Probleme können gelöst werden, und zwar die echten Flaschenhälse, nicht jenen von den man vor Jahren angenommen hat, dass Sie einmal aufpoppen könnten.

Rolle der KI bei der Auswahl einer Technologie

Die KI spielt in jedem Fall eine Rolle bei der modernen Softwareentwicklung, das sollte mittlerweile überall angekommen sein. Im Allgemeinen wird der Nutzen vom Laien zwar maßlos überschätzt, aber er ist doch signifikant. Eine KI mit der Planung eines Tech Stacks zu beauftragen ist aber Stand heute (Februar 2025) keine gute Idee. Das bleibt auf absehbare Zeit erst einmal Chefsache.

Entscheidungskriterien für den KI-Einsatz

Data

Umfang der Trainingsdaten

Der wirklich wichtige Aspekt ist, wie viel Trainingsdaten für eine Technologie der KI zur Verfügung standen. Je mehr Code-Beispiele und Dokumentation in den Trainingsdatensätzen enthalten sind, desto besser kann die KI beim Entwickeln unterstützen.

Maturity

Reife der Technologie

Moderne, aber relativ neue Technologien sind der KI fremd und bieten daher kaum einen Benefit. Dennoch kann es sinnvoll sein, auf eine modernere Technologie zu setzen, sofern Pro's und Con's sorgfältig abgewogen werden.

Hosting eines Tech Stacks

Auch der Hosting Aspekt und die damit verbunden Kosten an Mann und Material sind in die Überlegungen einzubeziehen.

Braucht man ein Operationsteam das die AWS Services orchestriert? Schon, es gibt eine Menge an Szenarien in denen dass erforderlich ist, aber unter der Prämisse, dass dieser Artikel von der Auswahl eines Tech Stack handelt, ist anzunehmen, dass die aktuelle Last bei null liegt und eine gesunde Zurückhaltung ist angezeigt.

Es macht Sinn den Tech Stack mit dem Unternehmen wachsen zu lassen.

Tech Stack Hosting Vergleich

Abhängigkeiten vermeiden

Examples

Wie es war:

In früheren Zeiten wurden Anwendungen oftmals im Rahmen einer monolithischen Architektur entwickelt, wobei alle Bereiche einer Anwendung auf der gleichen Technik basierten. Dies gilt in besonderem Maße für die Entwicklung von Web-Applikationen.

Dilemma

Das Dilemma:

Wer heute ein modernes Javascript Framework einsetzt, nimmt in Kauf über 10.000 externe Libraries einzubinden. Der Wunsch nach modernster Technik beisst sich mit der Anforderung nach Kontrolle und Sicherheit.

Risk

Das Risiko:

Es ist unmöglich, zu kontrollieren was in den Libraries wirklich enthalten ist. Dieser Umstand wird häufig ausgenutzt, um bösartigen Code in die Libraries einzuschmuggeln, was in der Vergangenheit mehr als einmal gelungen ist.

Conclusion

Fazit:

Nicht jede externe Komponente wird mit der gleichen Leidenschaft dem aktuellen Stand der Technik angepasst. Drum prüfe wer sich ewig bindet…am besten vorab…

Fazit & Checkliste

Sie haben es schon bemerkt, unsere Erfahrung kumuliert in der Ansicht das jegliches seine Zeit hat. Das aktuelle Geschäft definiert in weiten Teilen die Komplexität des Tech Stacks, die Aufgabe des Geschäftsführers/CTO ist sicherzustellen, dass die technikliebe der Entwickler nicht zum Boomerang wird.

Kubernetes, Terraform, Vercel, AWS, Microservices, CQRS etc.pp. alles hat seine Berechtigung und ist oft unvermeidlich, aber jede Entscheidung sollte gründlich erwogen werden.

Unsere interne Checkliste zur Technologieauswahl:

  • Bietet die Technologie einen Mehrwert für den Kunden?
  • Gibt es einfachere Alternativen?
  • Wie hoch ist der Einarbeitungsaufwand?
  • Könnten wir es selbst entwickeln?
  • Kann man es (Unit/Integration)testen?
  • Wie steht es mit Security?
  • Wie einfach kann man es debuggen?
  • Wie steht es mit dem Datenschutz?
  • Kommt es mit weiteren Abhängigkeiten?
  • Wie steht es mit den Kosten?
  • Passen die Lizenzen für unseren User-Case?
  • Macht es uns Happy?

Unverbindliche Anfrage

Ihr persönlicher Ansprechpartner

Julian Nosch
Projekt- und Teammanager
+49 201 / 271 015 66
Bitte nutzen Sie dieses Formular für Anfragen jeder Art. Wir freuen uns von Ihnen zu hören, gerne auch telefonisch.
Nach oben
Nach oben scrollen
Quasda GmbH
Überruhrstr. 580
45289 Essen
Kontakt
+49 201 / 271 015 66
kontakt@quasda.de
© 2024 - 2025 Quasda GmbH