02.03.2022 - Lesezeit: 6 Minuten
Es existieren Situationen, in denen die Arbeit von Software-Entwicklern magisch aussehen. Fast wie ein Hexenwerk entstehen aus einzelnen Zeilen Code schön anmutende Interfaces und komplexe Applikationen.
Dahinter steckt jedoch keines Falls schwarze Magie. Viel mehr ist die Entwicklung von Software eine Symbiose aus viel Fleißarbeit – gepaart mit der richtigen Planung. Es wird von allen Beteiligten viel Zeit investiert, um zu verstehen, was die optimale Lösung eines Problems ist und wie diese umgesetzt werden kann.
Hierbei steht nicht ausschließlich der Code im Fokus. Vielmehr geht es ebenfalls darum das übergeordnete Bild und die einzelnen Teile zu verstehen. Oftmals wird übersehen, dass nicht nur das "Was", sondern auch das "Wie" wichtig ist. Nur solch ein Verständnis bringt Entwickler in die Lage richtige Entscheidungen zu treffen.
Was macht den Alltag aus
Auch wenn es vielleicht hochgradige Hollywood-Produktionen anders vermitteln möchten, die Arbeit von Software-Entwicklern besteht nicht darin eintönig Code mit ernsten Anmutungen zu tippen.
Die Entwicklung von Software ist die interdisziplinäre Zusammenarbeit von unterschiedlichsten Bereichen. Dazu zählen Product Owner, Designer, Berater und viele andere Rollen. Dieser Schmelztiegel bedeutet ebenso viel Kommunikation. Sie können sich vorstellen, dass allein die Sicherstellung, dass alle von der gleichen Sache und den gleichen Konzepten reden, eine Herausforderung für sich selbst ist.
Daher geht der Alltag mit viel Kommunikation einher. Es gibt jedoch noch viele weitere Arbeiten, die nicht ohne Weiteres offensichtlich sind.
Der Stundenplan
Wie in fast jedem anderen Beruf ist jeder Tag einzigartig. Durch gewisse Rituale existiert zwar eine Grundstruktur des Alltags, aber spätestens, wenn jemanden die Nachricht erreicht, dass die Server nicht mehr erreichbar sind, kommt definitiv Abwechslung in den Beruf.
Schauen wir uns gemeinsam an, wie solch ein Tag im Leben eines Software-Entwicklers aussieht. Wir gehen übrigens von einem acht Stunden Tag aus.
9:00 - 9:15 Uhr – Ankommen
In den meisten Fällen ist der Start in den Tag unaufgeregt. Der Rechner wird startklar gemacht für das Tagewerk. Dazu zählt das Öffnen des Projektes in einem Editor und ein Abgleich mit dem aktuellsten Arbeitstand. Entwickler haben spezielle Tools, um sich gegenseitig den Code zu teilen und die jeweiligen Änderungen daran zu verfolgen und eben abzugleichen.
9:15 - 9:30 Uhr – Start in den Tag
Wie bereits erwähnt, Softwareentwicklung bedeutet viel Kommunikation. Daher bleibt das Checken von neuen Notifikationen nicht aus. Dazu zählen nicht nur ganz traditionell E-Mails, viel mehr wird auch in Messenger wie Slack der Nachrichtenverlauf nachgelesen. Über diese Kanäle halten sich alle Projektbeteiligte auf dem Laufenden.
9:30 - 10:00 Uhr – Code Reviews
Da, wo Code geschrieben wird, ist mindestens genauso wichtig dessen Qualität zu überprüfen. In der Programmierung gilt das Vier-Augen-Prinzip. Jede Änderung der Applikation wird von mindestens einem weiteren Entwickler überprüft. Das findet in so genannten Code Reviews statt. Dabei wird Feedback zu der getätigten Umsetzung gegeben.
10:00 - 10:15 Uhr – Daily Standup
Die meisten Teams arbeiten in agilen Umgebungen. Hier werden in festen Zyklen, meistens zwischen ein bis drei Wochen einzelne Arbeitspakete definiert. Wie der jeweilige Fortschritt dieses Sprints ist, wird in so genannten Daily Standups synchronisiert. Dabei treffen sich alle Entwickler und Produktverantwortlichen zu einem sehr kurzen Meeting und geben ein Status-Update.
10:15 - 12:30 Uhr – Entwickeln eines Features
Das Arbeiten an einem neuen Feature erfordert viel Konzentration. In dieser Zeit wird die Applikation mit neuen Funktionen erweitert. Dabei wird das bereitgestellte Design integriert und die entsprechende Logik geschrieben.
12:30 - 13:30 Uhr – Mittagspause
Wo viel mentale Arbeit stattfindet, sind größere Pausen unabdingbar. Daher ist es durchaus üblich auch die Mittagspause etwas ausschweifender zu gestalten.
13:30 - 14:00 Uhr – Debugging eines Problems
Oh. Nach der Pause kommt die Nachricht herein, dass in der Applikation eine Funktion nicht mehr funktioniert. Daher steht in den nächsten 30 Minuten ein Debugging an. So nennt sich der Prozess einzelne Fehler zurückzuverfolgen und deren Ursprung zu verstehen. Ein Glück, es ist nichts Größeres. Lediglich eine Konfiguration wurde falsch gesetzt und es waren keine User betroffen.
14:00 - 16:00 Uhr – Weiterentwicklung eines Features
Weiter geht es mit dem Feature das am Vormittag begonnen wurde. Während der Umsetzung kam es zu kleineren Fragen, wie das Verhalten der Applikation in bestimmten Szenarien sein soll. Daher wird kurz über Slack Rücksprache mit den Projektverantwortlichen gehalten.
16:00 - 16:15 Uhr – Eine kleine Zwischenpause
Nach der intensiven Arbeit an der Applikation und kleinen Refactorings, das sind Umstrukturierungen des Codes, ist eine kleine Pause notwendig.
16:15 - 17:00 Uhr – Pair Programming
Während der Pause hat ein Kollege angeklopft. Er kommt an einer Stelle nicht weiter und fragt sich, was der beste Lösungsweg ist. Anstatt sich alleine zu verrennen wird eine Pair Programming Session abgehalten. Hierbei kollaborieren mindestens zwei Entwickler um besonders knifflige Fragen oder Probleme gemeinsam zu lösen. Der große Vorteil hier ist, dass relativ schnell besonders gute Lösungen erarbeitet werden können. Gerade durch die Vereinigung des Wissens.
17:00 - 17:45 Uhr – Fertigstellung des Features
Die letzten Züge des heutigen Features werden finalisiert. Es fehlt an einigen Stellen noch der Feinschliff und das Testen der Umsetzung.
17:45 - 18:00 Uhr – Arbeitsstände kommunizieren und Feierabend
Zum Ende des Tages wird der Code des neuen Feature in die Codeverwaltung gebracht. Bevor es in den Feierabend geht, erhalten die Produktverantwortlichen eine Nachricht über den aktuellen Stand der Arbeiten.
Je nach Rolle und Position verschieben sich natürlich die Prioritäten. Team Leads verbringen einen Großteil ihrer Zeit mit Management-Tätigkeiten. Bei Entwicklern, die gerade erst in die Profession starten, sind die jeweiligen Lernphasen stärker ausgeprägt.
Abwechslung ist Teil des Jobs
Wie leicht zu erkennen ist, ist der Alltag von Software-Entwicklern sehr abwechslungsreich. Das sture Tippen von Code in den Rechner ist es schon lange nicht mehr. Die Entwicklung von digitalen Produkten beherbergt sehr viel Kollaboration und Kommunikation. Gerade in komplexeren Projekten.
Weiterbildung als ständiger Begleiter
Jedes Projekt, jedes Feature, sogar jede kleinste Änderung kann eine Herausforderung sein. Daher ist es unabdingbar sich ständig weiterzubilden. Das geschieht oftmals ganz von alleine. Durch große Communities, wie Stack Overflow, werden gemeinsam Fragen und Antworten auf viele Probleme gesammelt.
Bei der Arbeit an einem Feature kommt so Stück für Stück neues Wissen zum Entwickler.
Ortsunabhängigkeit ist kein Problem
Unser prototypischer Tag hat keine Annahmen über den Arbeitsort gemacht. Das ist auch überhaupt nicht mehr notwendig. Heutzutage Arbeiten sehr viele Teams ortsunabhängig und sind über den gesamten Globus verteilt. Remote Arbeit ist der neue Standard, so auch bei der prepend.
Zu guter Letzt
Wie bereits zu Anfang erwähnt, ist jeder Tag höchst individuell. Uns ist wichtig zu zeigen, dass mit der Tätigkeit der Fokus nicht nur bei der Programmierung liegt. Qualitätssicherung, Kommunikation und Fehlerbehebungen sind mindestens genau so wichtig.
In diesem Sinne, Happy Coding.
Vielen Dank für lesen. Wenn du den Artikel hilfreich gefunden hast, teile ihn gerne mit deinem Netzwerk. Wir stecken viel Arbeit in unseren Content und es wäre nett viele Damit zu erreichen.