5 Punkte von spilist2 2021-12-04 | 7 Kommentare | Auf WhatsApp teilen

Weil ich in letzter Zeit immer wieder über Themen wie Lernen, Wachstum und Produktivität nachdenke, macht mich dieses Thema neugierig.

Darüber hinaus: Worin unterscheiden sich Ihrer Meinung nach gute Entwickler von außergewöhnlichen Entwicklern?

Ich wäre auch dankbar, wenn Sie mit einer anderen Rolle/Berufsgruppe antworten, zu der Sie gehören oder die Sie gut kennen, indem Sie „Entwickler“ ersetzen. (z. B. Tech Lead, CTO, CEO, Gründer, Designer, PM, ...)

Ich denke, dass außergewöhnliche Entwickler im Wesentlichen die folgenden drei Gemeinsamkeiten haben.

  • Problemerkennung: Sie entdecken Dinge, die andere nicht einmal als Problem wahrnehmen, und finden Möglichkeiten zur Verbesserung.

  • Problemdefinition: Sie betrachten Problemsituationen und Ursachen auf sehr unterschiedlichen Ebenen und aus verschiedenen Perspektiven und abstrahieren ihre bisherigen Erfahrungen zu Mustern, sodass sie das Problem auf ein viel einfacheres (oder wirksameres, grundlegenderes) Problem zurückführen.

  • Problemlösung: Sie können sich mehrere mögliche Lösungen vorstellen und verstehen die Trade-offs jeder Lösung, sodass sie eine Lösung wählen, die zur aktuellen Situation der Organisation passt. Sie wissen auch, zu welchem Zeitpunkt und anhand welcher Signale sie diese Entscheidung ändern sollten. Und sie wenden die Lösung in kleinen Einheiten und auf eine Weise an, die schnelles Feedback ermöglicht.

7 Kommentare

 
benjamin 2021-12-17

Modesinn: 0 Punkte.

Wenn ich an Gemeinsamkeiten denke, fällt mir eigentlich nur das ein.

Halb im Scherz, halb im Ernst ..... haha

 
xguru 2021-12-04

Im Grunde denke ich auch, dass Entwickler Menschen sind, die Probleme lösen.

Man muss das nicht unbedingt nur auf Entwickler beschränken, aber ich würde als Merkmal herausragender Menschen „Verknüpfung“ nennen.

Es gibt viele Dinge im Kopf – Wissen, Erfahrung, Ideen und so weiter – und ich denke, entscheidend ist, ob jemand diese gut miteinander verbinden kann.

Wenn man ein Problem entdeckt, ist es eine erste Form der Verknüpfung, eine Lösungsidee zu haben,

aber auch Probleme mit anderen Problemen zu verknüpfen, um sich komplexe Situationen vorzustellen und andere Lösungswege zu finden, ist Verknüpfung,

und ebenso ist es Verknüpfung, verschiedene Lösungen und Ideen miteinander zu verbinden, um eine einfachere, flexiblere und bessere Lösung hervorzubringen.

Nicht nur in der Entwicklung, sondern auch die Fähigkeit, Entwicklung mit geschäftlichen Aspekten zu verknüpfen oder sogar völlig Unzusammenhängendes miteinander zu verbinden, ist in der heutigen Zeit meiner Meinung nach eine äußerst wichtige Kompetenz.

 
spilist2 2021-12-04

Ich habe die Frage auch auf Facebook gestellt, und Kim Chang-jun hat kommentiert, ich solle mir dazu eine wissenschaftliche Arbeit ansehen. Ich frage mich, warum ich nicht selbst darauf gekommen bin.

Da die 2015 erschienene Arbeit „What Makes a Great Software Engineer?“ 150-mal zitiert wurde, möchte ich sie lesen.

https://ieeexplore.ieee.org/abstract/document/7194618

 
guswns1659 2021-12-15

Hallo spilist2! Ich glaube, ich habe gesehen, dass Sie die Frage auch auf Facebook gepostet haben :) Das ist auch etwas, worüber ich immer nachdenke. Würden Sie den Inhalt der Arbeit vielleicht als empfehlenswert einstufen?

 
spilist2 2021-12-15

Die Arbeit ist vermutlich eine Dissertation, und als PDF umfasst sie ganze 300 Seiten. https://digital.lib.washington.edu/researchworks/bitstream/…

Deshalb habe ich bisher nur bis Kapitel 2 gelesen (Introduction, Related Work), aber schon bis hierhin gefällt mir der Inhalt sehr gut. Auch die Sätze sind nicht schwer geschrieben. Sehr empfehlenswert.

 
guswns1659 2021-12-29

Ich habe Kapitel 6 aus den geteilten Arbeiten gelesen, weil es mir am zentralsten erschien, haha, und der Inhalt ist wirklich gut! Es bringt mich auch noch einmal dazu, auf mich selbst zurückzublicken!! Haha, danke.

 
spilist2 2021-12-04

Wenn man die Frage einmal gestellt hat und dann bei Google sucht, findet man einige Artikel dazu. Es gibt auch das Schlagwort 10x engineers.

https://linkedin.com/pulse/great-engineer-vs-good-marissa-fayer-mba/

  • Ein guter Entwickler verfügt über besondere Werkzeuge, um Probleme zu lösen. Ein guter Entwickler arbeitet systematisch und rational, betrachtet die Sache aus allen Blickwinkeln und analysiert alle möglichen Ein- und Ausgaben.

  • Ein hervorragender Entwickler baut auf all den oben genannten Fähigkeiten auf und wendet sie auf sofort nutzbare Lösungen an. Er setzt bereits bekannte Muster (Prinzipien aus Wissenschaft und Mathematik, Lean-Development-Prinzipien usw.) auf kreative Weise für neue reale Probleme ein.

  • Die besten Entwickler können zuhören. Sie hören auf das Problem, auf die Stakeholder und das, was ihnen wichtig ist, auf den Markt, auf Feedback. Und sie hören auf die innere Stimme, die kreative Ansätze hervorbringt.

==

https://www.quora.com/How-do-you-identify-a-good-vs-great-engineer

Es gibt extrem viele Antworten ... wenn man nur ein paar mit vielen Votes ansieht:

  1. (Am Beispiel der Person, die einen Ventilator ans Förderband gebracht hat:) Faule Menschen suchen immer nach einem Weg, nicht arbeiten zu müssen. Ein fauler Engineer ist der beste Engineer.

  2. Ein guter Engineer löst das Problem, um das er gebeten wurde. Gelegentlich besucht er Kurse, um seine technischen Fähigkeiten zu verbessern. Ein hervorragender Engineer geht einen Schritt über das Verlangte hinaus.

  • Wenn Leute Fragen haben, suchen sie ihn auf.

  • Er lernt ständig weiter.

  • Er teilt kontinuierlich, was er weiß.

  • Er hält an dem fest, was er für richtig hält, weiß aber auch, wann er nachgeben muss.

  • Er hat keine Angst davor, selbst mit anzupacken.

  1. Ein schlechter Engineer entschuldigt sich damit, warum ein Bug im System schwer zu beheben ist. Ein guter Engineer behebt den Bug auf Grundlage seiner Fachkenntnis. Ein hervorragender Engineer sucht nach der tieferen Bedeutung hinter dem gegebenen Problem.
  • Er prüft, ob es in allen anderen Systemen keine ähnlichen Bugs gibt (oder ob sie dort bereits behoben wurden).

  • Er schlägt eine langfristige Lösung oder ein Design vor, mit dem sich verhindern lässt, dass ähnliche Bugs erneut auftreten. (Mit beigefügter cost/benefit analysis für die einzelnen Lösungsansätze)

  • Er blickt auch über sein eigenes Fachgebiet hinaus und sucht danach, ob andere Gruppen ein ähnliches Problem hatten. (Oder hat sie bereits kontaktiert.)