Keine Frage: "Full Stack" ist im Trend. Als Anbieter von Beratung und operativer Unterstützung im Berliner eBusiness merken wir das sehr direkt: Firmen wollen nicht einfach Entwickler, sie wollen Full Stack Developer!
Aber was bedeutet das? Und wie kann man diesen Trend bewerten? Wir versuchen hier eine Zusammenfassung.
Zunächst wären da die harten Fakten: Der englische Begriff „full stack“ bedeutet wörtlich so viel wie „gesamter Packen“, etwas freier übersetzt auch „vollumfänglich“. Der Ausdruck „Full Stack Developer“ besitzt weder eine exakte Definition noch einen Wikipedia-Artikel. Seit 2012 verzeichnet der Begriff in den Google Trends, also in der Häufigkeit der Suchanfragen mit diesem Schlagwort, ein exponentielles Wachstum. Auch in Stellenanzeigen findet man ihn zuhauf.
Gemeint ist damit in aller Regel ein Entwickler, der nicht nur Frontend ODER Backend macht, sondern in allen Bereichen der Software-Entwicklung fundierte Kenntnisse besitzt. Vom Aufsetzen eines Servers bis zur Umsetzung der Weboberfläche; von der Software-Architektur über das User Interface bis zum Business Model; SysOps, DevOps, höhere Programmiersprachen, SQL, Javascript, HTML und UX: Ein Full Stack Developer versteht und beherrscht die gesamte Bandbreite.
Dass der Bedarf und damit das Schlagwort des Full Stack Developers in den letzten Jahren rasant zugenommen hat, dürfte einhergehen mit der Ausbreitung von agilen Methoden wie Scrum und der Tendenz zu crossfunktionalen und eigenverantwortlichen Teams. Während sich in klassischen Wasserfall-Projekten ganze Abteilungen in Backend vs. Frontend separierten, arbeiten in agilen Teams die Teammitglieder gemeinsam daran, ein Feature möglichst komplett auszurollen, vom Konzept bis zum Release. Da ist die Zusammenarbeit über Disziplinen und Spezialistentum hinweg unerlässlich und ein breites Wissen von Vorteil.
Dennoch lauert hier ein fatales Missverständnis, das mit dem Begriff des Full Stack Developers einher geht: Kein noch so versierter Full Stack Dev kann ein komplettes Team ersetzen!
Denn erstens ist eine Arbeit, die im Austausch mit Anderen entsteht, fast immer besser und durchdachter als eine Einzelarbeit. Die Praxis des Pair- und Group Programming basiert auf genau diesem Umstand.
Und zum anderen ist auch nicht jeder Full Stack Developer wie der andere. Grundwissen und Beherrschen der Materie darf man voraussetzen, wenn sich einer oder eine so bezeichnen. Fortgeschrittenes Expertentum und Leidenschaften aber kann und soll jeder in einem eigenen Bereich haben.
Bevor der Begriff des „vollumfänglichen Entwicklers“ aufkam, war bisweilen die Rede vom sogenannten T-förmigen Entwicklertypen (oder, in seiner Erweiterung: dem pilzförmigen Entwickler): Spezialkenntnisse in einem Bereich (der senkrechte Strich in der Mitte), grundlegende Kenntnisse in (allen) weiteren Bereichen (der horizontale Balken). In einem Team überlappen und ergänzen sich dann die Fähigkeiten, so dass es für jedes Thema einen oder wenige Super-Experten gibt, und viele Teammitglieder die zumindest mitreden können.
Beides, der Begriff des T-förmigen Entwicklers wie des Full Stack Developer, sind hilfreiche Bilder um die Fähigkeiten eines Entwicklers beschreiben zu können. Die Bezeichnung als Full Stack hat dabei den Vorteil, dass damit ein inhaltlicher Umfang verbunden ist: Nicht nur „irgendwie breite Fähigkeiten“, sondern ein kompletter Durchstich, von Backend bis Frontend. Das kann man erwarten.
„Full Stack“ ist damit ein Label für einen Kompetenz-Umfang und, implizit, auch über ein Selbstverständnis in der Arbeitsweise. Wer sagt „Ich bin Full Stack Dev“ sagt damit auch: „Ich lehne keine Aufgaben ab, weil sie nicht meiner Kernkompetenz entsprechen.“ Er oder sie bekennt sich zu crossfunktionalen Teams und einer Arbeitsweise, die auf Kooperation und kollektivem Lernen basiert.
Rufen Sie uns an: 030 – 555 74 70 0