Sebastian Buchholz, 30, hat an der Universität Bayreuth angewandte Informatik mit dem Schwerpunkt Bioinformatik studiert. 2016 hat er sein Studium mit dem Master abgeschlossen. "Zu Beginn des Bachelor-Studiums habe ich in Ansätzen programmieren mit Java gelernt. Hauptsächlich aber ging es im Studium um Rechnerarchitekturen, verteilte Systeme und Datenbanken.“ Anwendungsentwicklung war kein Bestandteil seines Studiums. Buchholz hat zwar Methoden und Prozesse dafür gelernt, nicht aber, wie sie in der Praxis eingesetzt werden. Die praktische Erfahrung musste er sich durch Learning by Doing als Werkstudent und Praktikant, nach Studienabschluss dann auch im eigentlichen Job selbst beibringen.

Entwicklung, Betrieb und Koordination

Nach seinem Abschluss hat er ein Jahr in einem Softwarehaus in der Softwareentwicklung gearbeitet und dort ein Projekt für Datev gemacht. Datev ist eines der größten Softwarehäuser und IT-Dienstleister in Deutschland. Aktuell hat das Unternehmen rund 7800 Mitarbeiter, davon etwa 2000 Software-Entwickler. Betriebswirtschaftliche Software für Steuerberater, Wirtschaftsprüfer und Rechtsanwälte sowie deren Mandaten zu entwickeln und zu betreiben ist das Hauptgeschäft der Genossenschaft.

heise jobs – der IT-Stellenmarkt Zu Arbeitsplätzen und Stellenangeboten in der IT-Branche siehe auch den Stellenmarkt auf heise online: heise jobs - der Stellenmarkt auf heise online

Buchholz arbeitet an einem neuen Cloud-Programm für den Rechnungsdatenservice, einer Anwendung zur Übermittlung von Rechnungsdaten zwischen dem E-Commerce-Anbieter und seinem Steuerberater. "Ich habe drei Aufgaben“, sagt Buchholz: "Erstens Entwicklung, also Programmierung – vor allem mit Java. Zweitens Betrieb der Anwendung und drittens Koordination und Klärung zwischen den von außen gestellten Anforderungen an die Anwendung und der Umsetzung mit den Kollegen im Team." Die Entwicklungsmethode ist agil nach Scrum. Die Anforderungen verstehen, die Softwarestruktur daran auszurichten und dann zu programmieren – das ist eine typische Aufgabe für einen Software-Entwickler.

Im Prinzip lernt das jeder Informatiker

Im Prinzip lerne heute jeder angehende Informatiker, wie Software entwickelt wird, sagt Ralf Reussner, Informatik-Professor am KIT in Karlsruhe und Sprecher für Softwaretechnik in der Gesellschaft für Informatik. "Wie tief und breit das Wissen vermittelt wird, hängt stark von der jeweiligen Hochschule ab.“ Jede Hochschule lehrt im Informatikstudium die Programmierung in einer objektorientierten Sprache wie Java oder C++. "Welche, ist gar nicht so wichtig, denn, wer konzeptionell eine objektorientierte Sprache verstanden hat, findet leicht einen Zugang zu den anderen.“ Die Programmierung ist allerdings nur ein Teil in der Arbeit eines Software-Entwicklers. "Entscheidend ist das Verständnis der oft fachfremden Anforderungen sowie ein tragbarer Architektur-Entwurf, der wesentlich die Qualität der Software beeinflusst“, sagt Reussner.

Um ordentlich planen zu können, müssen Software-Entwickler zunächst die Anforderung verstehen. Den Anwendungsfall also. Der kann betriebswirtschaftlicher Art sein wie bei Sebastian Buchholz. Oder einen Herzschrittmacher steuern. Oder ein Auto teilautonom fahren lassen. Beim Erstellen der Architektur sollte darauf geachtet werden, dass die Struktur Änderungen zulässt. Sie sollte skalierbar sein für Spitzenlasten und sicher vor Angriffen.

Programmiersprache spielt untergeordnete Rolle

Was ein guter Software-Entwickler können muss, beschreibt Reussner anhand eines guten Architekten: "Er achtet beim Grundriss darauf, dass das Gebäude baubar ist. Hat Verständnis für Materialien und ist kostenbewusst. Und er kann die Realität in einen Plan abstrahieren.“ Schlechte Programmierer legen nur Steine aufeinander, ohne auf das gesamte Gebäude zu achten. Die Steine sind Programmcodes. Weitsichtig planen und nachhaltig bauen können, das ist es nach Meinung des Professors, was einen guten Software-Entwickler ausmacht.

Andreas Beyer leitet bei Datev ein Team aus Software-Entwicklern und –Architekten, die Kollegen darin unterstützen, Cloud-Anwendungen zu erstellen. "Die Programmiersprache spielt bei der Einstellung neuer Software-Entwickler eine untergeordnete Rolle. Entscheidend ist, das Konzept zu verstehen, wie Software entwickelt wird, sowie die Bereitschaft und das Interesse, den nötigen Technologie-Stack zu erlernen.“ Ein perfekter Entwickler ist für Beyer jemand, der den ganzheitlichen Prozess der Softwareentwicklung versteht und einen hohen Anspruch, im Sinne von Software Craftsmanship, an die eigene Arbeit hat.

Software Craftsmanship ist eine Bewegung, die die Softwareentwicklung nicht nur als Ingenieursdisziplin versteht, sondern auch als Handwerk. "Da gute Software Entwickler ein breites Wissen haben, gleichzeitig aber unterschiedlichste Spezialisierungen abdecken können, sind sie am Markt so gefragt“, sagt Beyer.

Unternehmen werden bescheidener



Die Vesterling AG mit Sitz in München ist als Personalberatung auf die Besetzung von Technologie-Positionen spezialisiert ist, mit klarem Schwerpunkt IT. Die Gesellschaft sucht im Auftrag von Unternehmen Mitarbeiter. "In der Hälfte aller Beauftragungen geht es um Software-Entwickler“, sagt Georg Ruëff, Vorstandsmitglied von Vesterling. Der diplomierte Informatiker leitet das Recruiting für Informationstechnologie. Davor hat er in unterschiedlichen IT-Positionen gearbeitet, von der Software-Entwicklung bis hin zum Chief Technology Officer. Die hohe Nachfrage nach Software-Entwicklern begründet er mit der Digitalisierung, die meist in eine Anwendungsentwicklung mündet. "Der hohe Bedarf an Entwicklern zieht Quereinsteiger an und die Unternehmen sträuben sich aufgrund des starken Mangels nicht mehr, diese einzustellen.“ Gute praktische Programmierkenntnisse sind inzwischen so viel wert wie ein abgeschlossenes Informatik-Studium.

Mit der Personalnot wurden die Unternehmen bescheidener: Technische Skills rücken in den Hintergrund und persönliche in den Vordergrund. "Dazu gehören technisches Interesse und praktische Entwicklererfahrung.“ Von Vorteil ist es, wenn Bewerber sich mit einer objektorientierten Sprache auskennen. Drei von vier Kunden von Vesterling, die Software-Entwickler suchen, erwarten diese Kenntnisse. Programmierkenntnisse setzen alle voraus, also logisches Denken und Zerlegen von Abläufen in Einzelschritte, um diese dann in Programmcodes darzustellen.

Die Anforderungen der Unternehmen und das Angebot am Arbeitsmarkt sind nicht deckungsgleich. "Sonst würde es nicht so viele offene Stellen geben“, sagt Ruëff. Deshalb: Wer programmieren könne, motiviert sei und Persönlichkeit habe, finde eine Stelle. "Zunehmend scheitern Einstellungen jedoch an hohen Gehaltsforderungen und einer zu engen Technologiefokussierung von Bewerbern“, sagt Ruëff. Viele richten sich darauf aus, nur mit den modernsten Technologien zu arbeiten, und manche wünschen sich Einstiegsgehälter, die andere nicht einmal nach langjähriger Berufserfahrung haben. Dass eventuell im Studium keine Programmierkenntnisse vermittelt wurden, daran liegt es jedenfalls nicht, wenn es mit der Bewerbung nicht klappt. (axk)