Kategorien
Allgemein Podcast

IT Mitarbeiter finden #4 – Der Tech Stack: Der Werkzeugkoffer eines Softwareentwicklers

Was ist eigentlich der Tech Stack? Alle reden darüber. Aber was verbirgt sich dahinter?

Tech Stack – Die Werkzeugkoffer Metapher

Zu Beginn eine Metapher und zwar die eines Werkzeugkoffers. Du darfst dir zum Beispiel einen Monteur vorstellen. In der Regel ist es doch so. Es gibt Werkzeuge, die alle Softwareentwickler einsetzen also alle Monteure. Aber es gibt auch Spezialwerkzeug. Und so ist es mit dem Tech Stack auch.

Je nachdem, was für eine Software ich baue und was für eine Architektur dahinter steckt. Danach orientiert sich auch ein Stück weit, welches die passenden Werkzeuge sind. Gehen wir mal entlang einer gängigen Architektur durch, was das für Werkzeuge sein können.

Das Frontend oder Graphical User Interface

Als allererstes haben wir das sogenannte Frontend oder auch auf Englisch Graphical User Interface oder die grafische Bedienoberfläche.

Das Graphical User Interface ist das, falls eine Software eine solches Frontend hat, was du siehst, wo du Eingaben tätigt, wo du Daten anschaust.

Zum Beispiel kann das ein Frontend sein, das auf deinem PC läuft oder im Browser. Wenn es auf deinem PC läuft, kann man auch von einer Desktop GUI oder einem Desktop Grafik User Interface sprechen.

Wenn es im Browser läuft, reden wir sehr häufig von einer Weboberfläche oder einem WebGUI oder einer WebGUI oder einem Webinterface. Und um so eine grafische Oberfläche zu erstellen, ist im Web beispielsweise meistens JavaScript, HTML und CSS im Einsatz.

Wie dieses aber zustande kommt, variiert von Tech Stack zu Tech Stack. Vielleicht hast du das in deiner täglichen Arbeit schon mal erlebt, dass auf einmal auch ein Java Webframework aufgetaucht ist oder meinetwegen auch ein .NET Webframework?

Und sehr häufig ist es so, dass diese Frameworks am Ende des Tages dann die Inhalte, das HTML, das was wir im Browser sehen können generieren und je nachdem, was für ein Frontend wir bauen, also was unser Produkt denn eigentlich leisten soll, reden wir dann von unterschiedlichen Programmiersprachen.

Denn du kannst beispielsweise mit Java FX eine grafische Oberfläche für den Desktop programmieren. Du kannst mit Java Framework Vaadin beispielsweise eine Weboberfläche generieren oder programmieren.

Und was mir an der Stelle ganz wichtig ist Es ist durchaus so, dass wir seltener oder immer seltener nativ in der jeweiligen Programmiersprache, also JavaScript HTML programmieren, sondern wir nutzen eben Frameworks. Warum? Weil wir damit schneller zum Ziel kommen.

Das Backend – Client/Server Architektur

Ich kann im Backend, wenn ich beispielsweise eine Client Server Architektur habe, einen völlig anderen Tech Stack einsetzen als im Frontend. Das bedeutet das Frontend ist technologisch getrennt vom Backend. Zum Beispiel da eine völlig andere Programmiersprache eingesetzt wird. Ich kann im Backend PHP einsetzen und Java für die GUI. Nichtsdestotrotz wirst du häufige Tech Stacks immer wieder identifizieren. Warum? Weil sie halt einfach sehr gut miteinander funktionieren.

Schichtenarchitektur im Backend

Im Backend findet man in der Regel verschiedene Schichten. Man spricht dort auch von einer Schichtenarchitektur. Und zu diesen Schichten gehört zum Beispiel die Webschicht. Darüber werden die Anfragen, die über das Internet kommen, entgegengenommen und dann an die darunterliegenden Schichten, beispielsweise die Businesslogik Schicht delegiert.

Und in der Business Logik Schicht, da passiert das, was wir Geschäftslogik also Businesslogik nennen. Darunter verstehen wir i. d. R. Entscheidungen oder Prüfungen zum Beispiel, ob jemand kreditwürdig ist oder welche Daten geladen werden sollen.

Damit die Geschäftslogik arbeiten kann, braucht diese zumindest in einem unternehmerischen Kontext auch Daten. Und diese Daten liegen in der Regel in relationalen oder in sog. NoSQL Datenbanken.

Es werden auch im Backend meist unterschiedliche Frameworks eingesetzt. Kennst du vielleicht das Spring Framework im Java Ökosystem oder eben ASP.NET und das .NET Framework im C# oder C++ Umfeld? Auch hier ist es wichtig zu klären, wie wichtig das jeweilig verwendete Framework für die zu besetzende Stelle ist? Spielt das eine Rolle für für die tägliche Arbeit des Mitarbeiters oder eben nicht?

Infrastruktur und Prozesse

Für einen ersten Zugang zum Thema Tech Stack lohnt es sich dann noch, das Thema Infrastruktur zu betrachten. Du hast vielleicht schon mal Begriffe wie Continuous Integration oder Continuous Delivery gehört. Und damit solche Konzepte auch wirklich in der Entwicklung umgesetzt werden können, benötigt es einfach die jeweiligen Tools.

Zum Beispiel Jenkins als Continuous Integration Server oder Version Kontrollsysteme wie zum Beispiel Git. Was auch häufig zum Einsatz kommt, sind sogenannte Build und Abhängigkeitsmanagementsysteme im Java Kontext sehr häufig Gradle oder Apache Maven. Und wenn du das alles zusammen hast, dann hast du einen ersten Überblick über den Tech Stack.

Fazit

Was ich dir an der Stelle zu diesem Thema noch mitgeben möchte. Der Tech Stack ist absolut wichtig für die Besetzung einer offenen Stelle und je strukturierter du mit deinem Fachbereich in das Gespräch gehst, desto leichter wird es sein, darüber zu sprechen. Ist dieser Skill jetzt must have oder nice to have.? Wenn du das strukturiert abfrägst, dann läuft auch so eine Profil besprechung deutlich einfacher von der Hand.

Und was noch viel besser ist, du hast eine viel besseres Verständnis darüber und du kannst auch im Gespräch und in der Ansprache mit Talenten diese Fragen, die ziemlich sicher kommen werden, direkt beantworten.

Vielleicht fällt es dir jetzt ein bisschen leichter, das Thema „Tech Stack“ zu greifen. Falls nicht, dann schreib mir einfach deine Fragen oder schickt mir eine Email.