Was ist ein Technologie-Stack? | Mixpanel
Grundlagen

Was ist ein Technologie-Stack?

Yvonne Teufel

Entwickler können einen Technologie-Stack nur verwalten, wenn sie wissen, was vor sich geht. Aus diesem Grund ist eine Analyseplattform wie Mixpanel ein bedeutender Bestandteil eines Technologie-Stacks. Jedes Tool in deinem Stack erstellt, analysiert oder erfasst Daten. Für das Erzielen einer optimalen Performance müssen diese Datenquellen miteinander verknüpft werden.


Definition

Ein Technologie-Stack, auch Lösungs-Stack, Technologie-Infrastruktur oder Datenökosystem genannt, ist eine Liste aller Technologiedienste, die zum Aufbau und Ausführen einer einzelnen Anwendung verwendet werden. Das soziale Netzwerk Facebook besteht beispielsweise aus einer Kombination von Programmier-Frameworks und -sprachen wie Javascript, HTML, CSS, PHP und ReactJS  – zusammen bilden 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 die Programmiersprachen, Frameworks und Tools zusammen, die ein Entwickler benötigt, um mit der Anwendung zu interagieren. Da die meisten Programmiersprachen über bekannte Leistungsmerkmale und Einschränkungen verfügen, 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, dann kann er davon ausgehen, dass dessen Code-Basis wahrscheinlich umfangreich und schwer zu debuggen ist. PHP ist eine notorisch ineffiziente Programmiersprache und wird dennoch in vielen bekannten Web-Anwendungen verwendet. 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 bei der Auswahl und Einstellung von Entwicklern. „Wenn die Bewerber nicht mit den Frameworks und Sprachen eines Tech-Stacks vertraut sind oder nicht bereit sind, 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.

Wie Du Deinen Tech-Stack aufbaust

Unterschiedliche Unternehmen haben unterschiedliche Anforderungen an ihren Technologie-Stack. Kein Tech-Stack gleicht dem anderen. Teams entscheiden, welche Technologien sie verwenden möchten und legen eine Kernprogrammiersprache fest, zu der sie nach und nach zusätzliche Tools und Dienste hinzufügen. „Wenn man mit der Produktentwicklung anfängt, beginnt man normalerweise mit dem Frontend, dem Teil, den die Kunden sehen. Daraufhin wird entschieden, welche Backend-Tools diese Benutzeroberfläche unterstützen können“, erklärte Lira Skenderi, Data Analyst und Entwicklerin beim Hosting-Anbieter Digitaler Ozean. Das resultierende Bündel an Diensten wird als “Stack” (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 sogenannte High-Read-Operations auszeichnen. Dies bedeutet, dass die Anwendung von vielen Benutzern gleichzeitig genutzt werden kann. 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 Backend und Frontend unterteilt, auch serverseitig und clientseitig genannt. Vergleicht man einen Tech-Stack mit einem Laptop, wäre das Backend die interne Hardware, die ihn zum Laufen bringt. Die Frontend-Schnittstelle wäre der Bildschirm, das Gehäuse und die Tastatur, die es dem Nutzer ermöglicht, mit dem Laptop zu interagieren. Wenn in einer Stellenausschreibung nach einem Entwickler mit Backend-, Frontend- oder Full-Stack-Erfahrung gesucht wird, bezieht sich dies auf den Teil des Tech-Stacks, auf den sich der Bewerber idealerweise spezialisiert hat.

Zu den Backend-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-Betriebssystem, Apache HTTP-Server, relationalen MySQL-Datenbankverwaltungssystem und der Programmiersprache PHP zusammen. Frontend-Technologien sind die visuelle Schnittstelle wie Websites und Apps. Das sind die visuellen Elemente, für die die meisten Anwendungen bekannt sind, und sie bieten dem Nutzer die nötigen Tools, um bestimmte Handlungen durchzuführen. Frontend-Sprachen sind in der Regel einfacher als Backend-Sprachen. Die meisten Web-Anwendungsschnittstellen werden mit der Programmiersprache Javascript und den Frameworks Angular JS, Backbone.js und ReactJS erstellt. Zu den Frontend-Technologien für Smartphone-Apps gehören Objective-C/SWIFT für iOS-Apps und Java für Android-Apps.

Wie beim Fundament eines Hauses kommt es auf die Reihenfolge an, in der ein Stack aufgebaut wird. Jede neue Ebene baut auf der vorherigen auf und darunter liegende Ebenen können nicht einfach entfernt werden. Nachfolgend findest du einige grundlegende Tipps für den Aufbau deines Technologie-Stacks:  

Für die Zukunft planen

Ein Tech-Stack unter Berücksichtigung der zukünftigen Entwicklung des Produkts zu erstellen, kann eine Herausforderung sein. Wenn Entwickler nicht bedenken, wie ihre Anwendung skalieren wird, müssen sie möglicherweise zusätzliche Dienste integrieren, die dazu führen, dass die Anwendung umständlich und schwer zu verwalten ist. Wenn sie andererseits ein exponentielles Wachstum vorhersagen und deshalb in viel zu teure Tools und Dienste investieren, könnte ihnen das Budget ausgehen, bevor die Anwendung überhaupt einen Markterfolg hat – wenn sie überhaupt jemals erfolgreich sein wird. Die beste Strategie ist es, minimal-viable Products (MVP) wie Web-Apps mit Open-Source-Tools zu erstellen, um Konzepte zu testen, bevor man in diese investiert. Zusätzlich solltest du Tools auswählen, die die Flexibilität bieten, Daten an andere Tools in deinem Stack zu senden. Im Zweifelsfall sollten Entwickler immer zu ausgereiften Technologien und Sprachen tendieren, da diese oft zuverlässiger sind. 

Vertraue auf die Open-Source-Community 

Entwickler auf der ganzen Welt tragen dazu bei, Open-Source-Tools zu erstellen, die für jeden mit einer Internetverbindung kostenlos genutzt werden können. Der Umfang der Open-Source-Community und der Nutzen, den sie bietet, sind erstaunlich. “Open-Source-Software ist wahrscheinlich das, was hinter der Tech-Renaissance der letzten 10-20 Jahren steckt”, sagt Debs. “Jeder kann dadurch Produkte mit unglaublich komplizierter Technologie bauen, die er alleine selbst nie hätte bauen können. Wir sprechen über einen Pool von Milliarden Stunden an Zeit und Beiträgen von Experten in jedem Bereich.” Debs schätzt, dass andere Personen unzählige Stunden für die Entwicklung der Software, die er täglich nutzt, benötigt haben. Alle Ingenieur-Teams, die den Aufbau eines Tech-Stacks in Erwägung ziehen, werden es leichter haben, wenn sie sich zumindest teilweise auf Open-Source-Software verlassen. 

Berücksichtigung des Zwecks der Anwendung 

Entwickler bevorzugen eher Sprachen, die sie bereits kennen. Um einen sehr effizienten Tech-Stack zu erstellen, lohnt es sich jedoch, die Auswahl der Technologie vom Zweck der Anwendung bestimmen zu lassen. Wird die Anwendung zum Beispiel auf dem Handy oder Desktop eingesetzt? Wenn sie auf dem Handy eingesetzt wird, in welche Apps? Wenn sie für Desktop eingesetzt wird, dann für welchen Browser? Handelt es sich um eine Medienseite, die täglich Millionen von Nutzern hat, oder um eine Mobile Banking-App, bei der Sicherheit im Vordergrund steht? Für jeden dieser Zwecke eignen sich unterschiedliche Programmiersprachen, Tools und Tech-Stacks. Das gilt auch für bestimmte Entwickler mit entsprechenden Fähigkeiten. 

Verwendung von Analytik 

Entwickler können einen Technologie-Stack nicht verwalten, wenn sie nicht wissen, was vor sich geht. Deshalb verwenden die meisten Produktanalysen. Analyseplattformen sind darauf ausgelegt, Datenquellen im gesamten Stack miteinander zu verknüpfen, um so eine granulare Überwachung und Verfolgung zu ermöglichen. Dies ermöglicht es Entwicklern, Probleme auf die Nutzer innerhalb ihrer Anwendung stoßen, zu identifizieren, zu debuggen und zu beheben. 

Berücksichtigung der Kosten 

Teams sollten das Budget für die Technologien, die zur Unterstützung ihres Tech-Stacks benötigt werden, festlegen, bevor sie mit dem Aufbau starten. Im Zweifelsfall sollten Teams die Gesamtkosten zu hoch ansetzten und daran denken, den variablen Preis der Mitarbeiter zu berücksichtigen. Entwickler werden oft von innovativen Sprachen angezogen, die ihre Fähigkeiten und ihren Lebenslauf verbessern. Ausgereifte Programmiersprache bieten zwar Zuverlässigkeit, können aber die Einstellung von Top-Talenten erschweren. Unter Umständen können preiswertere Technologien mehr kosten, wenn es darum geht, Top-Talente zu gewinnen. 

Get the latest from Mixpanel
This field is required.