paint-brush
Unpopuläre Meinung: Es ist schwieriger denn je, ein guter Softwareentwickler zu seinvon@jurajmalenica
8,604 Lesungen
8,604 Lesungen

Unpopuläre Meinung: Es ist schwieriger denn je, ein guter Softwareentwickler zu sein

von Juraj Malenica5m2023/10/15
Read on Terminal Reader

Zu lang; Lesen

Überleben auf der Überholspur der Technik: Eine Geschichte über Ingenieure, Hype und die Konzentration auf das, was in einer sich verändernden Welt wirklich wichtig ist
featured image - Unpopuläre Meinung: Es ist schwieriger denn je, ein guter Softwareentwickler zu sein
Juraj Malenica HackerNoon profile picture
0-item

Die fast zehnjährige Arbeit in einem Startup-Umfeld hat mir privilegierten Zugang zu einer schnelllebigen Kultur der Innovation, Erkundung und eines erfolgsorientierten Ansatzes verschafft. Ich folgte der üblichen Aufstiegsleiter: Praktikant, Junior, Mittelstufe, Senior und wechselte schließlich in die technische Managementlaufbahn. Im Laufe der Zeit wechselten viele Menschen, mit denen ich zusammenwuchs, später zu anderen Unternehmen und wurden dort zu hoch angesehenen Mitarbeitern. Man kann mit Recht sagen, dass sie gute Ingenieure sind.


Wenn ich auf die Reise meiner Kollegen, Mentees und meiner eigenen zurückblicke, scheint es schwieriger denn je zu sein, ein guter Ingenieur zu sein.

Was einen guten Ingenieur ausmacht

Was bedeutet es, Ingenieur zu sein? Als Softwareentwickler sind wir:

  • Verantwortlich für die Übersetzung komplexer Probleme in effiziente und skalierbare Lösungen
  • Zu seinen Aufgaben gehören die Analyse von Benutzeranforderungen, das Entwerfen von Softwarearchitekturen, das Schreiben von Code sowie das Testen und Debuggen von Software
  • Es wird erwartet, dass Sie über Trends auf dem Laufenden bleiben und nach neuen Geschäftsmöglichkeiten und Möglichkeiten zur Verbesserung bestehender Produkte suchen

Also nein – Technik ist nicht gleichbedeutend mit Programmierung. Manchmal ist das der kleinste Teil. Mit zunehmender Erfahrung sieht es auf jeden Fall so aus, wie in der Abbildung unten gezeigt.

Arbeitsverteilung nach Rolle

Was bedeutet es, ein guter Ingenieur zu sein? Aufgrund zahlreicher Interviews und der Unterstützung der Fortschritte meiner Mentees ist mir aufgefallen, dass Menschen mit unterschiedlichem Fachwissen möglicherweise unterschiedliche Antworten geben.


Jemand, der gerade erst anfängt, könnte denken, dass es an der Anzahl der Sprachen und Frameworks liegt, die ein Entwickler kennt. Ein erfahrenerer Ingenieur kümmert sich möglicherweise nicht einmal um die Sprache, die er verwendet, sondern legt stattdessen Wert auf die Codequalität – die Einhaltung aller Codierungsprinzipien und die Durchführung einer Qualitätssicherung bei gleichzeitiger Schnelligkeit.


Sehr erfahrene Ingenieure legen großen Wert auf die Wertschöpfung. Manchmal schreiben wir schnell Wegwerfcode, der alle Regeln bricht, um eine Hypothese zu beweisen; Manchmal verbringen wir Tage damit, ein paar Zeilen geschäftskritischen Codes zu schreiben. Aber an den meisten Tagen treffen wir architektonische Entscheidungen, diskutieren geschäftskritische Themen, verbessern Prozesse usw. Warum? Denn oft bringt das den größten Nutzen.


Obwohl es immer Ausnahmen von der Regel gibt, können wir sagen, dass ein guter Ingenieur jemand ist, der seine Anstrengungen effizient darauf konzentriert, den größtmöglichen Nutzen für die Erreichung eines Ziels zu erzielen.

Wachsende Märkte und Wettbewerb

Der Technologiemarkt entwickelt sich ständig weiter. Wir alle haben im Laufe der Jahre große Erfolge erlebt, von WhatsApp über Uber, Airbnb bis hin zu TikTok. Auch wenn dies Ausnahmen sein mögen, stellen solche Beispiele den Menschen oft den Polarstern dar – etwas, nach dem sie streben sollten. Diese Denkweise setzt Ingenieure zusätzlich unter Druck. Sie empfinden Stress von innen, weil sie glauben, etwas falsch zu machen, und von außen, weil die Leute ihr Unternehmen mit vielen Konkurrenten vergleichen.

Gesamtkapitalisierung des Tech-Marktes

Um in einem solchen Umfeld erfolgreich zu sein, mussten Unternehmen „schnell handeln und Dinge kaputt machen“, wie es im berühmten Facebook-Motto heißt. Das ist heute offensichtlicher denn je – fast jedes Unternehmen entwickelt sich zu einem „ KI-Unternehmen “. Jeder integriert ChatGPT, oft ohne wirklichen Grund, ohne eine Strategie, wie es einen Mehrwert bringt.


Indem wir uns vom Kernprinzip – wie können wir unseren Kunden mehr Mehrwert bieten – entfernen und uns darauf konzentrieren, die Konkurrenz im Hype-Zug zu schlagen, bringen wir Ingenieure dazu, Funktionalitäten zu entwickeln, die zum Scheitern verurteilt sind.

Die Welt ist ein verwirrender Ort.

Was sollte ein Enthusiast wie ich tun, um ein besserer Ingenieur zu werden? Abgesehen von der offensichtlichen Entscheidung, Programmierkenntnisse durch die Verbesserung sauberer Code- und Architekturphilosophien zu perfektionieren, lauern heutzutage viele Versuchungen. Erlernen Sie TypeScript und dieses neueste Framework, das alles verändert, tauchen Sie ein in die Welt der Blockchain und Krypto, experimentieren Sie mit einer Vielzahl von KI-Produkten … Die Möglichkeiten sind endlos.

Alle Javascript-Bibliotheken

Ehrlich gesagt fühlte ich mich nach so vielen Jahren in der Branche immer noch von der neuen Welle des Wandels bedroht, die ChatGPT, GitHub Copilot und andere aufstrebende Technologien mit sich brachten. Mein Gehirn fing an, sich Szenarien auszudenken, in denen ich mit so vielen Dingen den Kontakt verloren hatte. Konzentriere ich mich auf die richtigen Dinge, um Mehrwert zu schaffen? Nutze ich mein maximales Potenzial?


Nach einiger Zeit wurde klar, dass wir uns in einem Hype befanden. Auch das wird vorübergehen und nur noch KI-Unternehmen übrig bleiben, die langfristig Werte schaffen. Die Zahl der KI-Unternehmen hat sich in den USA in den letzten fünf Jahren verdoppelt, wobei viele Startups lediglich eine Funktion zusätzlich zum neu veröffentlichten GPT-3 hinzugefügt haben. Sie würden später mit der Veröffentlichung von ChatGPT oder GPT-4 sterben, die das Gleiche tun könnten, aber besser. Doch das hindert die Hype-Armee von Twitter und anderen Plattformen nicht daran, die neue Weltordnung zu verkünden.


Obwohl ich so viele Jahre in der Technikbranche gearbeitet habe, wurde ich von dem Hype erfasst. Anfängerfehler!


Auch Programmiersprachen und ständige Veröffentlichungen neuer Frameworks tragen zur Verwirrung bei. Tailwind, TypeScript, Haskell und Rust sind alle großartig; Sie haben jeweils einen Winkel, der ihnen einen Vorteil verschafft. Allerdings verwechseln Menschen das Lernen mit ihnen oft mit etwas, das ihnen einen Vorteil verschafft. Das wird es nicht, oder sollte es zumindest nicht. Es sind lediglich Hilfsmittel, die gut zu kennen sind, aber Erfahrung nicht ersetzen können. Aus diesem Grund stellen wir in unseren Stellenbeschreibungen keine sprachlichen/rahmenbezogenen Anforderungen. Ich wäre dumm, wenn ich einen talentierten Ingenieur vermissen würde, weil er sich mit TypeScript, Prompt Engineering oder Microservices nicht auskennt.


Mein Rat ist: Lassen Sie sich nicht so sehr von neuen Trends und Hypes einfangen, dass Sie den Fokus auf die Wertschöpfung verlieren.

Hohes Tempo und hohe Erwartungen

Bei der Suche nach neuen Herausforderungen kann es schwierig sein, positiven Stress anzustreben und gleichzeitig negativen Stress zu vermeiden. Bei positivem Stress sehen wir eine stressige Situation als Chance, die zu einem guten Ergebnis führt, während negativer Stress schädliche Auswirkungen auf die körperliche und geistige Gesundheit haben kann, wie im Bild unten zu sehen ist. Die kontinuierliche Bereitstellung von Ergebnissen innerhalb eines engen Zeitplans ist stressig, und die Erstellung von Funktionen aus den falschen Gründen führt zu Letzterem.

Positiver Stress vs. negativer Stress

Sowohl als Mentor als auch als hart arbeitender Mensch habe ich erlebt, dass Stress zu Burnout führt. Ausnahmslos führt ein Burnout zu weniger Output als eine Reduzierung der Arbeitsbelastung, eine Pause und eine langfristige Optimierung. Aus diesem Grund versuchen wir immer, das Auslösen von Warnsignalen so einfach wie möglich zu gestalten, mit regelmäßigen Team-Updates, Einzelgesprächen und einer fördernden Kultur.


Trotzdem wird es schief gehen. Wenn dies der Fall ist, kürzen wir den Umfang, binden Personen ein, die helfen können, oder kommunizieren mit unseren Kunden, um eine Markteinführung zu verschieben.


Der Druck ist höher denn je und kommt sowohl von innen als auch von außen. Bleiben Sie konzentriert und umgeben Sie sich mit einem unterstützenden Team, das langfristig optimiert.

Wie können wir es besser machen?

Wir alle haben Momente des Niedergangs – wir fühlen uns wie unzureichende Ingenieure, Mentoren oder Kollegen. Die Dinge werden niemals perfekt oder einfach sein und das sollten sie auch nicht. Ohne Fehler und schwere Zeiten lernen wir nicht. Aber es gibt einige Dinge, die meiner Meinung nach die Effizienz steigern können.

Einflussebenen

Bleiben Sie individuell dem treu, was wirklich wichtig ist. Technologien werden kommen und gehen, aber der Wert, den Sie der Welt bringen, zählt. Es ist schwer, harte Arbeit und Erfahrung vorzutäuschen.


Beginnen Sie als Unternehmen mit dem Warum , wenn Sie Entscheidungen treffen. Dies ist der beste Weg, Funktionen bereitzustellen, die einen Mehrwert schaffen. Stellen Sie außerdem sicher, dass die Mitarbeiter wissen, warum . Meiner Erfahrung nach treffen sie bessere Entscheidungen, geben wertvolles Feedback und sind glücklicher.


Etablieren Sie kulturell Prozesse, die die Mitarbeiter unterstützen und langfristig optimieren. Schaffen Sie gemeinsam mit Ihren Kollegen eine Kultur des Vertrauens, der Unterstützung und der Fürsorge. Auf diese Weise werden Sie alle das Beste aus einander herausholen.