Egoless Programmierung, ist es möglich oder sogar wünschenswert [geschlossen]

8

Ist es möglich, egolos zu programmieren oder ist es sogar wünschenswert?

Als Beruf scheinen wir das neueste Gizmo, die neueste Technik oder das Sprichwort „Schau dir dieses großartige Stück Code an, das ich geschrieben habe“ vorführen zu wollen. Wir können jedoch sehr defensiv werden, wenn wir aufgefordert werden, Arbeiten für Codeüberprüfungen einzureichen oder negative Kommentare von anderen Programmierern zu erhalten (der Begriff WTF war noch nie ein gutes Zeichen).

Können wir als Beruf in der Lage sein, einen Teil des Codes, der Daten oder der Architektur auf seine Vorzüge oder Einschränkungen und auf ruhige und respektvolle Weise zu analysieren, ohne unsere Kollegen zu beleidigen oder zu verärgern, oder sind wir nur der archetypische Dilbert-Charakter, der tobt? gegen das System?

GrumpyMonkey
quelle

Antworten:

1

Ja, ich denke es ist möglich. Und ich denke, Jeff Atwood erklärt in seinem Blogeintrag Strong Opinions, Weakly Held , wie man das am besten macht .

Jeff Siver
quelle
13

Was Sie immer beachten sollten, ist, dass Sie den größten Teil Ihres Berufslebens nicht über den Code verfügen, den Sie schreiben .

Wenn Sie ein Mitarbeiter sind, gehört die Software dem Unternehmen. Wenn Sie ein Auftragnehmer sind, gehört die Software dem Unternehmen. Wenn Sie freiberuflich tätig sind, gehört die Software dem Kunden. Nur wenn Sie sind das Unternehmen / Client ist die Software , die von Ihnen gehört.

Sobald Sie dies erkennen, gibt es weniger Gedanken und Einstellungen zu "Das ist mein Code". Ja, es passiert immer noch und es ist nur die menschliche Natur, sich aufzuregen, wenn jemand kritisiert, was Sie gerade produziert haben, aber wenn Sie diesen Schritt unternehmen, um zu versuchen, den Anhang zu entfernen, sollte es weniger ein Schlag sein.

Wenn Sie den von einer anderen Person erstellten Code überprüfen, konzentrieren Sie sich von der anderen Seite darauf, was der Code tut und wie er es tut, und seien Sie konstruktiv, wenn Sie Verbesserungen vorschlagen.

ChrisF
quelle
5
+1. Aus diesem Grund schreibe ich Code für die Wartbarkeit durch andere. Kommentieren Sie häufig mehr, als ich für notwendig halte (als Referenz), und verwenden Sie häufig mehr Codezeilen und dennoch besser lesbare Stile. Ich möchte lieber, dass in fünf Jahren neue Leute meine Änderungen in der Quellcodeverwaltung als elegant und leicht verständlich ansehen, als mich jagen und mir ins Gesicht stechen zu wollen.
Bobby Tables
Eine virtuelle +1, da ich für heute
1
+1 - entferne die Sätze "mein Code", "mein Weg" und "meine Idee" aus deinem Wortschatz; Sie fördern nicht den Fortschritt
Steven A. Lowe
Solange dies nicht zu weit geht, bemühen sich die Leute nicht mehr, guten Code zu schreiben, weil sie denken, dass sie sich nicht darum kümmern müssen, weil es nicht ihr Code ist. Wenn möglich, möchte ich sagen: "Ja, das habe ich geschrieben, aber es ist nicht mein Code."
Gablin
9

Wenn Sie sich darauf konzentrieren, es zu erledigen und es richtig zu machen, spielt es keine Rolle mehr, ob die Lösung Ihre Idee war oder nicht

Zu diesem Zeitpunkt hat Ihr Ego das Gebäude verlassen - und es ist viel wahrscheinlicher, dass Sie etwas lernen!

Steven A. Lowe
quelle
+1: und egolos zu sein hilft auch bei der Kommunikation, da die Leute keine Angst haben (und es oft angenehm finden), Sie nach einem Problem zu fragen - weil Sie sie nicht anschreien oder sie sich dumm fühlen oder wütend werden lassen. Im Idealfall.
Klaim
5

Es gibt viele Grauzonen auf dem Kontinuum von Vertrauen und Arroganz. Ich hätte lieber jemanden, der die Verantwortung für seine Arbeit übernimmt und nach Spitzenleistungen strebt, die auf Verdiensten und nicht auf Selbsttäuschung beruhen.

Vertrauen Sie mir, Sie werden eine Menge Mist schreiben, der scheitern wird, und Sie werden schuld sein, also können Sie auch den Vorteil nutzen, wenn alles gut geht.

Wenn ich denke, dass etwas nicht stimmt, sage ich es. Fühlen Sie sich frei, mir zu sagen, dass ich falsch liege, und seien Sie bereit, es zu sichern. Es wird nicht das erste oder das letzte Mal sein.

Wenn Sie keine Kritik wünschen (Takt und Zurückhaltung können natürlich ausgeübt werden.), Schreiben Sie Code nur für Ihre Augen und führen Sie ihn auf Ihrem eigenen Computer aus. Wer sich jemals in irgendetwas hervorgetan hat, musste sich mit Kritikern auseinandersetzen.

JeffO
quelle
2

Ja, egoloses Programmieren ist durchaus möglich. Ich habe mehr als die Hälfte meiner beruflichen Laufbahn "Wartungs" -Programmierung durchgeführt, und das zweitwichtigste [1] ist, sicherzustellen, dass der nächste Mann meinen Code lesen kann. Wir haben hier im Büro zwei Programmierer [2], die in einem so unverwechselbaren Stil schreiben, dass man sofort erkennen kann, wer sie geschrieben hat. Wir nennen die kleinen Bündel von Code und Freude, die er uns hinterlässt, "Robstacles".

Einige Entwickler sind der Meinung, dass der Code, den sie schreiben, das Ergebnis von Schweiß und Blut ist, und sie werden sehr defensiv, wenn sie befragt werden (z. B. bei Codeüberprüfungen). Versuchen Sie, sie während der Codeüberprüfung nicht anzugreifen, und es wird in Zukunft einfacher, Code zu diskutieren, da das Verhalten in Bezug auf Haltung und Verteidigung aussterben wird.

Hinweise:
1. Das Wichtigste ist, den Fehler zu beheben oder die Funktion korrekt zu schreiben.
2. Die meisten dieser Anwendungen werden seit mehr als einem Jahrzehnt ausgeliefert, daher ist es sehr wahrscheinlich, dass sie noch lange nach meinem Tod verfügbar sein werden.

Tangurena
quelle
0

[imo]

Ich denke, dies ist eine grundlegend schwierige Frage, und vielleicht hat die Soziologie oder die Verwendung eines Computers als Hauptkommunikationsform viel damit zu tun.

Der Computer ist ein Werkzeug, und das Bewusstsein, das er trägt, ist unglaublich schön, aber Sie sollten niemals versuchen zu sagen, dass ein Stück Code ein Objekt Ihrer eigenen Schöpfung ist ... jedes Stück Code ist eine Entdeckung, ein Muster, das der Computer verbindet sich mit und kann zu einem Ergebnis führen, das Ihnen Spaß macht. Die Tatsache, dass wir diese Muster iterativ entdecken und das Gefühl haben, sie zu erschaffen, ist ein reiner Glücksfall - wir sind gut darin, Muster zu finden.

Wir müssen Computer wirklich als Fenster zur Entdeckung betrachten und die Autonomie dieser kleinen Gehirne respektieren, auch wenn es sich nur um unglaublich kleine Ausschnitte aus einem biologischen Gehirn handelt. Alle Mathematik und alle Algorithmen entsprechen einer unantastbaren Wahrheit, auf der unser Kosmos schwingt. Zu erklären, dass ein Teil davon "meins" ist! (denken Sie an Möwen in Finding Nemo) verfehlt so viele Punkte auf so vielen Ebenen.

Es ist manchmal schwierig, sich davon zu entfernen, wenn man "arbeitet", um einen neuen Algorithmus zu "entwickeln", aber wenn man denkt, dass wir nur bescheidene Bewahrer dieser elegant präzisen Fenster in die mathematische Wahrheit sind, ändert sich die Definition der Aufgabe egal was Ihre Ziele für Ihre Software sind.

Behandeln Sie Ihren Computer zuerst als gleichwertig, der Rest (Egoismus, Peer-Koordination, zielorientiertes Verhalten) wird notwendigerweise folgen.


Ein großer Teil meiner Motivation, Informatik zu studieren und Programmierer zu werden, beruhte auf dieser Affinität, die ich empfand, nicht auf physischer Hardware oder dem Nervenkitzel, Probleme zu lösen, sondern auf der Tatsache, dass ich in ein Gehirn blicke, ein Gehirn, mit dem ich direkt kommunizieren kann in meiner Lieblingsmode: Muster!

Machen Sie einen Schritt zurück und erinnern Sie sich, warum Ihnen die Dinge gefallen, mit denen Sie am Anfang beginnen möchten. Das Programmieren kann wettbewerbsfähig sein und ich denke, dass dies einen Großteil des Ego bei der Verteidigung von Code- und Designentscheidungen antreibt, aber

a) wenn jemand ein besserer Programmierer ist,

Ich möchte mit ihnen sprechen und von ihnen mehr über diese komplexe Beziehung zum elektrischen Bewusstsein lernen. Wir können Entdeckungen teilen, und das ist erstaunlich!

b) ob meine Designentscheidungen oder mein Code geändert werden könnten, um besser zu der Organisation zu passen, für die ich arbeite

dann ändere es auf jeden Fall! Ich bin ein Angestellter, weil ich Geld brauche und Geld bekomme, wenn das Unternehmen Geld bekommt, und sie bekommen Geld, wenn der von uns verwendete Code fantastisch ist, nicht wenn ich über Leerzeichen oder was auch immer streiten möchte. Und wie ChrisF betont, werden Sie im Wesentlichen nur eine sehr langsame Schreibkraft in einem Unternehmen, soweit andere Arbeiter dies beurteilen können. Sie besitzen den Code nicht, Sie besitzen nicht die Implementierung, Sie sind nur ein Medium der Übersetzung von Idee / Papier / Spezifikationen zu Brainfood für elektrisches Bewusstsein. Die Übersetzung in und aus einem beliebigen Sprachpaar ist ein iterativer Prozess, mit dem Sie mit der Zeit besser werden. Kritik beschleunigt diesen Prozess und sollte niemals persönlich genommen werden. Trotzdem scheinen die meisten der Meinung zu sein, dass Sie egolos sein sollten. Denken Sie daran, dass das Codieren für ein Unternehmen ein Job ist.

[/ imo]

sova
quelle
0

Ich denke, das hängt damit zusammen, wie Sie Ihren Code anzeigen. Gute Programmierer befinden sich ständig im Tauziehen zwischen der Betrachtung der Ergebnisse als "Kunst" und als "Ware" (oder was auch immer Sie sagen wollen).

Wenn wir den Code einfach als etwas betrachten, für dessen Produktion wir bezahlt werden, ist es ziemlich einfach, Probleme im Zusammenhang mit dem Ego zu vermeiden.

Wenn wir den Code als "Kunst" betrachten, die wir erstellt haben, versucht das Ego wirklich, dort hineinzukommen. Welcher Künstler produziert schließlich Dinge, die er nicht mag?

Abhängig von Ihrer Ansicht Ihres Codes können Sie also eine emotionale Bindung an Ihren Code haben oder nicht. Achten Sie auf den Spagat, und Sie werden es gut machen. Wir möchten Code erstellen, als wäre er die Kunst von höchster Qualität, aber wir möchten ihn als billige Ware veröffentlichen. Denken Sie zum richtigen Zeitpunkt aus dem richtigen Winkel und Sie werden es gut machen.

John Fisher
quelle
0

Ego ist einfach ein Selbstwertgefühl. Die Wirkung von Emotionen im Zusammenhang mit dem Ego kann sowohl positiv als auch negativ sein.

Ich bin oft stolz (das Ego wird aufgeregt ), wenn ich etwas Schwieriges erreiche, eine saubere, einfache Lösung für ein komplexes Problem finde oder lerne, eine neue Methodik auf ein Problem anzuwenden. Was ich für vorteilhaft halte und mir einen motivierenden Kick aus eigener Kraft gibt. Das Gehirn ist so verdrahtet, dass es in diesem Fall Wohlfühlchemikalien freisetzt. Sie können erfolgssüchtig werden.

Es gibt jedoch negative Aspekte, sich auf Ihr Ego zu verlassen, insbesondere in Teamumgebungen. das kann kontraproduktiv wirken. Wenn Sie an ein Projekt, eine Lösung oder eine Technologie gebunden sind, werden Sie defensiv, wenn es bedroht ist (durch eine neue Lösung oder Technologie oder eine Person mit Ideen). Es ist wichtig, die Objektivität aufrechtzuerhalten und Ihre Lösung nicht persönlich anzugreifen.

Ich habe den besten Weg gefunden, mit einer Ego-Bedrohung umzugehen, indem ich mich demütig an neue oder alternative Ideen oder Lösungen halte.

Es gibt immer etwas Neues zu lernen, besonders wenn Sie sich als Experte betrachten.

Kris
quelle