Tech-Stack – what?

by Selina

Wer kennt sie nicht, die soziale Netzwerk-App Facebook. Als User sind wir tagtäglich mit der Benutzeroberfläche konfrontiert, doch wie wird die Plattform programmiert? Mit einer Kombination aus Programmier-Frameworks und -sprachen, einschließlich JavaScript, HTML, CSS, PHP und ReactJS – zusammen definieren sie den sogenannten Tech-Stack von Facebook.

Ein Technologie-Stack ist demnach die Gesamtheit aller Technologien, die zum Erstellen und Ausführen einer einzelnen Anwendung verwendet werden. Entwickler sprechen gerne über Tech-Stacks, weil es den Informationsaustausch darüber erleichtert, wie eine Anwendung aufgebaut ist. Zugegeben, als ich vor vier Monaten meinen ersten Arbeitstag bei exanic hatte, war mir der Begriff Tech-Stack so fremd wie das Programmieren an sich. Ich war vorher in einer völlig anderen Branche tätig, in welcher ich mich mit nicht weniger komplizierten Begriffen wie DV, BATS, HTA oder TaMa konfrontiert sah. Dieser Umstand machte mir den Umgang mit Mongo DB, Docker, MySQL und den weiteren Begriffsfreunden jedoch auch nicht leichter. Mittlerweile verstehe ich, was mit dem Tech-Stack gemeint ist und habe ansatzweise Kenntnis darüber, welche Programmiersprachen und Frameworks unsere Entwickler anwenden. Und das ist auch gut so, denn in meiner Rolle als Empowerment-Coach wird nicht erwartet, dass ich vertieftes Wissen darin aufweisen kann. Für die Aufgaben als Scrum Master und für die Rekrutierung ist ein gewisses Know-how jedoch unerlässlich.

Was ein Tech-Stack enthält

Teams bzw. Unternehmen 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. Bei der Produktentwicklung wird dabei beispielsweise oft mit dem Front-End begonnen, also dem Teil, welcher gegen aussen sichtbar ist. Danach wird entschieden, welche Backend-Tools die Benutzeroberfläche am sinnvollsten unterstützen. Das resultierende Paket an Technologien wird als Stack oder Stapel bezeichnet, da die Technologien aufeinander aufbauen. Tech-Stacks können mindestens in das Back-End (serverseitig) und das Front-End (clientseitig) unterteilt werden. Würde man die beiden Schichten 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.

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 visuelle Schnittstellen wie Websites und Apps. Die meisten Webanwendungsschnittstellen werden mit der Programmiersprache Javascript und den Frameworks Angular JS, Backbone.js und ReactJS erstellt.

Unser Tech-Stack

Als Autorin dieses Blogbeitrags möchte ich natürlich niemandem unseren Tech-Stack vorenthalten. Die Kenner unter der Leserschaft erhalten so einen Einblick in die Arbeitswelt unserer Entwickler:

Tech-Stack exanic

Tech-Board

Ein Tech-Stack sollte nicht veraltet sein und die stetigen Weiterentwicklungen berücksichtigen. Entwickler bevorzugen Sprachen, die sie bereits kennen. Um den besten Tech-Stack zu entwickeln, lohnt es sich jedoch meist, die Technologie durch den Zweck der Anwendung bestimmen zu lassen. Wird die Anwendung beispielsweise auf Mobilgeräten oder auf Desktops verfügbar sein? Wenn auf dem Smartphone, welche Funktionen sollen in der App abgebildet werden? Wenn auf dem Desktop, welche Browser sollen unterstützt werden? Handelt es sich um eine Newsseite, 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. Bei uns ist für die Definition sowie die Weiterentwicklung das sogenannte Tech-Board verantwortlich, in welchem unsere Lead-Entwickler Einsitz haben. Das Gipfeltreffen unserer Techies findet monatlich statt.

Entwicklersuche als Herausforderung

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 oder die bewerbende Person idealerweise spezialisiert hat. Da je nach Tech-Stack dann noch unterschiedliche Programmiersprachen angewendet werden und der Arbeitsmarkt bei Entwicklern eher einer Wüste als einem fruchtbaren Feld kurz vor der Ernte gleicht, gestaltet sich die Suche nach Entwicklern für Unternehmen oft sehr schwierig. Denn einerseits spielt der Tech-Stack eine zentrale Rolle, wenn man EntwicklerInnen sucht bzw. einstellen möchte. Wenn die Bewerbenden nicht bereit sind, sich damit vertieft auseinander zu setzen und zu lernen, passen sie möglicherweise von technologischer Seite her nicht ins Team. Möchte man dann noch Teammember rekrutieren, die vom Mindset her gut mit der bestehenden Organisationskultur matchen, kommt ein weiterer, erschwerender Faktor hinzu.