Software development

Das (fast) allmächtige Frontend oder warum Frontend-Entwickler immer mehr können

Das (fast) allmächtige Frontend oder warum Frontend-Entwickler immer mehr können

Bei meinem letzten Bewerbungsgespräch habe ich gesagt, “ich würde gerne als Frontend-Entwicklerin anfangen, aber in der Perspektive wäre es cool, Full Stack zu machen.” Frontend-Kenntnisse schienen mir nur die Hälfte des gewünschten Skill-Sets zu sein. Nachdem ich den Vortrag von Chris Coyier auf der JAMstack-Konferenz gesehen habe, ist es nicht mehr der Fall. Die Frontend-Entwicklung ist toll und wird immer sichtbarer. In diesem Post erkläre ich warum.

Zunächst einmal: was haben wir, Frontend-Entwickler, gemeinsam? Wir kümmern uns um die Erfahrung von Leuten, die einen Browser benutzen. Wie machen wir das? Indem wir für Menschen mit unterschiedlichen Bedürfnissen designen, und indem wir schöne, performante und nützliche Webseiten oder Anwendungen implementieren, die in verschiedenen Browsern und auf mehreren Geräten laufen. Dies ist eine lobenswerte Tätigkeit.

Was Kunden und Nutzer sehen

Die Motivation wird durch den Erfolg gefördert. Im Frontend kann man bereits mit ein paar html-Tags erste Ergebnisse erzielen. Man kann buchstäblich den Fortschritt sehen, und das sorgt für Erfolgserlebnisse.

Da sich die meisten Menschen in erster Linie auf ihr Sehvermögen verlassen (die so genannten visuellen Lerner), basiert die Kommunikation oft auf dem, was wir sehen können. Meiner Erfahrung nach werden die Frontend-Ergebnisse von den Kunden mehr geschätzt, weil sie sichtbarer sind. Wie Chris Coyier sagt: “Auf dieser Ebene steigt Management ein.” Könnt ihr eine komplexe SQL-Anfrage innerhalb von Millisekunden ausführen? Okay. Habt ihr eine ausgefallene Animation und einen Hover-Effekt hinzugefügt? Wooo-hoooo!

Mir ist auch aufgefallen, dass viele Feature-Diskussionen erst dann beginnen, wenn die Frontend-Leute ihre Arbeit getan haben. Plötzlich bringt der Kunde eine Idee nach der anderen zur Sprache, sobald er die App vor den Augen hat. “Oh, was wäre, wenn wir hier ein schönes Diagramm hinzufügen?", “Wie wäre es mit einem kleinen Banner dort?”

Die Frontend-Leistung wird also viel mehr wertgeschätzt. Das ist jedoch nichts Neues, das hat mich schon immer motiviert. Wie wäre es mit den Entwicklungen der letzten Zeit, die diesen Job noch attraktiver machen? Schauen wir uns das mal an.

Mehr Verantwortung

IT-Architekten sind diejenigen, die normalerweise über die Gesamtstruktur und Logik der App entscheiden können. Ihr denkt vielleicht dabei an Diskussionen über den Tech-Stack oder an komplexe Infrastrukturlandschaften mit Servern, Proxies, Backend-Selektoren usw. Das sind die Dinge, die häufiger mit dem Backend in Verbindung gebracht werden. Mit der Einführung von Web-Komponenten können wir endlich auch mitreden. Frontend-Entwickler entscheiden nun auch, wie die Webanwendung in sinnvolle Teile aufgeteilt werden kann, wo und wie Templating und Datenverarbeitung durchgeführt wird, wie Verantwortlichkeiten aufgeteilt werden sollen, auf welchen Design-Prinzipien (z.B. BEM - Block, Element, Modifikator) das Ganze beruhen soll, und vieles mehr. Der Grund für mehr Verantwortung in der Anwendungsarchitektur ist nicht nur der modulare Ansatz, sondern auch die zunehmenden Fähigkeiten von Frontend-Technologien und somit auch zunehmende Vielfalt der Aufgaben. Dies ist mein nächster Punkt.

Das Backend des Frontends

Viele Aufgaben sind über JavaScript vom Backend ins Frontend gewandert, da wir als Frontend-Entwickler keine Angst davor haben. Ich mag zwar die Situation, wo ich sagen kann: “oh, es ist nur ein dummes Frontend, zu schade, dass sich das Backend darum kümmern sollte”, aber es gibt immer mehr Fälle, in denen wir tatsächlich selber etwas machen können. Zum Beispiel das Abrufen und sogar Aktualisieren von Daten mit GraphQL, die Zustandsverwaltung mit Redux, das Senden von E-Mails mit der Sparkpost-API. Fühlt ihr euch (fast) allmächtig? Ich schon.

Chris Coyier hat eine weitere interessante Beobachtung gemacht. Mit der Verbreitung von JS überschneiden sich die Backend/Frontend-Technologien in den Tech-Stacks immer mehr. Bei LAMP war die Trennung klar, MEAN ermöglichte die Verständigung durch die gemeinsame Sprache, Serverless/STAR lässt die Grenze verschwimmen oder gar nicht relevant erscheinen (siehe die Grafik unten).

Mit all diesen neuen JS-basierten Tools und Frameworks und mit der Tech-Stack-Wandlung scheint es manchmal so zu sein, als ob wir “Front” sowie “Back” in der Frontend-Entwicklung machen, so dass es in Ordnung ist, sich ein wenig “fullstacky” zu fühlen.

Vielfältige Aufgaben

Nun, “fullstacky” zu sein, bedeutet eine Menge Arbeit. Hier kommen einige neue Themen auf uns zu: Komponenten-basiertes Design, Architektur auf der Webseitenebene, Routing, Kommunikation über APIs, Daten- und Zustandsverwaltung. Die Projektarbeit erfordert auch das Wissen über Git, Tests, Build-Prozesse, Deployment-Pipeline… Und als ob es nicht genug wäre! Die alten Aufgaben sind immer noch da – Design Systeme, Implementierung von sicheren, barrierefreien und schnellen Lösungen, Browserkompatibilität, UX usw.

Die gute Nachricht ist - man muss es nicht allein tun und sich auf jede dieser Aufgaben konzentrieren. Also herzlich willkommen in der Ära der Frontend-Engineers, UX-ler, Frontend-Architekten und sogar Fullstack-Frontend-Entwickler!

Frontend bedeutet viel Arbeit.

Frontend kann immer mehr.

Frontend macht Spaß.

Hier ist der Link zum kompletten Talk von Chris Coyier: