Was ist ein Technologie-Stack?

Entwickler können einen Technologie-Stack nur verwalten, wenn sie wissen, was im Stack vor sich geht. Aus diesem Grund ist eine Analyseplattform wie Mixpanel ein so wichtiger Bestandteil des Technologie-Stacks. Jedes Tool in Ihrem Stack erstellt, analysiert oder nimmt Daten auf. Für das Erzielen einer optimalen Leistung, müssen diese Datenquellen miteinander verknüpft sein.

Was ist der Zweck eines Technologie-Stacks?

Ein Technologie-Stack, auch Lösungsstack oder Datenökosystem genannt, ist eine Liste aller Technologiedienste, die zum Erstellen und Ausführen einer einzelnen Anwendung verwendet werden. Die soziale Netzwerksite Facebook besteht beispielsweise aus einer Kombination von Programmier-Frameworks und -sprachen, einschließlich JavaScript, HTML, CSS, PHP und ReactJS  – zusammen definieren sie den sogenannten Tech-Stack von Facebook. 

Entwickler sprechen gerne über Tech-Stacks, weil es den Austausch von Informationen darüber erleichtert, wie eine Anwendung aufgebaut ist. Der Begriff wird manchmal für Marketingdienstleistungen (MarTech-Stacks) oder Verkaufsdienstleistungen (Sales-Stacks) verwendet, stammt jedoch ursprünglich aus der Softwareentwicklungs-Community.  Ein Tech-Stack fasst schnell die Programmiersprachen, Frameworks und Tools zusammen, die ein Entwickler benötigen würde, um mit der Anwendung zu kommunizieren. Da die meisten Programmiersprachen bekannte Leistungsmerkmale und Einschränkungen aufweisen, gibt der Tech-Stack Hinweise auf die Stärken und Schwächen der gesamten Anwendung. Wenn ein Programmierer beispielsweise weiß, dass ein Softwaredienst auf PHP basiert, realisiert er auch, dass dessen Codebasis wahrscheinlich umfangreich und schwer zu debuggen ist. PHP ist eine notorisch ineffiziente Programmiersprache, die jedoch in den meisten gängigen Webanwendungen verwendet wird. Wenn ein Programmierer weiß, dass eine Anwendung mit Ruby on Rails erstellt wurde, muss er die Programmiersprache Ruby erlernen, um Änderungen vornehmen zu können. Tech-Stacks spielen eine zentrale Rolle, wenn man Entwickler sucht bzw. einstellen möchte. „Wenn die Bewerber nicht mit den Frameworks und Sprachen eines Tech-Stacks vertraut sind oder bereit, sich damit vertraut zu machen, passen sie möglicherweise nicht in unser Team“, sagte John Debs, ein Full-Stack-Softwareentwickler der Messaging-Plattform Lua. Unternehmen, die Entwickler rekrutieren möchten, geben ihren Tech-Stack häufig in Stellenbeschreibungen an.

Die  technische Abteilung bei Mixpanel rekrutiert neue Mitarbeiter auf ihrer Erfahrungsbasis mit Tech-Stacks.

Was ist in einem Technologie-Stack?

Keine zwei Tech-Stacks sind gleich. Teams entscheiden, welche Technologien sie verwenden möchten, bauen dann auf einer Kernprogrammiersprache auf und fügen nach und nach zusätzliche Tools und Dienste hinzu. „Wenn Sie mit der Produktentwicklung anfangen, beginnen Sie normalerweise mit dem Front-End, dem Teil, das die Kunden sehen. Daraufhin wird entschieden, welche Back-End-Tools diese Benutzeroberfläche unterstützen können“, erklärte Lira Skenderi, Datenanalystin und Entwicklerin beim Hosting-Anbieter Digitaler Ozean. Das resultierende Paket an Diensten wird als Stack oder Stapel bezeichnet, da jeder zusätzliche Dienst auf den darunter liegenden Diensten aufbaut und Entwickler somit die Anwendung je nach Bedarf anpassen können. Entwickler, die eine Anwendung entwerfen, auf die jeden Tag Millionen von Menschen zugreifen, wählen möglicherweise Programmiersprachen, die sich durch so genannte High-Read-Vorgänge auszeichnen und auf die viele Benutzer gleichzeitig zugreifen können. Wenn die Anwendung das Web durchsuchen und Informationen sammeln soll, entscheiden sich Entwickler möglicherweise für High-Write-Sprachen. Alle Tech-Stacks sind in das Back-End und das Front-End unterteilt, die auch als serverseitig und clientseitig bezeichnet werden. Würde man einen Tech-Stack mit einem Laptop vergleichen, wäre das Back-End die interne Hardware, die ihn zum Laufen bringt. Die Front-End-Schnittstelle wäre der Bildschirm, das Gehäuse und die Tastatur, die es dem Benutzer ermöglichen, mit dem Laptop zu interagieren. Wenn eine Stellenausschreibung einen Entwickler mit Back-End-, Front-End- oder Full-Stack-Erfahrung beschreibt, bezieht sich dies auf den Teil des Tech-Stacks, auf den sich der Bewerber idealerweise spezialisiert hat.

Zu den Back-End-Technologien gehören Web-Frameworks, Programmiersprachen, Server und Betriebssysteme. Ein beliebter Tech-Stack für die Webentwicklung ist unter der Abkürzung LAMP bekannt und setzt sich aus dem Linux Operating System, Apache HTTP-Server, relationalen MySQL-Datenbankverwaltungssystem und der Programmiersprache PHP zusammen. Front-End-Technologien sind die visuelle Schnittstelle wie Websites und Apps. Dies sind die visuellen Elemente, für die die meisten Anwendungen bekannt sind, und sie bieten den Benutzern die Tools, die sie benötigen, um Dinge zu erledigen. Front-End-Sprachen sind in der Regel viel einfacher als Back-End-Sprachen. Die meisten Webanwendungsschnittstellen werden mit der Programmiersprache Javascript und den Frameworks Angular JS, Backbone.js und ReactJS erstellt. Front-End-Technologien für Smartphone-Apps umfassen Objective-C/SWIFT für iOS-Apps und Java für Android-Apps.

Ratschläge für die Zusammenstellung von Technologie-Stacks

Wie das Fundament eines Hauses ist auch die Reihenfolge, in der ein Stack aufgebaut wird, von Bedeutung. Jede neue Schicht baut auf der letzten auf, und tiefer liegende Schichten können nicht einfach eliminiert werden. Hier sind einige grundlegende Ratschläge für die Zusammenstellung von Technologie-Stacks:

Für die Zukunft planen

Das Vorbereiten eines Tech-Stacks für die Zukunft kann ein zweischneidiges Schwert sein. Wenn Entwickler nicht einplanen, wie sich ihre Anwendung skalieren lässt, müssen sie möglicherweise zusätzliche Dienste hinzufügen, die die Verwaltung umständlich und schwierig machen. Wenn sie andererseits ein exponentielles Wachstum erwarten und zu viel in teure Tools und Services investieren, wird Ihnen möglicherweise das Geld ausgehen, bevor die Anwendung jemals Markterfolge erzielt – und nicht mal das ist sicher. Die beste Strategie besteht darin, Produkte mit minimaler Funktionsfähigkeit zu erstellen, wie etwa Web-Apps mit Open-Source-Tools, um Konzepte zu prüfen, bevor Sie in diese investieren. Dabei suchen Sie sich auch Tools, die genügend Flexibilität bieten, Daten an die anderen Tools in Ihrem Stack zu senden, auch wenn das zunächst noch nicht notwendig ist. Im Zweifelsfall sollten Entwickler immer zu ausgereifteren Technologien und Sprachen tendieren, die oft zuverlässiger sind.

Die Open-Source-Community einbeziehen

Entwickler auf der ganzen Welt tragen dazu bei, Open-Source-Tools zu entwickeln, die kostenlos genutzt werden können und für jeden mit Internetverbindung verfügbar sind. Die Tragweite der Open-Source-Community und der dadurch verfügbaren Dienstprogramme ist atemberaubend. „Open-Source-Software ist wahrscheinlich das, was hinter den letzten 10 bis 20 Jahren technologischer Renaissance steckt“, sagte Debs. „Jeder kann auf den Schultern von Giganten stehen und Produkte mit einer unglaublich komplizierten zugrunde liegenden Technologie entwickeln, die sie allein niemals hätten bauen können. Wir sprechen hier von einem Pool von Milliarden Stunden Zeit und Beiträgen von Experten aus allen Bereichen.“ Debs schätzt, dass für die Software, die er täglich verwendet, andere Menschen Millionen von Stunden benötigten, sie zu schreiben. Entwicklerteams, die einen Tech-Stack aufbauen möchten, haben es leichter, wenn sie sich zumindest teilweise auf Open-Source-Software verlassen.

Den Zweck der Anwendung berücksichtigen

Entwickler bevorzugen Sprachen, die sie bereits kennen, aber um den besten Tech-Stack zu entwickeln, lohnt es sich unbedingt, einen Schritt zurückzutreten und den Zweck der Anwendung die Technologie bestimmen zu lassen. Wird die Anwendung beispielsweise auf Mobilgeräten oder auf Desktops verfügbar sein? Wenn auf dem Handy, welche Apps? Wenn auf dem Desktop, welche Browser? Handelt es sich um eine Mediensite, die täglich Millionen von Besuchern empfängt, oder um eine Mobile-Banking-App, die sicher sein muss? Für jeden dieser Zwecke bieten sich verschiedene Programmiersprachen, Tools und technische Stacks an – ebenso definieren sie auch bestimmte Entwickler mit den entsprechenden Fähigkeiten.

Analytics verwenden

Entwickler können einen Technologie-Stack nur verwalten, wenn sie wissen, was darin vor sich geht. Aus diesem Grund verwenden viele Produktanalysen. Analyseplattformen dienen dazu, Datenquellen im gesamten Stack zusammenzuführen und granulare Benutzer-Rückverfolgung bereitzustellen. Dies ermöglicht Entwicklern, Probleme, die bei Benutzern ihrer Anwendung auftreten, zu identifizieren, zu debuggen und die Fehler zu beheben.

Wartung in Betracht ziehen

Teams sollten von Anfang an die finanzielle Bandbreite der Technologien in Betracht ziehen, die zur Wartung und Unterhaltung ihres Tech-Stacks erforderlich sind. Im Zweifelsfall sollten Teams die Gesamtkosten höher ansetzen und den variablen Preis für Entwicklertalente berücksichtigen. Entwickler fühlen sich oft von innovativen Sprachen angezogen, die ihre Fähigkeiten verbessern und sich gut im Lebenslauf präsentieren. Deswegen mögen ausgereifte Programmiersprachen für Zuverlässigkeit sorgen, können es jedoch schwieriger machen, Top-Talente einzustellen. Gelegentlich kosten billigere Technologien somit mehr bei der Top-Talente-Akquisition.