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.