Was macht eigentlich … ein Full-Stack-Entwickler?

31. August 2018


Full-Stack-Entwickler sind quasi die Primi inter Pares unter den Entwicklern – sie könnten eine Webanwendung auch im Alleingang auf die Beine stellen. Sie beherrschen die Technologien für Frontend und Backend gleichermaßen und wissen daher besonders gut, wie diese beiden Bestandteile der Webentwicklung ineinander greifen. Zwei unserer erfahrensten Full-Stack-Entwickler haben sich bereit erklärt, uns einmal etwas genauer zu erzählen, was sie bei uns so machen: Denis, der seit 13 Jahren zum EsPresto-Team gehört, und Martin, der jetzt das 7. Jahr dabei ist.

 

Wie seid Ihr Full-Stack-Entwickler geworden?

Denis: Mein Onkel hat einen der ersten DDR-Personalcomputer gehabt, der hat mich wahnsinnig fasziniert. Immer, wenn ich als kleines Kind bei ihm war, wollte ich an diesem Computer spielen. Nach der Wende habe ich mein Begrüßungsgeld in Computer investiert und mir später den C64 gekauft. Ich habe damit viel experimentiert, Listings aus Computerzeitschriften abgetippt. Also habe ich dann später Informatik studiert. Direkt danach habe ich bei EsPresto in einem Projekt angefangen, in dem man viel ausprobieren konnte, im Backend und im Frontend. In den nächsten Projekten ging das dann so weiter. Dabei habe ich mir sehr viel selbst angeeignet.

Martin: Ich habe auch Informatik studiert, weil ich Programmieren immer schon total interessant fand. Als Kind habe ich Listings aus Computerzeitschriften abgetippt. Viel vom Code habe ich damals zwar noch nicht verstanden, aber es war sehr spannend zu schauen, wie der Computer darauf reagiert. Fast noch interessanter fand ich Netzwerkkommunikation. In den frühen 90ern habe ich als Mitglied einer Mailbox meine erste E-Mail-Adresse bekommen und darüber dann, als Gegenleistung für ein selbstgeschriebenes und als „E-Mailware“ veröffentlichtes Programm, E-Mails aus aller Welt bekommen. Die Vorstellung, dass über riesige Distanzen in kürzester Zeit elektronisch Informationen ausgetauscht werden können, fand ich wahnsinnig faszinierend und das ist es heute im Grunde immer noch. Zusätzlich fand ich aber auch die Interaktion des Nutzers mit dem Computer spannend und habe schon früh angefangen, für Terminalumgebungen Oberflächenbibliotheken zu schreiben. Insofern ist das Profil „Full-Stack-Entwickler“ eigentlich die logische Konsequenz, da es ja beides zusammenbringt: die Netzwerkkommunikation einerseits und die Interaktion des Nutzers mit dem Computer über eine grafische Benutzeroberfläche andererseits.

Was sind Eure Aufgaben als Full-Stack-Entwickler bei uns?

Martin: Die sind total vielfältig, weil EsPresto ja ein eher kleines Unternehmen ist und individuelle Softwareentwicklung durchführt. Ich bin also oft an ganz verschiedenen Fronten gleichzeitig im Einsatz. Mal mache ich mehr Frontend-Entwicklung, mal mehr Backend. Ich arbeite auch an Systementwürfen mit, d.h. wenn wir ein neues Projekt starten, dann überlege ich, wie das am besten strukturiert werden kann, wie die entsprechende Serverlandschaft aussehen könnte usw.

Kundenkontakt habe ich auch: Ich bin bei Akquisegesprächen dabei und in der Beratung. Das mache ich sogar ziemlich gern. Außerdem haben wir einige interne IoT-Projekte, an denen ich auch mitarbeite. Die laufen allerdings eher am Rand und sind in erster Linie Spaßprojekte.

Denis: In erster Linie das, was auf der sogenannten DevOps-Schiene läuft – also Software entwickeln und dafür sorgen, dass die Software in produktiv vernünftig läuft. Außerdem Continuous Delivery, d.h. Tests entwickelter Software. Das machen wir mit Jenkins und Bamboo. Zusätzlich mache ich noch Atlassian-Kram, also von der Plugin-Entwicklung bis hin zu Installation und Updates. Manchmal bin ich auch bei der Aufwandsschätzung für neue Angebote dabei und bei Gesprächen mit potenziellen Kunden, aber nicht so oft. Ach ja, die Einarbeitung neuer Mitarbeiter kommt auch noch dazu.

Hände auf Tastatur

Die Arbeit als Full-Stack-Entwickler bedeutet neben viel Kopf- auch viel Handarbeit

 

Was macht Ihr nicht so gerne?

Denis: CSS mag ich überhaupt nicht. Da fehlt mir irgendwie die Geduld. Kundenberatung mache ich nicht so gern wie Martin. Wenn es aber doch dazu kommt, denke ich „es ist gar nicht so schlimm“, und so kommt es dann auch. Eine wichtige Aufgabe ist auch die Angebotserstellung, aber ich entwickle lieber.

Martin: Es gibt wenig, was ich pauschal nicht gerne mache. Meist stelle ich das dann fest, während ich es tue. Was ich oft unerfreulich finde, ist die Beschäftigung mit abgeschlossenen Systemen, zu denen es keine Dokumentation gibt und ich nicht sehen kann, wie sie aufgebaut sind und funktionieren. Außerdem habe ich ein eher gespaltenes Verhältnis zu CSS. Problemlösung mit CSS finde ich eigentlich ganz okay, aber es kann auch sehr viel Hass und Frust erzeugen.

Auf was seid Ihr besonders stolz?

Martin: Auf Lösungen, von denen ich den Eindruck habe, dass sie funktionieren. Damit meine ich nicht nur die technische Seite, sondern auch die praktische: dass sie ihren Zweck erfüllen, gerne verwendet werden und dem Anwender einen konkreten Nutzen bringen. Dazu gehört, dass man erst einmal analysiert, was das Problem ist und wie es sich am besten lösen lässt. Manchmal spielt aber auch die Ästhetik von Quellcode eine gewisse Rolle. Klar, nicht jeder funktionierende Code ist immer auch schön, und nicht jeder schöne Code ist sinnvoll, aber wenn ein Code funktioniert, dem Anwender einen Nutzen bringt und darüber hinaus noch schön ist, dann ist mir das immer eine persönliche Freude.

Denis: Darauf, dass ich schon so lange dabei sein darf und dass die Kundenprojekte, an denen ich beteiligt war, immer noch bei uns sind. Das eine oder andere dieser Projekte würde ich sogar als „mein Baby“ bezeichnen. Das sind die, die ich von Beginn an mitgestaltet und begleitet habe, die ich in- und auswendig kenne. Wenn ich mir unsere Kunden ansehe und ich mir bewusst mache, für welche Unternehmen ich schon Software entwickelt habe, bin ich schon stolz darauf. Und wenn ich weiß, dass diese Software auch benutzt wird.

Was macht Eurer Meinung nach einen guten Full-Stack-Entwickler aus?

Denis: Dass er sich in den Technologien auskennt, mit denen umgehen muss. Dass er die Domäne des Kunden versteht, ist auch sehr wichtig. Er muss erst einmal fragen, „was macht der Kunde und was will er“. Das muss er erst einmal verstehen, bevor er die Software entwickelt. Das ist nicht leicht. Außerdem sollte er Spaß bei der Arbeit haben und den Überblick behalten.

Martin: Gerade in der Frontend-Entwicklung ist es meines Erachtens nach notwendig, sich in den Anwender hineinzuversetzen bzw. sich auf dessen Sichtweise einzulassen. Ich beobachte manchmal – vielleicht auch an mir selbst – eine gewisse Überheblichkeit des Entwicklers. Von der muss man sich verabschieden. Es kann zum Beispiel sein, dass man als Techniker ein bestimmtes Feature gut findet, aber der Anwender sagt: „Mir ist egal, ob es schick ist, es hilft mir nicht“. Oder anders herum: Manchmal erkennt man die Relevanz eines Details nicht, das aber für den Anwender entscheidend ist. Also, kleine Details können sehr wichtig sein. Im Zweifel lieber einmal zu oft beim Nutzer nachfragen, was er eigentlich tun will und wie, damit man die Lösung darauf ausrichten kann. Das wird, wie ich finde, zu selten gemacht. Für den Backend-Bereich gilt im Prinzip dasselbe wie für die Softwareentwicklung als Ganzes: die Lösungen sollten effektiv, effizient und robust sein. Und so, dass man auch nach längerer Zeit als Entwickler gerne noch daran arbeitet.

 

Bei uns arbeiten eine Menge kluger Leute, die „irgendwas mit IT“ machen – Projektleitung, Entwicklung, Support. Aber was genau verbirgt sich hinter ihren Berufsbezeichnungen? In dieser Reihe stellen wir die wichtigsten Aufgabenfelder bei EsPresto vor.

Teil 1: Was macht eigentlich … ein SysAd?