Qu'est-ce que la «programmation sans ego»?

12

J'ai entendu ce terme pour la première fois il y a une quinzaine d'années.

Ma compréhension est similaire à celle décrite dans l'article de Wikipédia et dans un article de TechRepublic : vous travaillez avec vos collègues de manière "amicale et collégiale dans laquelle les sentiments personnels sont mis de côté". Cela inclut des choses comme faire des évaluations par les pairs avec un respect mutuel et un désir d'apprendre, et ne pas se sentir comme si vous "possédez" du code, donc si quelqu'un a une suggestion ou dit qu'il y a un bogue ou doit le changer, vous ne vous défendez pas il.

J'ai également pensé qu'il s'agissait en grande partie d'avoir une attitude qui crée de bonnes relations avec d'autres programmeurs dans le but d'améliorer le code. Je ne l'ai donc pas vu comme incompatible avec la fierté de la qualité de votre travail ou le regret si quelque chose que vous avez fait a causé un problème à votre client.

Cependant, une réponse à une question récente me fait penser que certains autres programmeurs ont des compréhensions différentes de la "programmation sans ego". Quelle est donc la bonne définition? Et quelles sont ses implications?

Bob Murphy
la source
7
La programmation Ego-galore est cependant beaucoup plus amusante que la programmation sans ego.
Job
2
@Job: Oui, et comme le disent les Mythbusters, tout va mieux avec C-4.
Bob Murphy

Réponses:

17

Tout ce qui précède.

La programmation sans ego a surtout à voir avec le respect que vous avez pour le programmeur qui vient après vous, qui va devoir comprendre ce que vous avez fait avec votre code afin qu'il puisse le maintenir, et très probablement améliorer ce que vous avez fait ( Je sais, cela semble inconcevable, car tout le code que j'écris est déjà parfait;).

Je crois aussi que les programmeurs sans ego ne prennent pas de position dogmatique sur leur travail. Cela les rend suffisamment flexibles pour travailler dans des environnements où leurs attentes idéalistes peuvent ne pas toujours être si vivement acceptées ou acceptées sans condition.

Robert Harvey
la source
Je conviens qu'être non dogmatique est très important pour des relations constructives - pas seulement dans la programmation aussi - et je lutte constamment avec.
Bob Murphy
@bobmurphy Je connais deux façons efficaces d'éviter d'être dogmatique. 1) Ne pas se moquer des idéaux. 2) Mettre du temps et de l'énergie pour construire une équipe de développement qui partage des idéaux communs. Beaucoup de gens abandonnent le 2, écrivent un document sur les normes que personne ne lit et glisse lentement vers le 1. La seule anidote est une revue de code qui concerne la façon dont les gens se sentent. Pas sur les règles suivantes.
candied_orange
8

La phrase n'a pas de signification standard ISO, donc différentes personnes peuvent légitimement signifier différentes choses par elle.

Je crois qu'il a été inventé par Weinburg dans The Psychology of Computer Programming . Il voulait dire programmer sans lier son ego au code, pour que ce ne soit pas "votre code", c'est juste du code. Cela facilite la coopération pour améliorer le code, la capacité d'accepter les critiques de ce que vous avez écrit (car il ne vous est pas destiné) et le travail d'équipe général.

David Thornley
la source
Je ne pensais pas que c'était une norme ISO. :-) J'étais juste surpris que les gens impliquent une programmation sans ego, ce qui signifie qu'il est inapproprié de s'excuser auprès des consommateurs de mon logiciel lorsqu'ils sont gênés par les bugs que j'ai écrits. Si c'est ce que cela signifie, je serai égoïste et poli.
Bob Murphy
@Bob: Je ne vois pas comment sans ego à la Weinburg conduit à ne pas s'excuser pour les bugs. Cela me semble assez égoïste.
David Thornley
C'est ce que je ne pouvais pas comprendre.
Bob Murphy
6

Il n'y a pas une seule définition correcte car le concept de «moi» est sujet à une grande interprétation. Selon vos croyances psychologiques et spirituelles, il existe plusieurs réponses différentes sur la façon dont on peut essayer d'éliminer l'ego de sa vie.

L'implication que je comprends du terme est qu'il y a une propriété collective , de sorte que chaque personne de l'équipe travaille pour le bénéfice de tous plutôt que de soi-même. " David Logan sur le leadership tribal " est un TED Talk où une tribu de niveau 4 serait celle de personnes sans ego dans un sens.

JB King
la source
1

Je suis une personne d'âge moyen. Je suis allé dans de nombreux pays différents et j'ai eu la chance de rencontrer des gens brillants comme des astronomes et des moines bouddhistes zen.

Il y a environ deux ans, j'ai suivi quelques cours d'informatique afin de parfaire mes connaissances en programmation.

Un jour, mon professeur de programmation a apporté à la classe le casse-tête «Tour de Hanoi». Il y avait des étudiants qui se vantaient toujours de leur vie réussie en tant que programmeurs. Mon professeur a donné à tous les élèves le puzzle et a demandé à tout le monde de commencer le puzzle en même temps.

Tous les non-initiés à la programmation faisaient de leur mieux pour prouver leur intelligence. L'étudiant qui termine le puzzle en premier est un étudiant chinois de dix-huit ans qui connaît très peu la programmation. Les non-conformistes étaient bouleversés. Mais mon sage professeur qui a trente ans d'expérience en programmation (dont Lisp) avait le sourire aux lèvres.

Excusez-moi pour mon mauvais anglais. Ma langue maternelle est le japonais

Oncle Joe
la source
+1: J'ai vu cela plusieurs fois, et pas seulement avec la programmation.
Bob Murphy
BTW, je suis aussi d'âge moyen (52). Quand j'étais dans l'adolescence et la vingtaine, j'étais sûr que je savais beaucoup de choses. Maintenant, je suis sûr que je ne sais pas grand-chose. C'est assez amusant de voir mon neveu de 18 ans être très sûr de lui.
Bob Murphy
@BobMurphy "plus j'apprends, plus je sais combien je sais peu"
gbjbaanb
1

Mon opinion (et seulement cela) est que le terme "programmation sans ego" est un oxymore.

Les programmeurs et les ingénieurs sont intrinsèquement un groupe égoïste (moi y compris). À la fin de la journée, lorsque vous écrivez du code, vous créez quelque chose. Lorsque vous êtes fier de votre travail et de ce que vous produisez, peu importe à quel point vous respectez vos pairs et comprenez que des changements doivent être apportés à votre travail à l'avenir, cela nuit toujours à votre ego quand cela se produit. Chaque ingénieur que j'ai rencontré a une réaction instinctive de père / mère sur-protectrice pour protéger leurs bébés, même si une fois une discussion approfondie terminée, l'auteur devient plus disposé à accepter le fait que le changement doit être fait.

En d'autres termes, je ne pense pas qu'il soit possible d'avoir une programmation purement sans ego.

Encore une fois, juste mon opinion basée sur l'expérience. N'hésitez pas à me dénigrer :)

... Et maintenant je me suis rendu compte de l’âge de ce fil: P

Demian Brecht
la source
3
Ce n'est pas parce que vos collègues sont des connards que vous devez l'être aussi! L'idée est que si nous encourageons le codage sans ego, la prochaine génération pourrait être moins un tas de dweebs prima-domnna et plus de professionnels.
gbjbaanb