Che cos'è la "programmazione senza ego"?

12

Ho sentito questo termine per la prima volta circa quindici anni fa.

La mia comprensione è simile a quella descritta nell'articolo Wikipedia e Articolo TechRepublic : lavori con i tuoi colleghi in un" modo amichevole e collegiale in cui i sentimenti personali vengono messi da parte ". Include cose come fare peer review con il rispetto reciproco e il desiderio di imparare, e non sentirsi come il "proprio" codice, quindi se qualcuno ha un suggerimento o dice che c'è un bug o ha bisogno di cambiarlo, non ti metti sulla difensiva esso.

Ho anche pensato che fosse in gran parte un atteggiamento che crea buoni rapporti con altri programmatori con l'obiettivo di migliorare il codice. Quindi non l'ho visto incompatibile con l'orgoglio per la qualità del tuo lavoro o con il rimpianto se qualcosa ti ha causato un problema al tuo cliente.

Tuttavia, una risposta a una domanda recente mi fa pensare che altri programmatori abbiano una comprensione diversa della "programmazione senza ego". Quindi qual è la definizione corretta? E quali sono le sue implicazioni?

    
posta Bob Murphy 16.12.2010 - 23:46
fonte

5 risposte

17

Tutto sopra.

La programmazione senza ego ha a che fare principalmente con quanto rispetto hai per il programmatore che viene dopo di te, che dovrà capire cosa hai fatto con il tuo codice in modo che possano mantenerlo, e molto probabilmente migliorare su cosa hai fatto (lo so, sembra inconcepibile, dato che tutto il codice che scrivo è già perfetto;).

Credo anche che i programmatori senza ego non prendano posizioni dogmatiche sul loro lavoro. Ciò li rende abbastanza flessibili da funzionare in ambienti in cui le loro aspettative idealistiche potrebbero non essere sempre così accolte con entusiasmo o accettate incondizionatamente.

    
risposta data 16.12.2010 - 23:50
fonte
8

La frase non ha un significato standard ISO, quindi persone diverse possono legittimamente significare cose diverse da esso.

Credo che sia stato coniato da Weinburg in The Psychology of Computer Programming . Intendeva programmare senza legare nessuno dei propri ego al codice, in modo che non fosse "il tuo codice", ma solo il codice. Questo facilita la cooperazione per migliorare il codice, la capacità di accettare le critiche nei confronti di ciò che hai scritto (perché non è diretto a te) e il lavoro di squadra in generale.

    
risposta data 16.12.2010 - 23:53
fonte
6

Non esiste una definizione corretta poiché il concetto di "Ego" è soggetto ad una grande interpretazione. A seconda delle tue convinzioni psicologiche e spirituali ci sono più di alcune risposte diverse su come si possa provare a rimuovere l'ego dalla propria vita.

L'implicazione, dal momento che capisco il termine, è che esiste una proprietà collettiva , in modo che ogni persona del team stia lavorando per il beneficio di tutti piuttosto che di se stessi. " David Logan sulla leadership tribale " è un TED Talk in cui una tribù di livello 4 sarebbe quella di persone senza ego in un senso.

    
risposta data 16.12.2010 - 23:53
fonte
1

Sono una persona di mezza età. Sono stato in molti paesi diversi e fortunato abbastanza per incontrare persone brillanti come astronomi e monaci buddisti zen.

Circa due anni fa ho preso un paio di lezioni di computer per rispolverare la mia conoscenza della programmazione.

Un giorno il mio professore di programmazione ha portato l'enigma "Torre di Hanoi" alla classe. C'erano alcuni studenti che si vantano sempre delle loro vite di successo come programmatori. Il mio professore ha dato a tutti gli studenti il puzzle e ha chiesto tutti per iniziare il puzzle allo stesso tempo.

Tutti i mavericks di programmazione stavano facendo del loro meglio per dimostrare quanto fossero intelligenti. Lo studente che completa il puzzle per primo è uno studente cinese di diciotto anni che sa molto poco sulla programmazione. I non conformisti erano sconvolti. Ma il mio saggio professore che ha trent'anni di esperienza nella programmazione (incluso Lisp) aveva un sorriso in faccia.

Scusami per il mio pessimo inglese. La mia lingua madre è giapponese

    
risposta data 17.06.2011 - 05:02
fonte
1

La mia opinione (e solo quella) è che il termine "programmazione senza ego" è un ossimoro.

I programmatori e gli ingegneri sono intrinsecamente un gruppo egoistico (me compreso). Alla fine della giornata, quando scrivi il codice stai creando qualcosa. Quando sei orgoglioso del tuo lavoro e di ciò che produci, non importa come rispetti i tuoi colleghi e comprendi che i cambiamenti devono essere apportati al tuo lavoro in futuro, ferisce ancora il tuo ego quando succede . Ogni ingegnere che abbia mai incontrato ha una reazione istintiva di padre / madre eccessivamente protettiva per proteggere i loro bambini, anche se una volta che una discussione approfondita viene presa, l'autore diventa più disposto ad accettare il fatto che il cambiamento deve essere fatto.

In altre parole, non penso sia possibile avere puramente programmazione senza ego.

Ancora una volta, solo la mia opinione basata sull'esperienza. Sentiti libero di prendermi gioco di questo:)

... E ora mi sono reso conto di quanti anni ha questo thread: P

    
risposta data 17.06.2011 - 06:19
fonte

Leggi altre domande sui tag