Quanto può essere grave la mancanza di lavoro di squadra quando sei un programmatore? [chiuso]


17

Sono ancora a scuola e so di avere problemi con le altre persone.

Non sono arrabbiato, timido o diverso, mi piace solo 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 immagino che le persone non vogliano lavorare con me perché potrebbero temere che parlassi di un qualche tipo di morale. (Ad esempio ho iniziato a imparare la programmazione usando Linux invece di Windows, anche se uso Windows molto. E ho un Mac).

Cosa succede ai programmatori a cui manca il 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 fare solo ciò che gli viene detto?


17
Non esiste una professione nel mondo di oggi in cui le abilità comunicative e di lavoro di squadra non sono apprezzate.
Fanatic23,

2
Essere in grado di ammettere di avere un problema è il primo passo per risolverlo e questo è un buon problema per rendersi conto che hai prima che sia troppo tardi!
Chris,

Risposte:


16

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

La buona notizia è che il più delle volte si evolve nella buona direzione. Imparerai come integrarti all'interno di una squadra. Lo amerai! Ma ho incontrato alcune persone che non sono state in grado di farlo 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 pronto ad affrontare alcune difficoltà.

Lo stile di gestione più comune della Francia si basa sulla paura e sulla punizione. Questa non è una buona notizia per te poiché incoraggerà il tuo individualismo. Quindi incoraggerà il tuo comportamento.

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


1
Ho deciso di non usare il grassetto in questa risposta perché mi piace Steven.

15

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

Inoltre, avere una squadra aiuta davvero a ricordarti di tanto in tanto che scrivi codice di merda. :

Come sviluppatore di software, sei il tuo peggior nemico. Prima lo capirai, meglio sarai. - Jeff Atwood

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


2
+1 Eccellente da ricordare. Gli sviluppatori unici rimangono bloccati in una carreggiata e dimenticano che in realtà non sono fantastici.
orbita il

15

Cosa succede ai programmatori a cui manca il lavoro di squadra?

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

Dove iniziano i problemi?

Tutti i tipi di posti. Al momento abbiamo un solo programmatore che non è in grado di lavorare in team. Tende a fare scorciatoie che hanno effetti negativi sul resto dell'applicazione perché si concentra troppo sul risolvere il bug di fronte a lui. O scrivendo 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 del codice venga esaminato dal resto del team. Ma al fine di non individuarlo, esaminiamo anche i controlli del codice di tutti gli altri, quindi insieme alla riunione dello stato del mattino, non facciamo alcun lavoro fino a dopo pranzo. Quindi nel nostro ufficio, ciò significa che 4 persone stanno perdendo 1/2 giornata di lavoro ogni giorno perché un ragazzo è pessimo 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 (chiamiamo quei "furti"). Alcune delle correzioni del suo codice finiranno per eliminare una mezza dozzina di bug a causa di quanto aggrovigliata e disordinata l'applicazione (la mia raccomandazione aammazzalo dall'orbita e ricomincia da capo perché questo è l'unico modo per essere sicuro che non sia stato accettato).

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

Essere un buon programmatore compensa almeno un po '?

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

Forse: il programmatore solista dovrebbe essere molto meglio del 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à in giro molto tempo dopo la tua partenza. Molto probabilmente i programmi sono stati scritti prima di iniziare e verranno mantenuti molto tempo dopo la tua scomparsa. Se scrivi cose che sono così speciali e sorprendenti che nessun altro può capirle, allora finisci nella situazione in cui si trova Naughty Dog - il loro sviluppatore principale ha smesso, nessun altro capisce il linguaggio di programmazione proprietario che il ragazzo ha scritto (e scritto cose in), quindi ora devono cambiare tutto in C ++.

È normale per un programmatore avere una visione del suo lavoro invece di fare solo ciò che gli viene detto?

È comune - come un ingorgo o il diabete. Non lo definirei normale. Nel mondo aziendale, ci sono molte altre cose da considerare; il forte ego che molti sviluppatori hanno in genere fa pensare allo sviluppatore che nient'altro conta. Questa "mancanza di adattamento" e la mancanza di considerazione per il resto del business è il motivo per cui così tanti tipi di manager giungono alla conclusione che gli sviluppatori di software sono difficili da lavorare.


Sì, ho già pensato a questo effetto senza sapere che aveva un qualche tipo di nome su qualche scienziato. A questo punto non sai mai se sei un genio dubbioso o una persona stupida arrogante. Non penso di essere arrogante, ma pensando che ci sia molta confusione e stupidità in questo mondo, non so se questo significhi essere arrogante. So solo di non dichiarare espressamente di avere ragione, almeno esprimo le cose con domande, così le persone possono esprimere il loro pensiero. Quando mi viene detto che gli elenchi collegati sono l'ultimo tipo di struttura di dati, sono scettico, ma non arrogante.
jokoon

È un po 'difficile chiamare recensioni di codici una perdita di tempo.
jfs,

5

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

Se non riesci a 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 velocemente.


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 sono riusciti ad andare d'accordo con le persone - potrebbe non essere stato naturale per loro, ma ci sono riusciti ed è stata un'abilità assolutamente chiave. Coloro che non potevano essere tollerati, ma in onestà non molto di più.

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

Il primo passo potrebbe essere quello di capire qualcosa in più su di te. Dici di essere felice di rispettare le opinioni degli altri, ma è davvero vero? Se è allora perché insinui che sei incline ad assumere 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 ci crediate o no è irrilevante nell'80% delle situazioni) e concentrarsi sul fare qualunque cosa faccia avanzare il progetto.


3

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

Quindi sì, avere scarse abilità di squadra in un ambiente di squadra è molto male. Ma se sei onestamente disposto a lavorarci, non c'è motivo per cui alla fine non sarai un grande collaboratore del team (con ottime capacità di programmazione per l'avvio)!


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 anche loro abbiano un'opinione e / o una visione.

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

Questa è stata una delle prime lezioni che ho imparato sul lavoro e dopo sono diventato un programmatore migliore.


2

Se non riesci a collaborare con gli altri e non sei un genio stellare programmatore nato in modo naturale, sostanzialmente ti blocchi per lavorare su qualsiasi progetto non banale, perché per questi desideri una squadra se non altro che abbassare il fattore bus.

Se semplicemente 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 consentono di lavorare in quel modo.


2

Sfortunatamente questo può essere un po 'un problema in quanto è raro lavorare su grandi progetti e non dover lavorare in gruppo. Anche se lavori su progetti in modo interdipendente, generalmente scoprirai che devi lavorare più vicino con gli utenti finali, che tornano tutti al lavoro di squadra, quindi è qualcosa di molto importante.

Detto questo, però, come altri hanno sottolineato, questa è un'abilità imparabile (in una certa misura) e se ci metti lo sforzo. In genere ci sono alcuni corsi che puoi seguire qui negli Stati Uniti nelle città più grandi per sviluppare capacità di leadership; tuttavia, parte dell'essere un buon leader è anche essere un buon seguace, quindi anche quelle abilità vengono sviluppate. Allo stesso modo, essere in grado di comunicare efficacemente in pubblico a volte è un'abilità con cui le persone hanno bisogno di esercitarsi ed è correlata alle abilità di lavoro di squadra ma a volte è mascherata - qualcuno che non è in grado di comunicare efficacemente potrebbe essere citato come non "giocatore di squadra" anche se Devo solo lavorare un po 'sulle loro capacità comunicative.

Tuttavia, gran parte del lavoro con una squadra è conoscere te stesso in una certa misura e sentirti a tuo agio 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 che puoi migliorare per quanto riguarda il lavoro con gli altri.

Per quanto riguarda la tua carriera nel suo insieme, qui negli Stati Uniti, avere la 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 rischierei di indovinare che sarebbe lo stesso nella maggior parte degli altri paesi. Questa è anche una reputazione difficile da scuotere una volta che è stata stabilita senza spostarsi in un'altra azienda o forse anche in un altro settore a seconda del campo in cui lavori.


2

Dato che sei un bravo studente, c'è un'altra cosa che dovresti imparare, che alcune persone già conoscono.

  • Ognuno è diverso e sono tutti preziosi.

Ci sono momenti per essere indipendenti e ci sono momenti per mettere insieme. Sono entrambi importanti.

Dato che sei a scuola, puoi esercitare la tua curiosità e cercare modi nuovi e diversi 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 no. Quindi tutti "mettete la spalla al volante" e completate il lavoro. Anche questa è una buona cosa.

La mia esperienza sui progetti è che all'inizio c'è un morale di gruppo, quando le persone stanno ancora cercando di mettere a fuoco il quadro generale. Quindi il morale aumenta costantemente man mano che si fanno progressi verso l'obiettivo. Verso la fine è molto alto quando il tuo "bambino" diventa "nato". È qualcosa da non perdere.


+1 Verso la fine è molto alto quando il tuo "bambino" diventa "nato". - Nel mio ultimo progetto, mi sentivo esattamente così :-).
Oliver Weiler,

@Helper: Sì. Quello che non ho detto è che torna di nuovo basso quando inizi la fase successiva :)
Mike Dunlavey,

Ma questi momenti preziosi sono il motivo per cui siamo programmatori, giusto :-)?
Oliver Weiler,

2

Mi viene in mente un numero di eccellenti programmatori che sono considerati (da molti) "abbastanza difficili da lavorare":

In questo settore, penso che una buona parte di noi si aspetti e supponga che la competenza e la capacità di articolare la nostra competenza siano fondamentali. Dopotutto, andiamo a lavorare per svolgere alcune attività al fine di guadagnare denaro, fare amicizia è secondario.

Ad un certo punto della tua vita, realizzerai una di queste due cose:

  1. Sei in grado di essere il più furbo, ritirato, antisociale, cinico o maleducato a tuo piacimento perché, nonostante il tuo comportamento, le tue capacità (e la capacità di articolare le tue conoscenze) pongono fine a tutti gli argomenti.

  2. Sei come tutti gli altri e devi essere in grado di lavorare in un ambiente di squadra, mentre sopporti (e prelievo del cervello) comportamento furtivo, ritirato, antisociale, cinico e scortese da parte di altri le cui abilità e competenza nell'articolazione della conoscenza pongono fine alla maggior parte degli argomenti.

Se lo stai mettendo in dubbio, penso che tu abbia un certo valore nel partecipare piacevolmente a un ambiente di squadra, e forse "farlo per il gusto di farlo" è una buona scusa per esplorare la possibilità.

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

Se non l'hai ancora visto, goditi una visione del 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.


2

Non c'è nulla di sbagliato nell'avere opinioni forti su come dovrebbero essere le cose. Ogni grande programmatore ne ha in abbondanza. Tuttavia, devi chiederti: perché sto scrivendo questo codice?

Se è per il tuo divertimento e puoi fare tutto il lavoro da solo, fai quello che ti pare. Tuttavia, se lo stai facendo per essere utilizzato da altre persone, o se hai bisogno di aiuto, o se ti aspetti che altri programmatori lo manterranno dopo esserti 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 solo se riesci a convincere altre persone a condividere la tua visione. Gates, Jobs e Torvalds sono riusciti tutti a dare vita alle loro visioni realizzando prodotti che servivano molte persone e facendoli comprare nelle loro visioni. Lavorare puramente a modo tuo è più puro e soddisfacente, ma ha un costo. Potresti, come diceva Voltaire, lasciare che il perfetto sia nemico del bene ("Le mieux est l'ennemi du bien").


1

Il lavoro di gruppo è una parte importante dell'ingegneria del software. Se lavori da solo, potresti non preoccuparti di come sono gli altri e di cosa le persone si aspettano da te. Ma se lavori con un'altra persona, lavorare insieme conta davvero. Quando si tratta di software, ciò che intendi per lavoro di gruppo è davvero un " bene comunicativo ". Rispetta il tuo collega e sii tollerante con tutte le idee. Dovrebbe andare bene.


1

Se credi a qualcosa, dillo e intendi, ma una volta dimostrato sbagliato o superato, accettalo e impara da esso. Il lavoro di squadra non consiste nel concordare continuamente, ma nell'avere il modo di raggiungere le migliori soluzioni possibili nella data situazione e nel periodo di tempo.


1

Dato che ti stai preparando per entrare nella forza lavoro, ho intenzione di sottolineare qualcos'altro.

I programmatori entry level non sono mai superstar. Non puoi entrare in un lavoro pensando di essere migliore di tutti gli altri perché, evidentemente, non lo sei. Hai gareggiato con altre persone al tuo livello, quindi puoi pensare, io sono migliore di queste persone, devo essere un grande programmatore.

Ma qualcuno appena uscito dalla scuola non sa cosa sa la persona che ha dieci anni di esperienza professionale. Semplicemente non lo sai ancora. Ora ammetto che non tutti con molta esperienza sono una superstar e solo essere entry level non significa che non puoi essere un programmatore decente. Non significa nemmeno che non puoi diventare una superstar con meno condimenti di altre persone (beh, alcuni non saranno mai superstar, ma va bene lo stesso).

Ma non avrai la credibilità di realizzare le tue idee fino a quando non sarai qualcosa di diverso dalla persona più giovane della squadra. Per ottenere quella credibilità, devi essere un giocatore di squadra. Devi conoscere il dominio aziendale e il modo in cui operano le imprese. 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. Fino a quando non ne avrai prodotto alcuni, le persone saranno scettiche su qualsiasi cosa tu suggerisca, anche se hai ragione. Devi camminare prima di poter parlare.


Non mi interessa essere una superstar o non esserlo, in realtà non mi interessa. Preferisco pensare alla mentalità e al modo in cui le persone pensano e / o preferiscono tali o tali cose. Si tratta più delle opinioni e della conoscenza di ciò che accade in quel settore che di qualcos'altro. Non penso che un programmatore sia migliore di un altro perché uno ha fatto le sue prove e penso che le persone dovrebbero semplicemente provare a ignorare quei punti.
jokoon

Un esempio: un giorno ho letto un documento chiamato "il lato oscuro del C ++" e ho deciso di inserire un'unità di rete nel caso in cui alcuni curiosi decidessero di leggerlo. Il nostro insegnante di programmazione ha commentato questo documento e ha ritenuto che fosse una buona lettura. Non importa che sia più prezioso di altri programmatori, ma dimostra che posso essere una buona fonte per insegnare ad altri che potrebbero non avere la stessa curiosità che ho.
jokoon

0

Finirai per lavorare da solo.
Vantaggi del lavoro in gruppo:
1- Aiuto interattivo: non rimarrai bloccato in un problema per ore / giorni.
2- Imparerai cose che non troverai nei libri / tutorial online, forum.
3- Competizione: alimenterà la tua motivazione per superare i compagni.
4- Discussioni: che è meglio di ore a leggere libri e blog.

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.