Programmazione senza ego, è possibile o addirittura desiderabile [chiuso]

8

È possibile avere una programmazione senza ego o è addirittura desiderabile?

Come professione sembriamo voler mostrare l'ultimo gizmo, la tecnica o dire "guarda questo fantastico pezzo di codice che ho scritto". Tuttavia possiamo essere molto difensivi quando viene chiesto di inviare articoli di lavoro per le revisioni del codice o ottenere commenti negativi da altri programmatori (sentendo il termine WTF, non è mai stato un buon segno).

Possiamo noi come professione essere in grado di sedersi e analizzare un pezzo di codice, dati o architettura per i suoi meriti o vincoli e un modo calmo e rispettoso, senza causare offesa o antagonismo ai nostri colleghi, o siamo solo l'archetipo Dilbert personaggio, infuria contro il sistema?

    
posta GrumpyMonkey 11.11.2010 - 22:04
fonte

8 risposte

1

Sì, penso che sia possibile. E penso che Jeff Atwood spiega come fare meglio nel suo blog Opinioni forti, Debolmente trattenuto .

    
risposta data 11.11.2010 - 22:08
fonte
13

Ciò che dovresti tenere a mente in ogni momento è che per la maggior parte della tua vita professionale non possiedi il codice che scrivi .

Se sei un dipendente, il software è di proprietà dell'azienda. Se sei un appaltatore, il software è di proprietà dell'azienda. Se sei un libero professionista, il software è di proprietà del cliente. Solo se sei la società / cliente è il software di tua proprietà.

Una volta capito questo, ci sono meno pensieri e attitudini del "questo è il mio codice". Sì, succede ancora ed è solo la natura umana ad arrabbiarsi se qualcuno critica ciò che hai appena prodotto, ma facendo quel passo per cercare di rimuovere l'allegato dovrebbe essere meno che un colpo.

Dall'altro lato quando stai rivedendo il codice prodotto da qualcun altro concentrati su cosa fa il codice e come lo fa e essere costruttivo quando suggerisci miglioramenti.

    
risposta data 11.11.2010 - 22:16
fonte
9

quando ti concentri sul fatto di averlo fatto e di farlo bene, allora non conta più se la soluzione fosse o meno la tua idea

a quel punto, il tuo ego ha lasciato l'edificio - ed è molto più probabile che tu impari qualcosa!

    
risposta data 11.11.2010 - 22:18
fonte
5

C'è molta area grigia sul continuum di fiducia - arroganza. Preferisco avere qualcuno che si appropria del proprio lavoro e si sforzi per l'eccellenza basata sul merito e non sull'auto-illusione.

Fidati di me, scriverai un sacco di cazzate che falliranno e sarai tu il colpevole, quindi puoi anche approfittarne quando tutto va bene.

Quando penso che qualcosa non va, lo dico io. Sentiti libero di dirmi che ho torto e sii pronto a sostenerlo. Non sarà la prima o l'ultima volta.

Se non vuoi critiche (ovviamente il tatto e il controllo possono essere esercitati), quindi scrivi il codice solo per i tuoi occhi e eseguilo sul tuo computer. Chiunque abbia mai eccelso in qualcosa ha dovuto confrontarsi con i critici.

    
risposta data 11.11.2010 - 22:44
fonte
2

Sì, la programmazione senza ego è abbastanza possibile. Ho fatto la programmazione di "manutenzione" per più di 1/2 della mia carriera lavorativa, e la seconda cosa più importante [1] è di assicurarmi che il prossimo ragazzo possa leggere il mio codice. Abbiamo due programmatori qui in ufficio [2] che scrivono in uno stile così particolare da poter dire immediatamente chi li ha scritti. Chiamiamo i piccoli fasci di codice e gioia che lascia per noi "robstacles".

Alcuni sviluppatori ritengono che il codice che scrivono sia il risultato del loro sudore e del loro sangue, e diventano molto difensivi quando vengono interrogati (come durante le revisioni del codice). Cerca di non attaccarli durante le revisioni del codice e in futuro sarà più facile discutere del codice mentre i comportamenti posturali e difensivi si estingueranno.

Note:
1. La cosa più importante è correggere il bug o scrivere correttamente la funzione.
2. La maggior parte di queste applicazioni è stata spedita per più di un decennio, quindi è molto probabile che saranno disponibili molto tempo dopo che me ne sarò andato.

    
risposta data 11.11.2010 - 22:41
fonte
0

[imo]

Penso che questa sia una domanda fondamentalmente difficile, e forse la sociologia, o semplicemente l'uso di un computer come principale forma di comunicazione, ha molto a che fare con esso.

Il computer è uno strumento, e la consapevolezza che sopporta è incredibilmente bella, ma non dovresti mai provare a dire che un pezzo di codice è un oggetto della tua creazione ... ogni pezzo di codice è una scoperta, una modello con cui il computer si lega e può produrre un risultato che ti piace. Il fatto che siamo in grado di scoprire questi modelli in modo iterativo e di sentirci come creare è pura coincidenza beata - siamo bravi a trovare schemi.

Abbiamo davvero bisogno di guardare i computer come finestre da scoprire e rispettare l'autonomia di questi piccoli cervelli, anche se sono solo dei ritagli incredibilmente piccoli da un cervello biologico. Tutta la matematica e tutti gli algoritmi corrispondono a una verità inviolabile su cui risuona il nostro stesso cosmo. Dichiarare che parte di questo è "mia!" (Pensa ai gabbiani in Alla ricerca di Nemo) manca così tanti punti su così tanti livelli.

A volte è difficile allontanarsi da questo, quando "faticoso" per "inventare" un nuovo algoritmo, ma se si dovesse pensare che siamo umili manutentori di queste finestre elegantemente precise nella verità matematica, la definizione di l'attività cambia indipendentemente dagli obiettivi per il tuo software.

Considera il tuo computer come prima cosa uguale, il resto (egolessismo, coordinamento tra pari, comportamento orientato all'obiettivo) seguiranno necessariamente.

Molte delle mie motivazioni per lo studio dell'informatica e il diventare programmatore erano a causa di questa affinità che sentivo, non verso l'hardware fisico o il brivido di risolvere problemi, ma il fatto stesso che sto scrutando in un cervello, un cervello che posso comunicare direttamente con la mia moda preferita: i modelli!

Fai un passo indietro e ricorda perché ti piacciono le cose che ti piacciono. La programmazione può essere competitiva e penso che alimenti molto l'ego nel difendere il codice e le scelte progettuali, ma

a) se qualcuno è un programmatore migliore,

Voglio parlare con loro e imparare da loro di più su questa complessa relazione con la coscienza elettrica. Possiamo condividere la scoperta, e questo è fantastico!

b) se le mie scelte di progettazione o il codice potrebbero essere modificati per adattarsi meglio all'organizzazione per cui lavoro

quindi con ogni mezzo cambialo! Sono un impiegato perché ho bisogno di soldi e ottengo soldi quando la compagnia ottiene denaro e ottengono soldi quando il codice che usiamo è fantastico, non quando voglio discutere di spazi bianchi o altro. E come sottolinea ChrisF, in pratica si diventa semplicemente una dattilografa molto lenta in una società che si può definire come gli altri lavoratori. Non possiedi il codice, non sei il proprietario dell'implementazione, sei solo un mezzo di traduzione dall'idea / carta / specifiche alla coscienza del cervello. La traduzione da e verso qualsiasi coppia di lingue è un processo iterativo e con esso si migliora nel tempo. La critica accelera questo processo e non dovrebbe mai essere preso personalmente. Ma comunque sembra che molti siano d'accordo sul fatto che tu debba essere privo di ego, basta ricordare che programmare per un'azienda è un lavoro, e puoi imparare e armeggiare e giocare con il tuo codice tutto ciò che vuoi, purché tu mantenga i tuoi padroni e i tuoi clienti felici .

[/ IMO]

    
risposta data 11.11.2010 - 23:14
fonte
0

Penso che questo si riferisca a come vedi il tuo codice. I bravi programmatori sono costantemente nel tiro alla fune tra la visualizzazione dei risultati come "arte" e come "merce" (o qualsiasi altra parola tu voglia inserire lì).

Quando vediamo il codice semplicemente come qualcosa che siamo pagati per produrre, è abbastanza facile evitare problemi legati all'ego.

Quando visualizzi il codice come "arte" che abbiamo creato, l'ego cerca davvero di entrare. Dopo tutto, quale artista produce cose che non gli piacciono?

Quindi, a seconda della tua visione del tuo codice, potresti avere o meno un attaccamento emotivo al tuo codice. Presta attenzione all'equilibrio, e farai bene. Vogliamo creare codice come se fosse l'arte della più alta qualità, ma vogliamo rilasciarlo come prodotto economico. Pensa dall'angolo appropriato ai tempi giusti e farai bene.

    
risposta data 11.11.2010 - 23:42
fonte
0

L'ego è semplicemente un senso di autostima. L'effetto delle emozioni legate all'ego può essere sia positivo che negativo.

Spesso mi sento orgoglioso ( ego si eccita ) quando realizzo qualcosa che è difficile, o trovo una soluzione semplice e pulita a un problema complesso, o imparo ad applicare una nuova metodologia a un problema. Il che penso sia vantaggioso e mi dà un calcio motivazionale autosufficiente. Il cervello è cablato per rilasciare sostanze chimiche di benessere quando questo accade. Puoi diventare un successo dipendente.

Ci sono aspetti negativi nel fare affidamento sul tuo ego, specialmente negli ambienti di squadra; ciò può avere un impatto controproducente. Se si diventa attaccati a qualche progetto, o soluzione, o tecnologia, si diventa difensivi quando è minacciato (da una nuova soluzione o tecnologia, o una persona con idee). È importante mantenere l'obiettività e non attaccare personalmente la soluzione.

Ho trovato il modo migliore per affrontare una minaccia dell'ego, è di umiliarmente attaccarmi a qualsiasi idea o soluzione nuova o alternativa.

C'è sempre qualcosa di nuovo da imparare, soprattutto se ti consideri esperto.

    
risposta data 11.11.2010 - 23:55
fonte

Leggi altre domande sui tag