So sieht der Arbeitsalltag eines Softwareentwicklers aus

Dunkle Kellerzimmer, ungesunde Softdrinks, Pizza und viel Nerd-Arbeit: Das Bild vom Arbeitsalltag eines Programmierers ist nichts anderes als eine Sammlung von nackten Vorurteilen. Stellt man sich als Laie den Alltag von Softwareentwicklern vor, ist diese Vorstellung meist geprägt von zahlreichen Klischees.

Es besagt, dass er von Kaffee und Energy Drinks lebt, Nächte durchlebt und immer wieder alleine Zeilen schreibt. Es versteht sich von selbst, dass die Arbeit nicht in dunklen Kellern stattfindet. Im Gegenteil: Softwareentwickler arbeiten zunehmend in offenen, lichtdurchfluteten Gemeinschaftsbüros und führen gelegentlich eine Konversation mit ihren Kollegen.

Der Austausch mit anderen Entwicklern ist jedoch nicht nur aus rein praktischen Gründen notwendig, sondern führt oft zu neuen Ideen. Softwareentwickler entsprechen dennoch in gewisser Weise dem Klischee, denn sie sind oft Tüftler, die für ein paar Tage still vor dem Computer sitzen, bis sie ein Problem gelöst haben.

Der beste Weg, nicht nur den Softwareentwickler zu Überstunden zu motivieren, ist, ihm einen schönen Arbeitsplatz zu geben und ihn irgendwo in der Nähe der Kaffeemaschine aufzustellen. Weil der Arbeitsalltag der Softwareentwickler oft stressig ist und viel Engagement erfordert, überfordern sich die Arbeitgeber derzeit mit Angeboten, die zu einer besseren Wohlfühlatmosphäre im Unternehmen beitragen.

Programmierer sind praktisch überall gefragt, denn alle Branchen nutzen IT-Anwendungen. Apps werden in großer Zahl heruntergeladen, intelligente Software ist ein unverzichtbarer Bestandteil der Arbeitswelt geworden, und Autos, Kühlschränke und Heizgeräte kommunizieren auch über intelligente Anwendungen mit ihren Nutzern. In Zukunft werden auch Technologien wie Smart Home zur Steuerung von Haushaltsgeräten eingesetzt.

Aufgrund der vielfältigen Einsatzgebiete gibt es eigentlich keinen typischen Arbeitstag, jedenfalls nicht im kleinen Rahmen. Die Aufgaben sind sehr unterschiedlich und reichen von der Entwicklung von Lernsoftware über die Optimierung einer Suchmaschine bis hin zur Erstellung einer Datenbank oder der Programmierung von Industrierobotern. Einzelarbeit ist weitgehend die Regel, aber es gibt viele Kooperationen mit verschiedenen Abteilungen, zum Beispiel mit der Produktion, der Konstruktion oder mit Kunden. Je nachdem, in welchem Bereich ein Experte seine Aufgaben erfüllt, ist auch Schichtarbeit gefragt.

Es ist auch nicht ungewöhnlich, dass Absolventen von ingenieur- oder naturwissenschaftlichen Studiengängen einen Job in der Softwareentwicklung finden. So entsteht oftmals ein Austausch über ein breites Wissensspektrum hinweg.

In den meisten Unternehmen sind Softwareentwickler für die Programmierung, Wartung und Verbesserung von Anwendungen verantwortlich. Entwickler arbeiten allerdings auch oft als Berater oder in Beratungsunternehmen zusammen. Viele Softwareentwickler sind in Unternehmen tätig, die eigene Software vermarkten. Oftmals ist dort der Bedarf an Beratung höher als an reiner Entwicklung. In vielen Fällen ist der Programmierer für die spätere Schulung der Endanwender verantwortlich.

Vorgehensweise

Es gehört auch zum Klischee, dass man gut in Mathe sein muss, um programmieren zu können. Doch viele denken auch: Mathe ist nur bedingt notwendig, schließlich kann es der Computer. Ein gutes Verständnis von Mathematik ist allerdings Voraussetzung für die erfolgreiche Arbeit.

Zur Entwicklung eines neuen Algorithmus zur Lösung eines Problems, ist es zunächst einmal erforderlich, dort wie an eine Matheaufgabe heranzugehen. Das Problem muss in seiner Gänze erfasst werden, modelliert und abstrahiert werden und schließlich in eine Struktur und dann in einen Algorithmus umgesetzt werden.

In neuerer Zeit hat sich bei vielen Programmierern allerdings die „Unart“ eingeschlichen, nach Problemen zu googeln und vorgefertigte Softwarepakete zu kopieren. Dies ist sicherlich ein bequemer Ansatz, führt aber dazu, dass der Programmierer das Problem und seine Lösung nicht versteht. So sollte sicherlich ein guter Programmierer nicht arbeiten.

Ist die konzeptionelle Arbeit getan, wird der Programmcode geschrieben. Je nach Anforderung gehört es dazu, sich Gedanken über die Struktur der Daten und Datenbanken zu machen, aber auch über Bedienung und Design.

Bei komplexen Softwareprojekte übernehmen allerdings unterschiedliche Programmierer oder Teams diese Aufgaben. Ist die Programmierarbeit getan, geht es daran zu testen und Bugs zu beheben. Oftmals übernimmt der Kunde den Test der Software und wenn Fehler auftreten, müssen diese so schnell wie möglich behoben werden. Das Beheben von Bugs ist für viele Programmierer eine lästige Aufgabe, weil es sehr unbefriedigend ist. Normalerweise besteht ein Bugfix darin, lange zu suchen, bis man den Ort gefunden hat, an dem das Problem liegt, dann einige Zeit damit zu verbringen, den Code neu zu schreiben, ohne das Problem zu beheben. Die Software wird oft tausende Male neu gestartet und getestet, bis sie endlich funktioniert.

Die Dokumentation spielt ebenfalls eine wichtige Rolle bei der Sicherstellung der Qualität der Softwareentwicklung. Vom Design bis zum Test der Software müssen meist alle Schritte dokumentiert werden. Die Dokumentation im Programmcode ist ebenso wichtig wie eine Änderungshistorie oder die Erstellung von Einführungshinweisen.

Teamwork und Kommunikation mit Anwendern

Die Einbindung des Anwenders ist ein wichtiger Erfolgsfaktor in der Softwareentwicklung. Im Idealfall werden die Kundenanforderungen innerhalb der regulären Entwicklungsphase umgesetzt. Jedoch ist in vielen Fällen eine flexible Herangehensweise notwendig, da sich viele Probleme erst in der Entwicklungsphase herauskristallisieren.

Um diesen Anforderungen gerecht zu werden, wird zunehmend agil entwickelt. Wenn Unternehmen an agile Entwicklung im Arbeitsalltag denken, ist Scrum oft der erste und beste Ansatz, um loszulegen (weitere Modelle sind Kanban und Lean). Agilität ist ein wichtiger Trend bei der Programmierung von Anwendungen.

Entwickler und Unternehmen müssen sich jedoch einer Reihe von Faktoren bewusst sein, um den Ansatz optimal umzusetzen. Für die agile Softwareentwicklung arbeitet der Entwickler in kleinen Teams, in einem vorgegebenen Rhythmus (Sprints) zusammen. So wird die neue Software Schritt für Schritt entwickelt, dem Kunden vorgestellt und kontinuierlich verbessert.

Der Einzelgänger

Es gibt aber auch den Programmierer als klassischen Einzelgänger. Viele Freelancer arbeiten auf diese Art. Es gibt aber auch zahlreiche Unternehmen, die Softwareentwickler alleine und autark programmieren lassen.

Für viele Entwickler ist dies die angenehmere Art, den Job durchzuführen. Allerdings ist es Voraussetzung, eine große Vielfalt an Fähigkeiten zu besitzen. Der Einzelgänger muss sich in der Regel sowohl mit Datenbanken, als auch Backend und Frontend auskennen. Besonders Apps haben den Vorteil, dass sie im Vergleich zu herkömmlicher Computersoftware schneller über den App Store oder den Android Market zu vermarkten sind und alleine entwickelt werden können.

Pair-Programming

Die Paarprogrammierung ist eine neue Arbeitstechnik, die helfen soll, die Programmier- oder Softwarequalität zu erhöhen. Dabei sitzen zwei Entwickler gleichermaßen an einem Computer und arbeiten gemeinsam an einer Aufgabe.

Für eine effiziente Paarprogrammierung sollte der Arbeitsplatz akustisch getrennt sein, niemand sollte gestört werden und beide Entwickler sollten in der Lage sein, produktiv zusammenzuarbeiten. Sicherlich passen nicht alle Paare zusammen. Die Entwicklerfähigkeiten von weniger erfahrenen Kollegen werden verbessert und neue Erfahrungen und Erkenntnisse schnell und effizient im Team verbreitet.

Was sind Ihre Erfahrungen?

Interessante Links:
Ein paar Informationen über den Alltag eines Programmierers
Mehr über die Aufgaben eines Softwareentwicklers

Bilder: Canva


Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.

Schreibe einen Kommentar