Wie charakterisiert sich der Beruf des Software-Entwicklers?
Software-Entwickler sind Personen, die Software
entwerfen, implementieren testen und modifizieren. Sie sehen sich — je nach Fähigkeit —
- vorwiegend als Programmierer
- oder vorwiegend als Informatiker.
Worin aber liegt denn nun der Unterschied zwischen beiden — und warum ist die Grenze zwischen ihnen so fließend?
Warum gibt es solche, die nur eine Mindestausbildung haben (sog. Fachinformatiker) und andere, die studiert oder sogar promoviert haben (und nicht selten vorher Physiker oder Mathematiker waren)?
Nun, das ist einfach so:
Programmierer codieren, testen oder reparieren Code, den Software Designer (Informatiker) verantworten und spezifiziert haben.
Damit sind Programmierer — sofern sie sich ausschließlich für Code verantwortlich fühlen — sozusagen das Fußvolk in der IT-Branche.
Studierte Informatiker werden i.A. nur wenige Jahre nach Eintritt ins Berufsleben programmieren — anfangs, so 2-3 Jahre, aber auf jeden Fall.
Später werden sie vor allem Konzeptpapiere schreiben, d.h. Spezifikationen gewünschter Software erarbeiten oder Kunden helfen, ihre IT-Systeme neuen Anforderungen anzupassen.
Sofern sie das auf Dauer nicht können — was leicht passieren kann, wenn sie sich zu wenig mit Softwartechnik beschäftigen —, werden sie vor allem als Manager arbeiten, d.h. als jemand, der organisiert, Kunden akquiriert und Budget verwaltet.
Manche enden als die Sorte von IT-Beratern, die nur noch sinnloses Zeug erzählen, was niemand mehr nützt.
Das sind jene Personen, die zu wenig Management-Talent haben um als Manager zu arbeiten, sich aber auch technisch nicht mehr wirklich auskennen,
da sie nur zu selten gezwungen waren, sich tatsächlich auch mit Code und praktischer Software-Architektur auseinanderzusetzen.
Studierte Informatiker sollten sich als Software-Ingenieure verstehen, d.h. als jemand, der beides beherrscht: Die Kunst des Programmierens, ebenso wie die Kunst des Konzipierens und Spezifizierens umfangreicher IT-Landschaften.
Von Informatikern erwartet man, dass sie problemlos umfangreiche Papiere in Deutsch ebenso wie in Englisch schreiben können und nie verlernt haben, auch mit Code gut umgehen zu können.
Optimalerweise sollten sie sich zudem noch fließend in Englisch mit Ausländern unterhalten können.
Sie sollten sich nie zu fein dafür sein, auch selbst mal bei Bedarf ein kleines Hilfswerkzeug zu implementieren mit dem Ziel, ihre eigene Arbeit effizienter und fehlerfreier zu gestalten.
Ja, und Management-Talent sollten sie darüber hinaus auch noch haben.
Auf jeden Fall sollten Informatiker die Fähigkeit haben, sich extrem schnell in jedes nur denkbare Anwendungsfeld von Software einzuarbeiten — mindestens dann, wenn sie nicht erwarten, lebenslang nur ein und dasselbe Unternehmen bedienen zu müssen.
Wer für IT-Beratungs-Unternehmen arbeitet, muss damit rechnen, dass es Zeiten geben wird, wo er alle paar Monate in ein neues Projekt kommt, in dem es um Anwendungsproblematik geht, die er vorher noch nie angetroffen hat.
Wer hat das Zeug zum idealen Informatiker?
Wenn an IT interessierte Abiturienten sich überlegen, ob sie eine Lehre (eine sog. "Ausbildung") als Fachinformatiker machen oder doch besser gleich Informatik studieren sollen, sollten sie folgendes berücksichtigen:
Als Informatiker erfolgreich werden vor allem Menschen, denen es leicht fällt, auch sehr abstrakt zu denken (so abstrakt wie Mathematiker, aber anders als sie nicht nur in formaler Notation).
Man sollte Freude daran haben, Konzepte auch aufzuschreiben (zu spezifizieren und zu dokumentieren) und ständig neu zu verbessern, denn:
Gute Dokumentation (und durchdachte Dokumentationstechnik) sind ebenso wichtig wie Code. [ Wem das nicht kler ist, oder wer dem nicht Rechnung trägt, wird nie ein wirklich wertvoller Software-Entwickler sein. ]
Gute Informatiker können Code schreiben — aber bevor sie das tun, überlegen sie sich erst mal, welchen Teil davon man generieren könnte (statt ihn von Hand zu schreiben).
Der generierbare Teil von all dem, was man bis vor wenigen Jahren noch von Hand schrieb, ist i.A. erstaunlich groß: typischerweise zwischen 50 und 60 Prozent.
Wird er wirklich generiert — also n i c h t von Hand geschrieben – erhöht das deutlich die Wartbarkeit des entstehenden Systems,
senkt seine Entstehungskosten und macht den Code auch deutlich verständlicher,
auf jeden Fall aber weit schneller neuen Anforderungen anpassbar.
Leider gibt es nur wenige Programmierer, die sich gute Code-Generatoren ausdenken und sie dann auch noch geschickt genug zu implementieren verstehen. Viele von ihnen denken zu projektspezifisch
oder werden durch hohen Zeitdruck dazu gezwungen, wirklich immer nur Wege zu gehen, die zwar kurzfristig Sinn machen, aber schon mittelfristig eher Sackgasse sind.
In der Summe gilt:
Informatiker sind Software-Ingenieure:
Ihr Umgang mit Software ist theoretisch fundiert, zielgerichtet und weitsichtig
Es sind Personen, die
- den Umgang mit sich ständig weiter entwickelnden, hoch komplexen Softwaresystemen souverän beherrschen,
- projektübergreifend denken und handeln
- und Detailwissen mit strategischer Weitsicht verbinden:
Sie wissen um den Wert guter, stets aktueller Dokumentation, bestehen auf ihrer Existenz, erhalten ihre Qualität, und können daher stets ganz genau zu sagen, was die von ihnen verantworteten Anwendungen an SOLL-Funktionalität
zu welchem Zeitpunkt haben bzw. haben sollten. [ Insider wissen: Personen mit solchem Wissen in ausreichender Genauigkeit sind selten.
Wo sie fehlen, kann die IT-Landschaft auf Dauer nicht gesund bleiben. ]