Quanto può essere brutto perdere il lavoro di squadra quando sei un programmatore? [chiuso]

16

Sono ancora a scuola, e so di avere problemi nel trattare con altre persone.

Non sono arrabbiato o timido o diverso, mi piace lavorare a modo mio e con le mie opinioni rispettando gli altri, ho una grande curiosità e fame di conoscenza, ma mi manca la pratica e credo che le persone non voglio lavorare con me perché potrebbero temere di parlare di morale. (Ad esempio, ho iniziato a imparare a programmare usando linux invece di windows, anche se uso molto Windows. E ho un mac).

Che cosa succede ai programmatori che non hanno lavoro di squadra? Dove iniziano i problemi? Essere un buon programmatore compensa almeno un po '? È normale per un programmatore avere una visione del suo lavoro invece di limitarsi a fare quello che gli viene detto?

    
posta jokoon 29.11.2010 - 14:28
fonte

16 risposte

16

Il tuo comportamento è abbastanza comune alla tua età. Ero come te.

La buona notizia è che la maggior parte delle volte si evolve nella buona direzione. Imparerai come integrarti all'interno di una squadra. Lo amerai! Ma ho incontrato alcune persone che non erano in grado di farcela e ora sono bloccate dalla depressione.

A seconda dello stile di gestione della tua azienda, sarai respinto dal tuo team o semplicemente licenziato dopo un po '. Quindi devi essere preparato ad affrontare alcune difficoltà.

Lo stile di gestione più comune della Francia è basato sulla paura e sulla punizione. Questa non è una buona notizia per te dal momento che incoraggerà il tuo individualismo. Quindi incoraggerà il tuo comportamento.

Detto questo, sai già che c'è un problema con te, quindi è un'ottima indicazione che hai tutto ciò che ti serve per evolvere senza aiuto esterno. Il primo passo è essere consapevoli. Il secondo, il più difficile, sta agendo su di esso.

    
risposta data 29.11.2010 - 14:53
fonte
15

Dipende da ciò che il lavoro richiede. A volte non hai nemmeno una squadra per determinati incarichi. Ma la maggior parte delle volte avrai un manager.

Inoltre, avere una squadra aiuta davvero per ricordarti di volta in volta che scrivi codice crap. :

As a software developer, you are your own worst enemy. The sooner you realize that, the better off you'll be. - Jeff Atwood

Il che significa che avere una squadra renderà più facile imparare le cose più velocemente! Essere un solitario ti renderà un eremita;)

    
risposta data 29.11.2010 - 14:35
fonte
15

What happens to programmers who lack teamwork?

Quindi diventa difficile lavorare su progetti troppo grandi per un singolo programmatore. Difficile per il programmatore solista e difficile per il resto della squadra.

Where does the problems begin?

Tutti i tipi di posti. Al momento abbiamo un singolo programmatore che non funziona come parte di un team. Tende a fare scorciatoie che hanno effetti negativi sul resto dell'applicazione perché è troppo focalizzato a sistemare il bug di fronte a lui. O scrivere la nuova funzionalità in modo tale che non sia compatibile con il resto dell'applicazione. Dobbiamo riorganizzare le cose in modo che ogni check-in di codice venga esaminato dal resto del team. Ma per non escluderlo, esaminiamo anche i controlli di codice di tutti gli altri, quindi insieme alla riunione sullo stato del mattino, non lavoriamo fino a dopo pranzo. Quindi nel nostro ufficio, questo significa che 4 persone stanno perdendo un giorno e mezzo di lavoro ogni giorno perché un ragazzo è schifoso nel lavoro di squadra. Non posso dire che sia un miglioramento rispetto alle avventure precedenti, perché potremmo perdere casualmente da un giorno a una settimana (di solito inseguendo nuovi bug) dai suoi check-in che rompono le cose (noi chiamiamo quei "robstacles"). Alcune delle correzioni al suo codice finiranno per eliminare una mezza dozzina di bug a causa di quanto sia aggrovigliata e disordinata l'applicazione (la mia raccomandazione a spostalo dall'orbita e ricomincia da capo perché è l'unico modo per essere sicuro che non sia stato accettato).

Quando siamo di umore generoso, lo chiamiamo un "programmatore testa in giù", ha la tendenza a guardare la tastiera e digitare velocemente. Non presta attenzione a ciò che fanno gli altri.

Does being a good programmer compensate at least a little?

No. La maggior parte dei programmatori che sono cattivi giocatori di squadra hanno un'opinione molto alta delle proprie abilità, e questo è chiamato Dunning- Effetto Kruger . PDF di carta.

Forse: il programmatore solista dovrebbe essere di gran lunga migliore rispetto al resto della squadra. Ma questo significa solo che nessun altro può mantenere ciò che fa; e quando ciò accade, probabilmente significa che il programmatore solista non è in realtà molto meglio del resto della squadra - lui (ed è quasi sempre un ragazzo) è solo più bravo a ingannare tutti.

Nello sviluppo del software aziendale, la società sarà a lungo dopo la tua partenza. I programmi sono stati scritti molto probabilmente prima di iniziare e verranno mantenuti a lungo dopo che te ne sei andato. Se scrivi cose così speciali e sorprendenti che nessun altro può capirle, ti ritrovi nella situazione in cui Naughty Dog è in - il loro sviluppatore principale ha smesso, nessuno ha compreso il linguaggio di programmazione proprietario che il ragazzo ha scritto (e ha scritto le cose), quindi ora devono cambiare tutto in C ++.

Is it normal for a programmer to have a vision about his work instead of just doing what he is told?

È comune - come un ingorgo o un diabete. Non lo chiamerei normale Nel mondo aziendale, ci sono molte altre cose da considerare; il strong ego che molti sviluppatori hanno tipicamente fatto credere allo sviluppatore che non importa nient'altro. Questa "mancanza di adattamento" e la mancanza di considerazione per il resto del business è il motivo per cui così tanti manager-tipi arrivano alla conclusione che gli sviluppatori di software sono difficili da lavorare.

    
risposta data 29.11.2010 - 15:28
fonte
5

È un'abilità apprendibile. Puoi imparare ora (semplicemente cercando di lavorare con gli altri) o apprendere nel modo più duro, sul posto di lavoro. (Suggerisco il primo.)

Se non puoi lavorare con altre persone, non puoi costruire grandi sistemi. Inoltre, non puoi lavorare con persone più intelligenti di te, il che significa che non puoi imparare tanto o più rapidamente.

    
risposta data 29.11.2010 - 14:33
fonte
3

Essere un buon programmatore compenserà un po 'ma solo un po'. In sedici anni nel settore tutti i migliori programmatori con cui ho lavorato potevano andare d'accordo con le persone - potrebbe non essere venuto naturalmente a loro ma loro l'hanno gestito ed è stata un'abilità assolutamente fondamentale. Quelli che non potevano essere tollerati, ma in onestà non molto di più.

Per me l'area principale è la capacità di lavorare con gli altri con gli utenti e gli analisti. Non importa quanto bene puoi codificare se stai codificando la cosa sbagliata e un buon rapporto di lavoro con le persone che stanno definendo il prodotto è fondamentale per questo.

Il primo passo potrebbe essere capire un po 'di più su te stesso. Dici di essere felice di rispettare le opinioni degli altri, ma è proprio vero? Se è così, perché intendi che sei incline a prendere posizioni morali su questioni (che tendono ad essere l'opposto del rispetto delle opinioni degli altri)?

Generalmente andare d'accordo con gli altri tende a ignorare chi ha ragione e chi ha torto (che lo crede o non è irrilevante nell'80% delle situazioni) e concentrarsi sul fare tutto ciò che fa progredire il progetto.

    
risposta data 29.11.2010 - 14:51
fonte
3

Lo sviluppo di software professionale oggi è principalmente uno sforzo di squadra. Il miglior software è prodotto attraverso la condivisione di nuove idee e alta collaborazione e non armeggiare con il tuo sé solitario. L'ideale coder per cowboy è un impedimento noto alle squadre. In realtà, è per definizione l'esatto opposto del lavoro di gruppo.

Quindi sì, avere una scarsa capacità di squadra in un ambiente di squadra è molto brutto. Ma se sei onesto disposto a lavorare con esso, non c'è ragione per cui alla fine non sarai un grande collaboratore di squadra (con grandi capacità di codifica per l'avvio)!

    
risposta data 29.11.2010 - 16:26
fonte
3

Altri hanno già coperto la maggior parte di ciò che stavo per dire, quindi aggiungerò questo: solo perché hai un'opinione o una visione non significa che hai ragione o che il tuo approccio è il migliore. C'è molto che puoi imparare dagli altri se apri la tua mente alla possibilità che abbiano anche un'opinione e / o una visione.

Il lavoro di squadra consiste nel far convergere tutte queste opinioni in qualcosa che si basa sull'esperienza collettiva delle persone coinvolte e affronta i difetti che una singola persona potrebbe non aver considerato.

Questa è stata una delle prime lezioni che ho appreso durante il lavoro e sono diventato un programmatore migliore.

    
risposta data 29.11.2010 - 16:46
fonte
2

Sfortunatamente questo può essere un problema, dato che è raro lavorare su progetti di grandi dimensioni e non dover lavorare su un team. Anche se lavori sul progetto in modo interdipendente, scoprirai che devi lavorare più vicino agli utenti finali che tornano al lavoro di squadra, quindi è qualcosa che è molto importante.

Detto questo, tuttavia, come altri hanno sottolineato, questa è un'abilità capace di imparare (in una certa misura) e se ci metti lo sforzo. Ci sono generalmente alcuni corsi che puoi portare qui negli Stati Uniti in città più grandi per sviluppare capacità di leadership; tuttavia, parte dell'essere un buon leader è anche un buon seguace, quindi anche quelle abilità sono sviluppate. Allo stesso modo, essere in grado di comunicare efficacemente in pubblico è a volte un'abilità che le persone hanno bisogno di praticare ed è legata alle abilità di lavoro di squadra ma a volte viene sorvolata - qualcuno che non è in grado di comunicare efficacemente può essere citato come non un "giocatore di squadra", anche se solo bisogno di lavorare sulle loro capacità di comunicazione un po '.

Tuttavia, gran parte del lavoro con una squadra è conoscersi fino in fondo e stare bene con te stesso e con gli altri, quindi a volte non fa male parlare con uno psicologo o un consulente per vedere se c'è qualcosa puoi migliorare riguardo al lavoro con gli altri.

Riguardo alla tua carriera nel suo insieme, qui negli Stati Uniti, avere una reputazione di "essere difficili da lavorare" o "non essere un giocatore di squadra" può essere estremamente dannoso per le tue prospettive di carriera a lungo termine e vorrei azzardare un'ipotesi che sarebbe lo stesso nella maggior parte degli altri paesi. Questa è anche una reputazione difficile da scuotere una volta che è stato stabilito senza spostarsi in un'altra società o forse anche in un'altra industria a seconda del campo in cui lavori.

    
risposta data 29.11.2010 - 14:50
fonte
2

Dato che sei un buon discente, c'è ancora una cosa che dovresti imparare, che alcune persone già conoscono.

  • Tutti sono diversi e sono tutti preziosi.

Ci sono momenti per essere indipendenti, e ci sono momenti in cui stare insieme. Sono entrambi importanti.

Dato che sei a scuola, puoi esercitare la tua curiosità e cercare nuovi e diversi modi di fare le cose. Questa è una buona cosa.

Quando lavori con un team di software, puoi contribuire con le tue buone idee. Alcuni saranno accettati Alcuni non lo faranno. Poi tutti "metti la spalla al volante" e fai il lavoro. Anche questa è una buona cosa.

La mia esperienza sui progetti è che il morale del gruppo è basso all'inizio, quando le persone stanno ancora cercando di mettere a fuoco il quadro generale. Quindi il morale aumenta costantemente man mano che si progredisce verso l'obiettivo. Verso la fine è molto alto come il tuo "bambino" viene ad essere "nato". È qualcosa che non vuoi perdere.

    
risposta data 29.11.2010 - 15:47
fonte
2

Posso pensare a un numero di programmatori eccellenti che sono considerati (da molti) "abbastanza difficili da usare":

In questo settore, penso che una buona parte di noi si aspetti e presupponga che la competenza e la capacità di articolare la nostra competenza siano fondamentali. Dopotutto, andiamo al lavoro per svolgere alcuni compiti al fine di guadagnare soldi, fare amicizia è secondario.

Ad un certo punto della tua vita, ti renderai conto di una di queste due cose:

  1. Sei nella posizione di essere sniffata, ritirata, antisociale, cinica o maleducata come preferisci perché, nonostante il tuo comportamento, le tue abilità (e la capacità di articolare le tue conoscenze) concludono tutti gli argomenti.

  2. Sei proprio come tutti gli altri e devi essere in grado di lavorare in un ambiente di squadra, sopportando (e scuotendo il cervello) comportamenti sgarbati, ritirati, antisociali, cinici e sgarbati da parte di persone le cui abilità e abilità in la conoscenza articolata finisce la maggior parte degli argomenti.

Se stai mettendo in dubbio questo, penso che tu veda alcuni valore partecipando piacevolmente in un ambiente di squadra, e forse "farlo per il gusto di farlo" è una scusa abbastanza buona per esplorare il possibilità.

Anche io sono molto simile a te. Odio le interruzioni, mi ci è voluto la parte migliore di cinque anni solo per imparare come non interrompere e licenziare le persone. Ho anche lavorato a squadre in cui ho imparato di più in un mese di quanto avrei potuto fare in un anno da solo. Non è strano che tu voglia solo persone intorno a te quando tu hai qualcosa di interessante da mostrare o discutere?

Se non l'hai ancora visto, guarda il film " Real Genius ". Presta particolare attenzione a Lazlo Hollyfeld . Entra in una squadra con una mente aperta e sentiti libero di prendere in prestito il mio pigiama.

    
risposta data 29.11.2010 - 16:45
fonte
2

Non c'è niente di sbagliato nell'avere opinioni forti su come dovrebbero essere le cose. Ogni grande programmatore ne ha molti. Tuttavia, è necessario chiedersi: perché sto scrivendo questo codice?

Se è per il tuo divertimento personale e puoi fare tutto il lavoro da solo, allora fai quello che vuoi. Tuttavia, se lo stai facendo per le altre persone, o se hai bisogno di aiuto, o se ti aspetti che altri programmatori lo manterranno dopo essere cresciuto annoiato, dovrai iniziare a prendere in considerazione le esigenze e le nozioni di altre persone.

Avere una visione va bene. Ma fa davvero la differenza se riesci a persuadere altre persone a condividere la tua visione. Gates, Jobs e Torvalds sono riusciti a dare vita alle loro idee realizzando prodotti che servivano molte persone e facendoli acquistare nelle loro visioni. Lavorare esclusivamente a modo tuo è più puro e soddisfacente, ma ha un costo. Puoi, come disse Voltaire, lasciare che il perfetto sia il nemico del bene ("Le mieux est l'ennemi du bien").

    
risposta data 29.11.2010 - 20:38
fonte
2

Se non puoi collaborare con gli altri e non sei un genio stellare di codifica naturale, in pratica ti blocchi per lavorare su qualsiasi progetto non banale, perché per questi vuoi una squadra se non altro abbassando il fattore del bus.

Se non ti piace il contatto fisico, ma lavori bene con il telelavoro o su mailing list open source, allora dovrai specializzarti in quelle abilità che ti permettono di lavorare in quel modo.

    
risposta data 29.11.2010 - 14:46
fonte
1

Il lavoro di squadra è una parte importante dell'ingegneria del software. Se lavori da solo, potresti non essere preoccupato di come sono gli altri e di cosa le persone si aspettano da te. Ma se stai lavorando con un'altra persona, lavorare insieme conta davvero. Quando si parla di software, ciò che intendi per lavoro di squadra è davvero un " comunicare bene ". Dai solo rispetto al tuo collega e sii tollerante di tutte le idee. Dovrebbe andare bene.

    
risposta data 29.11.2010 - 14:33
fonte
1

Se credi in qualcosa, dilla e intendi, ma una volta dimostrato che è sbagliato o superato, accettalo e impara da esso. Il lavoro di squadra non riguarda il fatto di essere sempre d'accordo, ma di avere un modo per arrivare alle migliori soluzioni possibili nella situazione e nei tempi previsti.

    
risposta data 29.11.2010 - 18:44
fonte
1

Dato che ti stai preparando per entrare nel mondo del lavoro, ti dirò qualcos'altro.

I programmatori entry level non sono mai superstar. Non puoi svolgere un lavoro pensando che tu sia migliore di chiunque altro perché in modo dimostrabile, non lo sei. Sei stato in competizione con altre persone al tuo livello, quindi puoi pensare, sono meglio di queste persone, devo essere un grande programmatore.

Ma qualcuno appena uscito da scuola non sa cosa sappia la persona con dieci anni di esperienza professionale. Non lo sai ancora. Ora ammetto che non tutti con molta esperienza sono una superstar e il fatto di essere solo entry level non significa che non si possa essere un programmatore decente. Non significa nemmeno che non puoi diventare una superstar con meno stagionalità di altre persone (beh, alcuni non saranno mai superstar, ma anche questo è OK).

Ma non avrai la credibilità di implementare le tue idee finché non sarai una persona diversa dalla persona più giovane del team. Per ottenere quella credibilità, devi essere un giocatore di squadra. È necessario conoscere il dominio aziendale e il modo in cui le aziende operano. Devi capire che i tuoi bisogni e desideri personali sono irrilevanti sul posto di lavoro nella maggior parte dei luoghi. Stai per essere assunto per fare un lavoro specifico e produrre risultati. Finché non ne avrai prodotti alcuni, le persone saranno scettiche su ciò che suggerisci anche se hai ragione. Devi camminare prima di poter parlare.

    
risposta data 08.12.2010 - 18:12
fonte
0

Finirai a lavorare da solo.
Benefici del lavoro in una squadra:
1- Guida interattiva: non si bloccherà un problema per ore / giorni.
2- Imparerai cose che non troverai nei libri / tutorial online, forum.
3- Concorrenza: alimenterà la tua motivazione per superare i compagni.
4- Discussioni: che è meglio delle ore che leggono libri e blog.

    
risposta data 29.11.2010 - 20:53
fonte

Leggi altre domande sui tag