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 di Wikipedia e in un articolo di 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 revisioni tra pari con 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 ci si difende esso.

Ho anche pensato che si trattasse in gran parte di avere un atteggiamento che crea buone relazioni 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 il rimpianto se qualcosa che hai fatto ha causato un problema al tuo cliente.

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


7
Tuttavia, la programmazione ego-galore è molto più divertente della programmazione senza ego.
Giobbe

2
@Job: Sì, e come dicono i Mythbuster, tutto va meglio con C-4.
Bob Murphy,

Risposte:


17

Tutti i precedenti.

La programmazione senza ego ha principalmente a che fare con quanto rispetto hai per il programmatore che ti segue, che dovrà capire cosa hai fatto con il tuo codice in modo che possano mantenerlo, e molto probabilmente migliorare ciò che hai fatto ( Lo so, sembra inconcepibile, dal momento che tutto il codice che scrivo è già perfetto;).

Credo anche che i programmatori egoisti non assumano posizioni dogmatiche sul loro lavoro. Questo li rende abbastanza flessibili da lavorare in ambienti in cui le loro aspettative idealistiche potrebbero non essere sempre così avidamente abbracciate o accettate incondizionatamente.


Concordo sul fatto che l'essere non dogmatico è molto importante per le relazioni costruttive - non solo nella programmazione - e faccio costantemente fatica a farlo.
Bob Murphy,

@bobmurphy Conosco due modi efficaci per evitare di essere dogmatico. 1) Non frega niente degli ideali. 2) Dare il tempo e l'energia necessari per costruire un team di sviluppo che abbia condiviso gli ideali. Molte persone rinunciano a 2, scrivono un documento standard che nessuno legge e scivolano lentamente in 1. L'unico anidoto è una revisione del codice su come si sentono le persone. Non sulle seguenti regole.
candied_orange,

8

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

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


Non pensavo fosse uno standard ISO. :-) Sono rimasto sorpreso dal fatto che le persone sottintendessero una programmazione senza ego significa che è inappropriato scusarsi con i consumatori del mio software quando sono disturbati dai bug che ho scritto. Se è questo che significa, sarò egoista ed educato.
Bob Murphy,

@Bob: non vedo quanto egoista alla Weinburg porti a non scusarsi per i bug. Mi sembra piuttosto egoistico.
David Thornley,

Era quello che non riuscivo a capire.
Bob Murphy,

6

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

L'implicazione, come intendo il termine, è che esiste una proprietà collettiva , in modo che ogni persona del team lavori a 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 certo senso.


1

Sono una persona di mezza età. Sono stato in molti paesi diversi e ho avuto la fortuna di incontrare persone brillanti come astronomi e monaci buddisti zen.

Circa due anni fa ho seguito un paio di lezioni di informatica per ripulire le mie conoscenze sulla programmazione.

Un giorno il mio professore di programmazione ha portato in classe il puzzle "Torre di Hanoi". C'erano alcuni studenti che si vantano sempre delle loro vite di successo come programmatori. Il mio professore ha consegnato a tutti gli studenti il ​​puzzle e ha chiesto a tutti di iniziare il puzzle contemporaneamente.

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

Mi scusi per il mio cattivo inglese. La mia madrelingua è giapponese


+1: l'ho visto molte volte, e non solo con la programmazione.
Bob Murphy,

A proposito, anch'io sono di mezza età (52). Quando avevo vent'anni, ero sicuro di sapere molto su molte cose. Ora sono sicuro di non sapere molto di nulla. È abbastanza divertente vedere mio nipote di 18 anni essere molto sicuro di se stesso.
Bob Murphy,

@BobMurphy "più imparo, più so quanto poco so"
gbjbaanb

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, indipendentemente da quanto rispetti i tuoi coetanei e comprendi che in futuro è necessario apportare modifiche al tuo lavoro, fa comunque male al tuo ego quando accade. Ogni ingegnere che abbia mai incontrato ha una reazione istintiva iperprotettiva del padre / madre per proteggere i loro bambini, anche se una volta che si ha una discussione approfondita, l'autore diventa più disposto ad accettare il fatto che il cambiamento deve essere fatto.

In altre parole, non penso che sia possibile avere una programmazione priva di ego.

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

... E ora ho capito quanti anni ha questa discussione: P


3
Solo perché i tuoi colleghi sono degli asini non significa che devi esserlo anche tu! L'idea è che se incoraggiamo la programmazione senza ego, la prossima generazione potrebbe essere meno di un gruppo di abitanti della prima domnna e più professionisti.
gbjbaanb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.