Zum Inhalt springen

Entwickler: Allrounder eine Sackgasse?


DerEntwickler

Empfohlene Beiträge

Hallo,

ich möchte gerne mal hören wie andere dieses Thema sehen. Ich weiß selber nicht was da richtig oder falsch ist daher bin ich offen für jede Meinung.

Ich arbeite als Softwareentwickler und habe eine FIAE Ausbildung. In der Firma, in welcher ich beschäftigt bin, komme ich mit sehr vielen Technologien in Kontakt:

C# (WinForms, ASP.Net, weitere Teile des .Net Frameworks), Xamarin, Azure, SQL, Angular / Typescript / Bootstrap, zudem bin ich Ausbilder für FIAE (mit IHK - Schein)

Zudem studiere ich noch nebenbei Wirtschaftsinformatik und programmiere zuhause mit Java für Android. Das Problem, bzw. da wo ich immer etwas Bauchschmerzen habe, ist das ich mich in keiner der Technologien (außer C# die Sprache an sich) als Experten bezeichnen würde. Teilweise komme ich mit einer Technologie auch nur für ein Projekt in Kontakt. So geschehen bei Angular. 3 Wochen Angular / Typescript gelernt, 4 Monate ein Projekt umgesetzt und dann jetzt schon wieder 1 Jahr nichts darin gemacht. Somit auch wieder alles vergessen und ich kann AdHoc keine Zeile mehr in Angular schreiben.

Manchmal schaue ich mir Stellenausschreibungen an aber traue mich gar nicht mich zu bewerben, weil Häufig ein Programmierer in einer bestimmten Technologie / Framework gesucht wird und da auch schon mehrere Jahre Erfahrung drin hat. Sprich auch mal 2 Jahre am Stück drin entwickelt hat.

Was erwartet der Arbeitsmarkt? Stelle ich mich als Allrounder selber aufs Abstellgleis?

Teilweise sehe ich meinen Werdegang auch als Vorteil. Ich hatte auch schon mit Entwicklern Kontakt die 10 Jahre nur Javascript gemacht haben oder 20 Jahre nur PHP mit einem bestimmten Framework. Die Fallen dann erstmal auf die Nase (meine Erfahrung, gilt natürlich nicht für alle!) wenn sie mit anderen Programmier / Framework - Konzepten konfrontiert werden. Ich bin es glaube ich gewohnt mich ständig in was neues einzuarbeiten. Allerdings schrecke ich dann vor Stellenanzeigen zurück wo ein "Senior Angular Entwickler" gesucht wird, weil meiner Meinung nach so jemand auch ein paar Jahre Erfahrung in der Technologie haben sollte. In heutigen Softwareprodukten rückt die eigentliche Programmiersprache auch immer mehr in den Hintergrund. Was ist es schon Wert wenn jemand reines C# kann? Ohne WinForms, WPF, ASP.Net, Xamarin etc. kommt man nicht weit, alles baut auf speziellen Frameworks auf. Gleichzeitig tue ich mich aber auch schwer mich auf was zu spezialisieren. Zum einen aus eigenem Interesse weil ich alle Technologien Interessant finde, anderseits aber auch weil man dann wieder seinen Kreis für Stellenangebote einschränkt. Wenn ich mich jetzt auf Angular / Typescript spezialisiere schließe ich wieder 95% der Stellenangebote aus und bin dazu noch gefährdet falls Angular mal nicht mehr so populär ist. Gerade im Web ist es ja ein kommen und gehen mit den Frameworks.

Ich danke euch für eure Meinung :)

Bearbeitet von DerEntwickler
Link zu diesem Kommentar
Auf anderen Seiten teilen

Nun was der Arbeitsmarkt möchte kann ich dir nicht sagen. Ich denke aber das ein guter Allrounder eben auch einen Vorteil hat, er kann sich meist schneller in Sachen einarbeiten. Er hat quasi gelernt zu lernen. Und viel ist dann auch Intuitiv und lässt sich übertragen. Es wird immer so getan, als wenn sich die IT so rasant entwickelt aber letztlich werden doch immer wieder Konzepte aus den 70ern und früher in einer anderen Kombination zusammengewürfelt.

Das heißt nicht, dass es nicht viel zu lernen gibt. Der Großteil sind heute aber Entwicklungsumgebungen, Schnittstellen, Build Tools und Frameworks. Nicht Sprachen oder generelle Konzepte.

Mir geht es per se ähnlich. Kleine Firma und je nachdem wer Zeit hat, darf etwas umsetzen. Wenn er damit noch nix gemacht hat, dann arbeitet er sich da eben ein.

Was die Stellenausschreibungen angeht, da wird auch nur mit heißen Wasser gekocht. Glaube das ist meist kein K.O. Kriterium. Oft hat das mit der eigentlichen Arbeit wenig zutun. Da werden mehrere Stellen und Rollen in einen Text zusammengemischt oder man fordert lieber etwas mehr etc. pp.

Die IT ist in Summe mit ihren Technologien auch zu groß. Oft sind die Stellenbeschreibungen so spezifisch auf den Tech Stack der jeweiligen Firma, dass es quasi keine fünf Leute in Deutschland geben würde, die genau das die geforderten X Jahre gemacht haben.

Ansonsten ist natürlich auch die Frage, was einen Spaß macht. Ich schaue da gerne über den Tellerrand, sehe verschiedenste Technologien und begleite auch innerhalb eines Projektes alles, als eine kleine Nische zu erfüllen und abgesehen von den Schnittstellen dazwischen nix zu kennen.

Klar finanziell ist "ich kann mich in alles schnell einarbeiten und habe schon etliche Sachen gesehen" meist nicht so lukrativ wie Spezialist in Xy zu sein mit 10 Jahren Erfahrung. Schon einfach weil es nicht wirklich bemessen werden kann.

Bearbeitet von Velicity
Link zu diesem Kommentar
Auf anderen Seiten teilen

Es gibt Stellen für Spezialisten und für Generalisten. Diese sollte man auseinanderhalten.

Spezialisten kennen sich super in haargenau einer Technologie aus, verstehen aber oft nicht das große Ganze hinter einem Projekt. Der Generalist ist - wie Du - eher ein Allrounder. Er versteht, was hinter den unterschiedlichen Technologien dahinter steckt und verwendet alles, je nachdem was gebraucht wird. Unternehmen können weder ohne den Spezialisten noch ohne den Generalisten überleben.

Willst Du Spezialist für eine Technologie werden? Dann such Dir etwas aus, was Dir in den letzten Jahren sehr viel Spaß gemacht hat und vertiefe diese Kenntnisse. Kein Unternehmen wird Dir böse sein, wenn Du schreibst, dass Du vom Generalisten zum Spezialisten wechseln willst.

Willst Du weiterhin immer wieder mit neuen Technologien in Kontakt kommen und mit allem ein bisschen konfrontiert werden? Das ist nicht schlimm! Besonders in der Ausbildung oder als zukünftiger Teamleiter werden gerne Allrounder eingesetzt.

Ich selbst finde es auch schwer mich zwischen unterschiedlichen Spezialisierungen zu entscheiden und bin lieber ein Generalist. So verkaufe ich mich auch. Ich kann mich schnell in neue Technologien einarbeiten, weiß was wofür gut ist und kann somit Ratschläge geben. Für die "richtige Tiefe" braucht man dann zusätzliche Spezialisten. Es gibt einfach zu viele schöne Richtungen, so dass ich mich nicht entscheiden will und somit "möglichst viel" genießen will. Viele Personalverantwortliche haben bei dieser Ausdrucksweise in den letzten Jahren gelacht, aber verständnisvoll genickt. :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

@SaJu hat Recht. Genau das ist die Frage, um welche es sich bei Dir vorrangig drehen sollte. Generalist oder Spezialist? 👍

Ich möchte zwei Dinge ergänzen.

 

Zum einen, dass es auf Dein Alter und Deine Berufserfahrung ankommt.

Wenn Du noch unter 30 bist und nur wenige Jahre im Beruf bist, ist es ggf. sinnvoll, wenn Du zuerst in die Breite gehst. Von einem Junior Developer wird selten erwartet, dass er alle Details von Programmiersprache X kennt. Da Du somit unterschiedliche Techniken siehst, kannst Du Dir einen guten Überblick verschaffen und besser einschätzen, wohin Du möchtest.

Wenn Du dann nach 5+ Jahren in Richtung Senior Developer oder Software Architekt bei einem DAX-Konzern zielst, solltest Du Dich auf ein Ziel fokussieren und dies bedeutet im Regelfall Spezialisierung.

 

Zum anderen hängt es vom Unternehmensumfeld ab. In kleinen Betrieben und im Mittelstand werden klassischerweise bevorzugt Generalisten gesucht. Die Personaldecke ist dort selten groß genug, um für jedes Thema einen Spezialisten zu beschäftigen. Je größer ein Betrieb wird, umso spezieller im Schnitt die Tätigkeitsfelder.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zählt es schon als Allrounder, ein paar Programmiersprachen zu beherrschen und im Front- und Backend bzw. als Fullstack unterwegs zu sein?

Ein Allrounder wäre für mich jemand, der programmiert, Softwarearchitekturen, Datenbankarchitekturen erstell, Infrastrukturen OnPrem und in der Cloud aufbaut, nebenher noch die CI/CD Pipeline einrichtet und pflegt, Prozesse in der Softwareentwicklung definiert, Requirements Engineering betreibt und Projekte und Mitarbeiter leitet und ganz nebenher noch eine Rolle im Post- und Presales spielt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 4 Stunden schrieb Ulfhednar:

Zählt es schon als Allrounder, ein paar Programmiersprachen zu beherrschen und im Front- und Backend bzw. als Fullstack unterwegs zu sein?

Ein Allrounder wäre für mich jemand, der programmiert, Softwarearchitekturen, Datenbankarchitekturen erstell, Infrastrukturen OnPrem und in der Cloud aufbaut, nebenher noch die CI/CD Pipeline einrichtet und pflegt, Prozesse in der Softwareentwicklung definiert, Requirements Engineering betreibt und Projekte und Mitarbeiter leitet und ganz nebenher noch eine Rolle im Post- und Presales spielt.

Aus meiner persönlichen Sicht würde ich nicht sagen FullStack - Entwickler = Allrounder. Aber es gibt doch erhebliche unterscheide zwischen reinen Frontend / Backend Entwicklern und eben FullStacks. Ein Fullstack ist ja an sich schon umfangreicher und kann sich daher auch weniger in die einzelnen Technologien vertiefen. Zumindest nicht im Berufsalltag, da muss man dann auch extrem privat hinterher sein. Alleine wenn ich mir nur Xamarin anschaue, da hat sich soviel in den letzten 2 Jahren getan aber ich komme da einfach nicht mehr hinterher weil mir die Zeit fehlt und ich eben auch noch mit anderen Technologien arbeiten muss. Klar könnte ich eine komplette App FullStack mit Xamarin samt Backend (z.b ASP.Net Core WebAPI) und Datenbank entwickeln. Ich habe aber auch schon mit einem Xamarin - Entwickler zu tun gehabt der damit FullTime arbeitet seitdem es das Framework gibt. Der kennt da Tricks und Kniffe in den tiefen des Frameworks, da fehlt mir als FullStack Entwickler einfach die Zeit. Ich muss dann immer Workarounds schreiben mit mehr Code weil ich nicht weiß das es auch anders geht. Das ist halt der Punkt, hat ein FullStack Entwickler eine Chance sich auf eine "Senior Xamarin Entwickler" - Stelle bewerben wenn seine reinen Xamarin Kenntnisse eher nur so Mittelmaß sind und vielleicht auch auf einem Framework - Stand von vor einem Jahr basieren? Angular ja das selbe Spiel, die Release Zeiträume des Frameworks sind so kurz so schnell können wir in der Firma gar nicht upgraden und mit neuen Features kommt man dann meistens erst 1 Jahr später in Kontakt wenn man sie mal braucht. 

Allrounder geht natürlich nochmal einen Schritt weiter, da gebe ich dir recht. Da kommt dann noch Projektmanagement, Requierments Engineering dazu etc. Gerade daher würde ich mich auch als Allrounder sehen in meinem aktuellen Job. Ich begleite Projekte von Anfang bin Ende und programmiere nicht nur. Wir sind eine kleine Firma da haben wir nicht extra einen der Projektmanagement, RE, Spezifikation etc. macht. Datenbankserver installieren, Hosting etc ist auch alles Teil meiner Aufgaben.

Glaube ganz wichtig ist auch folgendes: Arbeitet man als FullStack - Entwickler auf einem TechStack oder mehreren? Es gibt ja Technologien die sehr gut zusammenpassen und oft zusammen eingesetzt werden: MEAN - Stack (NodeJs, Angular, Mongo) oder Angular/Bootstrap/ASP WebAPI...oder wechselt man zwischen völlig verschieden Stacks ständig hin und her bzw. wie kontinuierlich ist das ganze. Wenn ich ein halbes Jahr Angular machen darf aber dann 1 Jahr nicht mehr ist das auch nicht gerade hilfreich. Bleibt man bei einem TechStack kann man sich einfacher aktuell halten.

Am 17.5.2020 um 08:33 schrieb Velicity:

Mir geht es per se ähnlich. Kleine Firma und je nachdem wer Zeit hat, darf etwas umsetzen. Wenn er damit noch nix gemacht hat, dann arbeitet er sich da eben ein.

Das spricht mir aus der Seele. Deswegen sage ich mir eigentlich auch immer das mein Jobprofil eigentlich auch nicht so außergewöhnlich sein kann. Wir sind auch eine kleine Firma. Wir können keinen extra Datenbankentwickler, Webentwickler, Azure Entwickler etc. anstellen. Dafür sind die Projekte zu breit gefächert. Gerade in kleinen Firma müssen solche Allrounder eigentlich die Regel sein statt die Ausnahme.

Ich danke euch für eure ganzen Kommentare, das hat mir sehr geholfen. Es gibt natürlich viele Faktoren zu berücksichtigen (persönliche Ziele, Alter, Berufserfahrung) und wo man finanziell hin möchte. Natürlich ich mir klar das man als Allrounder nicht an der Gehaltsspitze steht wie ein KI - Spezialist oder  jemand der noch die letzte Millisekunde Performance aus einem SQL - Server herausholen kann. Aber das ist auch okay für mich, solange ich allgemein attraktiv bin für den Arbeitsmarkt. Bei der Aussage "Es gibt viele offene Entwickler - Stellen" kam ich eben nur manchmal ins grübeln. Natürlich stehen wir mit unserem Beruf auf dem Arbeitsmarkt gut da, die Welt wird immer digitaler und Entwickler werden benötigt, auch jetzt in einer Wirtschaftskrise. Gleichzeit gibt es aber auch nicht den "Entwickler", der Beruf ist eben hochspezialisiert in unterschiedliche Themenbereiche. Was bringen mir 10 offene Java Stellen als PHP Entwickler? Die Firma muss ja bereit sein mir Zeit zu geben das ich die neue Programmiersprache lerne.

Bearbeitet von DerEntwickler
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Ich hab selbst ja nun noch keine Erfahrung damit, aber sowohl mein Abteilungsleiter, als auch Freunde von mir die schon ein paar Jahre die Ausbildung fertig haben reden eher "schlecht" über Generalisten. Wenn ich auf Stackoverflow unterwegs bin im Bereich Karriere und IT wollen auch viele keine Generalisten mehr sein und alle Parteien sagen folgendes:

Die einzelnen Teilgebiete der IT sind heute einfach schon so speziell geworden in den vergangenen 6+ Jahren, dass du einfach viel mehr Aufwand betreiben musst dich einzuarbeiten und vor allen Dingen auch am Ball zu bleiben. Klar werden viele Hochsprachen durch syntaktischen Zucker und größere Standardbibliotheken immer bedienungsfreundlicher, aber in Summe trotzdem umfangreicher und komplexer. Das gleiche gilt für Frameworks, in jedem Bereich sind immer mehr Frameworks relevant, die gleichzeitig immer umfangreicher werden und an denen sich immer schneller was ändert. Dadurch kann man heute einfach nicht mehr in mehreren Bereichen am Ball bleiben, weil heute ein Teilbereich schon fast so komplex ist wie vor 10, 15 Jahren das gesamte Thema.

Und heute Generalist zu werden ist darum wohl schwer, außer du arbeitest wirklich in einem kleinen Unternehmen. In einem Systemhaus oder einer Softwarefirma kommst du um schlecht drum herum dich auf irgendwas zu spezialisieren weil die Codebasis im Zweifelsfall eben von Spezialisten entwickelt wurde und von dir erwartet wird dass du sie verstehst und auch irgendwann Code in der Qualität ablieferst.

Ich hab aber auch schon öfter von Firmen gehört, wo doch viele Mitarbeiter sind, die das dann nicht machen und wo dann schon viele Generalisten (meistens schon etwas älter) arbeiten. Und ja die haben ein enormes IT Rundumwissen. Allerdings haben solche Firmen in Projekten wohl oft einen ziemlich hohen Technical Depth, weil die Umsetzung einfach auch gemacht wird wie vor 5 Jahren und immernoch PHP 5.2x verwendet wird. Grundlegend mag nichts Falsches an der Umsetzung sein, aber wenn bei der Umsetzung dann einfach keiner wirklich tief in den einzelnen Teilgebieten drin und auf dem Laufenden ist, dann erreicht das Ergebnis einfach nicht die Standards, die heute erwartet werden. Sprich wenn es dann an die Umsetzung geht, benötigst du heute ohnehin wieder einen Spezialisten.

Bearbeitet von Chris-Info
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 6 Stunden schrieb Chris-Info:

Und ja die haben ein enormes IT Rundumwissen [...] immernoch PHP 5.2x verwendet wird

Den Widerspruch merkst du selbst?

 

Was ist ein Generalist? Jemand, der sowohl Frontend als auch Backend in einer Sprache kann? Dazu noch Datenhaltung/-modellierung in einem DBMS? Jemand, der mehrere Programmier- & Skriptsprachen kann? Sich in mehreren DBMS auskennt? Jemand, der dir eine fachliche Vorgabe sowohl Hard- als auch Softwareseitig komplett eigenständig implementieren kann? In einem architekturellen Umfeld? In mehreren?

 

Am 18.5.2020 um 12:32 schrieb DerEntwickler:

Natürlich ich mir klar das man als Allrounder nicht an der Gehaltsspitze steht wie ein KI - Spezialist oder  jemand der noch die letzte Millisekunde Performance aus einem SQL - Server herausholen kann.

Wenn man sich einen Namen gemacht hat als Feuerwehr/Krisenreaktionskraft mit entsprechender Reisebereitschaft verdient man bestimmt sehr gut.

Jemandem, der 0,1 Promille mehr Performance aus einem Server raus kitzelt, sodass man 5€ im Jahr spart, zahlt man kaum mehrere Tausende Euro...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Viele Start-ups, kleinere  Unternehmen und KMU schreiben oft gezielt Stellenausschreibungen die auf Allrounder ausgelegt sind, in der Hoffnung irgendeinen an Land zu ziehen.

Der Grund ist ziemlich einfach: "Chef der kann viel, dadurch sparen wir uns eine weitere Stelle, wenn nicht mehr".

Am Ende muss der AN also evtl. für 2 Stellen arbeiten bei oft schlechtem Gehalt.

Persönlich ... ja ich arbeite auch an ganz verschiedenem Zeug. Immer öfters höre ich von unseren Kunden Cloud, aber das konnten wir, Gott sei Dank, bisher ausreden (und jeder zweite fragt als erstes, ob die Software auch auf seinem Mac funktioniert....). Ich mach sehr gerne ganz unterschiedliche Sachen, da ich mich in allen Richtungen weiterbilde (kann mir gut vorstellen wieder was mit Web zu machen, falls ich hier aufhöre).

Viele Allrounder reden sich ein, dass sie tiefes Wissen und einen Überblick über ein Projekt hätten. Das ist aber meist kompletter Unsinn, da Projekte an so vielen Stellen von so vielen Leuten bearbeitet werden, dass ein Einzelner eher Basiswissen über die einzelnen Komponenten hat.

Bei einer Präsentation hättest du auch lieber 5 Experten, die jeweils an ihrem Projekt gearbeitet haben, als einen Allrounder der überall etwas mitgewirkt hat.

 

Tl;Dr:  In allen Bereichen etwas zu können ist nicht per se schlecht. Auch nicht verschiedene Sachen zu machen. Du musst nur am Arbeitsmarkt viel mehr aufpassen, da schlechte Unternehmen oft solche Leute einstellen wollen, um an anderer Stelle zu sparen (während gute Unternehmen oft etwas mehr zahlen, um einen Experten auf Gebiet XY einzustellen).

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Stunden schrieb Chris-Info:

Ich hab selbst ja nun noch keine Erfahrung damit, aber sowohl mein Abteilungsleiter, als auch Freunde von mir die schon ein paar Jahre die Ausbildung fertig haben reden eher "schlecht" über Generalisten.

Das würde mich mal näher interessieren. Die Begriffe "Allrounder", "Generalist", "Full Stack" sind ja doch recht schwammig wie wir bisher festgestellt haben. Wie sieht dein Arbeitsalltag konkret aus? Mit welchen Technologien arbeitest du? Wie groß ist deine Firma? Bist du reiner Programmierer und hast jemanden der dir den Projektmanagement-Kram vom Hals hält?

Aus meiner Erfahrung würde ich auch widersprechen das in Softwarefirmen / Systemhäusern keine Generalisten gibt. Ich habe meine Ausbildung auch in einer Softwarefirma gemacht. Das war eine kleine 10 - Mann Agentur. Auch hier gab es nur "Full - Stack" - Entwickler und keine reinen Backend/Frontend/Datenbank etc. - Entwickler. Ich würde sogar sagen das hängt ganz stark von Firmengröße ab. Wenn es sehr flexible Kundenanforderungen gibt ist es als kleine Firma (< 100 Mitarbeiter, keine reine Sofwarefirma also nicht 100 Entwickler) doch meistens recht schwer seine Mitarbeiter zu spezialisieren. Es sei denn du stellst deine Firma nach außen so auf das du sagt wir machen z.B nur Webanwendungen mit Angular/Typescript/Asp.Ne Webapi. Wenn die Anforderung nach einer React App (weil der z.B Kunde gehört hat das wäre besser), mobile App, Deskptop Anwendung kommt dann musst das Projekt halt absagen. Aus meiner Erfahrung ist das für kleine Firmen aber auch Problematisch sich so stark einzuschränken. 

In kleineren Firmen ist der Programmierer auch oft zeitgleich der Projektmanager. Ich weiß nicht wie das bei euch ist aber ich sitze zu 50% in Meetings oder arbeite fachliche Konzepte aus. Wir haben keinen Requirements Engineer, könnten wir einfach nicht bezahlen und der Fachabteilung fehlt das technische Verständnis um die Konzepte detailliert ausarbeiten zu können.


Ich stimme aber voll zu das es Bereiche gibt wo eine Spezialisierung unbedingt notwendig ist. Ich nenne da jetzt einfach mal Spielentwicklung, da kann ich etwas mitreden weil ich mich damit 5 Jahre lang als Hobby beschäftigt habe. Für mich unvorstellbar das man da nebenbei noch Webentwickler macht. Auch in der Anwendungsentwicklung gibt es sicherlich komplexe Themen wo ein Spezialist notwendig ist. Im B2B Umfeld bestehen die Kundenanforderungen aber doch meistens aus "CRUD - Applikationen" wo nicht unbedingt die technischen Anforderungen die Hürde sind sondern das fachliche dahinter.

Bearbeitet von DerEntwickler
Link zu diesem Kommentar
Auf anderen Seiten teilen

Im Lebenszyklus einer Anwendung gibt es so viele Rollen, die irgend jemand ausfüllen muss. Von der Idee bis zum fertigen Produkt sind das unter anderem ein Anforderer, RequirementsEngineer, Entwickler, Tester (Funktionalität, Performance, Security, Usability, ...), Implementierer, Support, Betriebsbetreuung, Budgetverantwortlicher, ...

Welche dieser Rollen soll ein Allrounder alles übernehmen? Welche Rollen schließen sich eigentlich gegenseitig aus?

Und: wie viele Kontextwechsel verkraftet so ein Allrounder? Pro Tag? Stunde? Wann konzentriert er sich auf AufgabeX? Was ist, wenn bei RolleY in dieser Zeit etwas akutes rein kommt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich stimme übrigens nicht zu, dass es das Allheilmittel für die Karriere ist, sich spezialisiert zu haben.

In den letzten Jahren habe ich einige Bewerbungen geschrieben und musste feststellen, dass das Mehr an Skills, welches einen Spezialisten kennzeichnet, häufig gar nicht wirklich gefragt ist. Auch in den Jobbörsen sind selten Architekten- oder Senior-Posten ausgeschrieben. Das meiste Angebot befindet sich im Bereich Junior oder regulärer Mitarbeiter.

Das ergibt Sinn, denn die meisten Aufgaben, die an uns ITler gestellt werden, sind eher basisch bis ins Mittelfeld hinein, denn High-End. In der Entwicklung z. B. Business-/Web-Anwendungen oder Mobile-Apps. In der Administration z. B. Server einrichten oder Cloud-Zugänge, ein Backup oder eine Firewall. Ob das nun alles 1 ms schneller läuft oder nicht und ob die Ausfallsicherheit nun 99 % oder 99,9 % beträgt, das juckt meist keinen.

Viel wichtiger ist, was das alles kostet. Und hier hat der Wald- und Wiesen-ITler den Vorteil, dass er deutlich weniger kostet. Warum sollte man den Experten für 70k einstellen, wenn es auch das Mittelfeld für 50k tut und die Anforderungen ebenfalls zu 90 % erfüllt?

...

D. h. nicht, dass ich diese Ansicht teile. D. h. nicht, dass es für Leute mit Ambitionen nicht sinnvoll ist, sich zu spezialisieren. Spezialisiten sind wichtig und Spezialisierung ist wichtig, um hohe Gehälter erzielen zu können. Ich möchte damit lediglich darstellen, dass es kein Allheilmittel ist, sondern auch dieser Weg längst nicht überall honoriert wird.  

Bearbeitet von Errraddicator
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würde sagen, dass es immer einen Overhead gibt, den jeder Entwickler mit lernen muss und welcher sich in der verwendeten Infrastruktur- und Technik widerspiegelt.

Gehen wir doch einmal zur Betrachtung ruhig in die Anfänge der Massendatenverarbeitung zurück und denken an die erste Technik, die auf dem Markt war und beispielsweise von Konzernen wie IBM geprägt wurde (natürlich gab es noch andere Firmen). Wir sehen hier eine technische Komponente, die in den Anfänge sogar noch aus mechanischen Bauteilen bestand und durch den Einsatz von Elektronik haben sich die Berufe gewandelt.

Auch aus heutiger Sicht muss man wissen, welche Technik sich in der Entwicklung befindet und ob sich daraus möglicherweise Berufe im Wandel befinden. Hinzu kam ja die Globalisierung, die dazu geführt hatte, dass Produktion frühzeitig nach Fernost ausgelagert worden ist.

Also die Frage was man macht, könnte in Zukunft auch einen geografischen Aspekt beinhalten. Wenn der Chiphersteller in Fernost sitzt und man genau auf diesem Gebiet arbeiten möchte, muss man also auch bereit sein, dahin zu gehen. Und das ist dann keine Frage, ob man das Thema in in DE möglicherweise studiert hat, sonder es ist die Frage, wo die Hardware entwickelt wird. Diese Prozesse finden heute durchaus weltweit statt, d.h. ein Ingenieur oder Hardwaredesigner kann durchaus auch in Deutschland sitzen, er muss aber dahin gehen, wo letztendlich die Fabrik sitzt.

Ähnlich ist es doch mit Infrastrukturlösungen. In Abhängigkeit von der Technik und von den lokalen Gegebenheiten, wo gerade welche Entwicklung stattfindet, kommen unterschiedliche Lösungen zum Einsatz.

Die Betrachtungsweise im Beispiel Fullstack Developer käme also ein wenig zu kurz, würde man das Drumherum weglassen. Denn die Technik kann im robotergesteuerten Rasenmäher der Zukunft genauso eingesetzt werden, wie im Portal eines Unternehmens.

Auch wir haben uns während der Ausbildung darüber "beschwert", dass wir bei fünf verschiedenen Programmiersprachen an der Oberfläche kratzen mussten und keine Zeit war, um bei einer Sprache in die Tiefe zu gehen. Aber letztendlich war die Entscheidung für die Lehre doch richtig, denn zu dem Zeitpunkt wusste ja noch niemand wo er eigentlich hin geht.

Vielleicht liegt die Antwort auf die Frage auch weniger an systemgebundenen Antworten, sondern ist eher dahin zu verstehen, dass jeder Fachmann generelle Arbeitsweisen- und Vorgehensmodelle lernen muss. In wie weit diese dann später ausgeprägt werden, hängt von dem konkreten Arbeitsumfeld ab und dieses unterliegt einem steten Wandel einschl. Chancen- und Risiken.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Errraddicator ich habe Ähnliches erlebt. Aber eher so "entwickelnder agil-klassicher fachlich-technisch-architektonischer Projektleiter mit uneingschränkter Reisebereitschaft" zum Fixgehalt einer Juniorstelle mit unerreichbaren Bonuszielen ;)

 

Spezialisierung ist gut, nur es darf keine Insel-Spezialisierung mit Scheuklappen sein.

Sehr gut in wenigen Themen, Einblick in viele. Nicht: enig Von allem etwas Ahnung.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Minute schrieb allesweg:

 "entwickelnder agil-klassicher fachlich-technisch-architektonischer Projektleiter mit uneingschränkter Reisebereitschaft"

Das beschreibt so in etwa meine vorherige Postion, dazu waren es mehrere Projekte und wir auch für deren Betrieb zuständig und ich zusätzlich noch der Teamleiter. 
Das erste, was dann wirklich nicht mehr geht, ist das entwickeln, dann das in die kleinen freien Blöcke zwischen die anderen Tätigkeiten zu stopfen, funktioniert nicht nicht und schon gar nicht auf dem Qualitätsniveau, welches ich selbst von mir erwarte. Leider ist das aber häufiger der Fall, die Firmen schreiben Stellen aus mit einer ganz anderen Hauptverantwortung, erwarten aber, dass man in den restlichen 40-90% seiner Zeit noch entwickelt. Bezahlt wird meist auch nur die günstigste Rolle in der Konstellation.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die interessanten Beiträge, wirklich schön mal zu hören wie es anderen geht. Viele würden sich scheinbar doch als Allrounder bezeichnen und reagieren flexibel auf Anforderungen aber es gibt auch die richtigen Spezialisten (in größeren Firmen bzw. bei spezialisierten Dienstleistern?)

Ich finde aber auch die Diskussion scheitert etwas daran weil es keine eindeutige Begriffsdefinition gibt und sich vermutlich auch nicht finden lässt. Jeder versteht etwas anderes unter Allrounder, Full Stack etc. Hier mal meine Definition:

Spezialist = Jemand der sich jahrelang mit genau einer Technologie beschäft hat. Ich habe solche Spezialisten kennengelernt, z.B auf einer SQL Server - Performance Schulung. Absoluter Wahnsinn was der zu erzählen hatte. So jemanden braucht man dann um mehrere 100 hoch verfügbare high - performance Datenbankinstanzen zu verwalten. Oder wenn es um SQL Abfragen mit mehreren 10.000 Zeilen -Code geht und das noch mit einer guten Performance. Naja, wie er dann die Daten dann mittels Entity Framework oder ähnliches in eine Anwendung bekommt wusste er aber nicht. Oder Front - End Entwickler die die schönsten Webseiten bauen können aber keine SELECT - Statements schreiben können. Das sind für mich Spezialisten die unheimliches Wissen in genau einem Bereich haben.

Full Stack = Jemand der auf einem TechStack (z.B Angular/Typescript/Web API/MS SQL) komplett entwickeln kann. Dazu noch ein kleiner Anteil Projektmanagment.

Allrounder / Generalist = Jemand der sich überhaupt nicht an einen TechStack bindet. Wenn eine Technologie gefordert wird dann wird sich eben eingearbeitet. Führt natürlich dazu das Wissen schnell veraltet weil man nie lange bei einer Technologie bleibt. So jemand hat schon mal in allen Bereichen was gemacht (Web/ Mobile / Desktop). Dazu kommt noch ein hoher Anteil Projektmanagement bzw. andere Aufgaben im Softwarelebenszyklus wie Testen / Support usw.

Bearbeitet von DerEntwickler
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb DerEntwickler:

Danke für die interessanten Beiträge, wirklich schön mal zu hören wie es anderen geht. Viele würden sich scheinbar doch als Allrounder bezeichnen und reagieren flexibel auf Anforderungen aber es gibt auch die richtigen Spezialisten (in größeren Firmen bzw. bei spezialisierten Dienstleistern?)

Ja, die gibt es und das sind meistens die Fachleute, die in einem Pool verfügbar sind und projektbezogen arbeiten oder ein eigenes Unternehmen haben und sich auf spezielle Themen ausgerichtet haben und bei Bedarf auch von Systemhäusern geholt werden.

Im Bereich Microsoft sind das z.B. die MVPs

https://de.wikipedia.org/wiki/Microsoft_MVP

Hier mal ein Beispiel aus dem Pool von einem MVP.

https://www.thinktecture.com/de/articles/

Ich habe einmal einen Smalltalk Entwickler kennengelernt, der ausschließlich auf diesem Gebiet tätig ist und selber sagt, dass er sich in einer Nische befindet. Dieses Arbeitsgebiet ist natürlich eng damit verknüpft, wie lange bestimmte Produkte genutzt und gewartet werden. Smalltalk wird von Banken und Versicherungen noch genutzt auch die DB soll einige Zeit Smalltalk Anwendungen genutzt haben.

Im Mainframe Bereich gibt es auch einige Spezialisten. Bei YouTube gibt es einen Hobby Kanal, der interessierte Leute z.B. über den Hercules Emulator einige Themen in diesem Bereich näher bringt. Da hier auch IT-Grundlagen vermittelt werden, sicher für den ein oder anderen Azubi auch interessant.

Bearbeitet von tkreutz2
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb DerEntwickler:

Oder wenn es um SQL Abfragen mit mehreren 10.000 Zeilen -Code geht

Jemand, der solche SQL-Abfragen schreibt, ist für mich vieles, aber mit Sicherheit kein Spezialist.

Wir haben Kollegen, die auch gerne ausufernde SQL-Kommandos schreiben, div. hundert Zeilen lang. Und sogar diese Dinger sind eine Katastrophe, unwartbar, voller Seiteneffekte, schlect zu debuggen, usw.. Wenn das jemand noch auf die Spitze treibt und tausende Zeilen macht, ist das Code der übelsten Sorte. Das verdient Kritik und kein Lob.

 

@allesweg

Zwei Doofe, ein Gedanke. :D

Bearbeitet von Errraddicator
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb allesweg:

@DerEntwickler dein Spezialist ist für mich ein Insel-Spezialist oder gar ein Fachidiot. Und wer SQLs mit mehreren 100 Zeilen Code verursacht, sollte sich Hilfe holen. Da besteht Optimierungsbedarf bei der Datenmodellierung.

@allesweg Harte Aussage. Ich verstehe was du sagen willst und ja es gibt diese Fachidioten aber ich würde das nicht so Schwarz-Weiß sehen. Wenn ich als Firma wirklich eine komplexe Datenbankstruktur habe mit mehreren Instanzen, FailOver - Clustern, Hochverfügbarkeit, High - Performance etc. (z.B Big Data Analysen), dann würde ich da keinen Full Stack Entwickler / Allrounder / Generalist sitzen haben wollen, dann möchte ich auch diesen Spezialisten haben, gerade wenn das ganze System geschäftskritisch ist. Natürlich sollte man auch als solcher Spezialisiert vielleicht ab und zu auch mal eine Anwendungsschicht höher coden um einfach mal zu sehen wie es dort läuft um Rückschlüsse auf die eigenen Lösungen zu ziehen. Am Ende das Tages muss das Datenbanksystem ja mit anderen Teilen zusammenspielen.

OffTopic: Ja klar sollte man bei mehren 100 Zeilen SQL - Code auch mal das Datenmodell hinterfragen aber Best Practice und Realität sind leider oft zwei verschiedene Sachen. Wir haben SQL Statements mit bis zu 5000 Zeilen Code. Nicht eine einzelne Query aber in einer Stored Procedure. Warum?

1. Weil da teilweise Daten für sehr komplexe Finance / Controlling Reportings aufbereitet werden.
2. Weil die Daten teilweise aus Fremdsystemen kommen. Und diese Fremdsysteme haben teilweise 200 Tabellen pro Datenbank. Auch wenn man wüsste wie das besser geht, man hat halt keinen Einfluss darauf also muss man sich die Daten aus 200 Tabellen zusammenziehen. Daraus entstehen dann solche SQL Codes.

-> Ok, ich gebe zu man sollte die Stored Procedure nochmal in kleinere Teilen aufteilen aber trotzdem bleibt es ein zusammenhängendes Konstrukt.

Bearbeitet von DerEntwickler
Link zu diesem Kommentar
Auf anderen Seiten teilen

Es gibt Laien, alles-nur-etwas-könnende-Frickler, Generalisten, Spezialisten, Insel-Spezialisten und Fachidioten.

 

Laien taugen maximal zum Anwender.

Frickler und Fachidioten als abschreckendes Beispiel.

In einem extrem kleinen Team braucht es Generalisten.

Insel-Spezialisten brauchen ein Team um sich herum, welche sie auf ihrer Insel versorgen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@DerEntwickler

Gerade, wenn das Umfeld so komplex wird, wie von Dir beschrieben (FailOver, Cluster, Hochverfügbarkeit, usw.) brauche ich jemanden, der den ganzen Stack versteht. Natürlich muss sein Schwerpunkt z. B. auf der Datenbank liegen, aber wenn er nicht versteht wie das zugrunde liegende OS funktioniert, die vorgeschaltete Lastenverteilung, wie sich das aktive Backup auf die Performance auswirkt, usw., dann wird sein Ergebnis schlecht werden. Ein Fachidiot eben, wie es @allesweg beschrieben hat. Das ist nicht hart, das ist wahr.

Und genau das von mir skizzierte Szenario wird bei dem Vortragenden, den Du lobend erwähnt hast, der Fall gewesen sein. Den brauche ich nicht zu kennen, um das zu wissen. Solche Leute sind Koryphäen im jeweiligen Metier, verstehen aber auch das ganze Drumherum gut. Häufig sogar besser als die meisten ITler. Solche Leute sind Allrounder und Spezialisten. Das müssen sie auch sein, denn im Regelfall bedingt das eine das andere. 

...

Gleiches mit dem SQL-Kommando. Eine 5.000 Zeilen lange Stored Procedure ist schlecht. Punkt. Sollte das bei Euch der Fall sein, wird es Zeit, diese eine 5.000 Zeilen lange Stored Procedure in 50 kleinere á 100 Zeilen zu zerlegen. Vielleicht noch kleiner.

Das ist das kleine 1x1 der Softwareentwicklung und ist allgemeingültig. Erst recht, wenn die Materie komplex wird. Mit einer einzelnen, langen Funktion beherrscht man triviale Aufgaben. Je komplexer ein Umfeld wird, umso modularer muss der Code werden. Zumindest, wenn es ordentlich gemacht ist und nicht einfach 10 Jahre lang hintendran gearbeitet wurde, ohne jemals ein Refactoring durchzuführen.

Bearbeitet von Errraddicator
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kann @DerEntwickler nur zustimmen. Meine Firma arbeitet im Versicherungs/Finanzbereich. Ich hab im ersten Lehrjahr auch einige von den "Allgemeinen" Abteilungen jeweils für ein paar Wochen durchlaufen und war dabei zum Beispiel im Risk Management wo viel im Bereich Predictgive Analytics etc. gemacht wird. Dort habe ich auch Prozesse mit mehreren tausend Zeilen gesehen. Klar waren die aufgeräumt und in einzelne Prozeduren zerlegt, aber insgesamt war das schon ein ganz schönes Monstrum.

 

Am 29.5.2020 um 12:26 schrieb Errraddicator:

Das ist das kleine 1x1 der Softwareentwicklung und ist allgemeingültig. Erst recht, wenn die Materie komplex wird. Mit einer einzelnen, langen Funktion beherrscht man triviale Aufgaben. Je komplexer ein Umfeld wird, umso modularer muss der Code werden. Zumindest, wenn es ordentlich gemacht ist und nicht einfach 10 Jahre lang hintendran gearbeitet wurde, ohne jemals ein Refactoring durchzuführen.

Ich kann auch verstehen wenn der Durchschnittsentwickler dabei den Kopf schüttelt. Aber hier ging es ja um Spezialisten. Klar kann man jetzt die Gemeinplätze aus dem Grundstudium bemühen, aber in Realität wird es sicher kein Softwareprojekt geben, dass an allen Ecken und Enden immer nur den Best Practices entspricht. Und wenn du schon vom kleinen 1x1 redest, solltest du eigentlich nicht den Fehler machen und komplexe Systeme mit komplizierten Systemen verwechseln, denn zumindest bei mir wurde darauf spätestens im zweiten Semester hingewiesen. Komplexität ist eben genau nicht nur eine Aneinanderreihung an Trivialitäten. Dazu gehört eben deutlich mehr, deshalb kann ein Fünftklässler mit dem kleinen 1x1 eben noch lange keine Taylorreihen lösen und deswegen lassen sich Risk-Management, Big-Data oder ETL-Prozesse eben auch nicht nur auf Grundlagen der Softwareentwicklung herunterbrechen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was die Begrifflichkeiten angeht ala Spezialist und Allrounder/Generalist, natürlich versteht darunter jeder was anderes. Letztlich ist unser Bereich so breit aufgebaut, alles kann eh keiner verstehen, lernen oder benutzen. Ab wann man denn das eine oder andere ist, ist dann auch wieder Definitionssache. Ich kann sagen jemand ist kein Allrounder weil er hat ja keine Ahnung von X, Y und Z.

Am Ende eben gerade bei kleineren Firmen verbreitet, da man meist gar nicht so viel Arbeit hat für bestimmte Bereiche. Bei und wäre es z.B. Wahnsinn einen dedizierte Projektleiter zu haben, einen FISI, einen DBA, einen Java oder C-Entwickler. Ergo werden diese Sachen mit von den Entwicklern übernommen. Sicherlich hat davon in den jeweiligen Feld keiner so ein Spezialwissen, wie jemand der ausschließlich das macht und das auch im größeren Umfeld.

Denke meist geht es bei der Entscheidung einfach darum wie praktibal es für das Unternehmen ist. Die Wahl haben ohnehin nur große Unternehmen oder Kleine die genug Geld haben jemanden rumsitzen zu lassen bzw. jemanden finden der für ein paar Stunden in Teilzeit als Spezialist dabei ist.

Vermutlich ist dann auch gerade der Wechsel schwer von einem Job, in dem man als Allrounder tätig war, zu einem, wo dies nicht der Fall ist. Ggf. gibt es einen Schwerpunkt und man orientiert sich daran.

Bzgl. der SQL Diskussion: ich denke gerade das ist einer der wenigen Fälle, wo viele Zeilen nicht gleich schlechter Code bedeuten. Ich denke auch gute SQL Statements oder bewusst verständlich gehaltene neigen oft zu vielen, vielen Zeilen. Dadurch, dass abgefragete Spalten angegeben werden, anstatt einfach ein alles selektiert wird, dadurch dass eben der Großteil relativ trivale Joins sind, eben weil die Sachen vernünftig normalisiert vorliegen und es keinen Sinn macht Sachen richtung OLAP abzubilden, da die Sachen nicht so regelmäßig benötigt werden.

Gleiche mit einigen SQL Dialekten wie Oracle eben mit der Verständlichkeit der Abfragen. Sei es indem mittels WITH Statement mehr Struktur reinkommt oder mittels MINUS, INTERSECT gearbeitet wird um die Abfrage wesentlich einfacher und verständlicher, ggf. auch perfomanter auszuführen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bin im Rahmen von Berater-Tätigkeiten auch schon mit "abenteuerlichen" SQL Lösungen in Verbindung gekommen, zu denen dann tatsächlich Spezialisten hinzugezogen werden mussten, um die Arbeit von vermeintlichen Experten wieder zu entkernen.

Diese Kunden waren der eigenen Meinung, dass die selbst entwickelte Lösung zu 98 % fertig sei. Die "Lösung" war dann, wie es oft bei über Jahren gewachsenen Lösungen vorkommen kann mit so vielen Altlasten versehen, dass eine komplette Neuentwicklung des Produktes günstiger gekommen wäre, als das Altprodukt zu "entkernen".

Hintergrund in diesem Zusammenhang waren auch technische Abhängigkeiten, die sich dadurch ergeben haben, weil immer wieder "migriert" worden ist und hierdurch Komponenten weiter verwendet wurden, die vom Hersteller längst obsolet waren und somit in den Bereich Altlasten gefallen sind.

Die Gefahr, Pferde zu reiten, die längst tot sind, ist gerade bei komplexen und umfangreichen Produkten oft gegeben. Selbst verschuldete Abhängigkeiten durch Spezialisten kann aus Kostensicht für Unternehmen genauso fatal sein, wie fehlgelenkte Produktpflege.

Aber das sind strategische Entscheidungen, die oft auch an Personalien hängen, um ihre "self fulfilling prophecy" zu verwirklichen.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...