Come gestire uno sviluppatore che ha scarse capacità comunicative


52

Gestisco un piccolo team di sviluppatori su un'applicazione che si trova a metà del suo ciclo di vita, all'interno di una grande azienda. Questo purtroppo significa che esiste comunemente una suddivisione 30/70 delle attività di programmazione in "altri lavori tecnici". Questo lavoro include:

  • Lavorare con i team DBA / Unix / Network / Loadbalancer su varie attività
  • Effettuare e gestire ordini per hardware o infrastruttura in diverse regioni
  • Esecuzione di test che non sono stati ancora migrati in CI
  • Analisi
  • Supporto / indagine

È giusto dire che gli sviluppatori preferirebbero tutti programmare, piuttosto che svolgere questi compiti più banali, quindi provo a distribuire i divertenti lavori di programmazione in modo uniforme tra il team.

Gran parte del team è stato assunto perché, sebbene non abbiano le capacità di programmazione d'élite per scrivere il proprio compilatore / motore di gioco / sistema di trading ad alta frequenza ecc., Sono buoni comunicatori che "possono fare cose", lavorare con altri team e in qualche modo navigare nella complessa burocrazia qui. Sono buoni sviluppatori, ma sono anche un buon personale tecnico a tutto tondo.

Tuttavia, un membro del team ha probabilmente capacità di codifica superiori alla media, ma capacità di comunicazione inferiori alla media. Tradizionalmente, il precedente responsabile dello sviluppo tendeva a assegnargli le attività di programmazione e non quelle più banali sopra elencate. Tuttavia, non ritengo che ciò sia corretto per il resto del team, che ha mostrato un'attitudine per lo sviluppo di un insieme di competenze completo che è comunemente richiesto in un dipartimento IT di grandi aziende.

Cosa dovrei fare in questa situazione? Se continuo a dargli più lavoro di programmazione, so che sarà fatto più velocemente (e al contrario, mi aspetterei che completasse l'altro lavoro più lentamente). Ma va contro i miei principi e promuove l'idea che puoi ritagliarti una "nicchia confortevole" semplicemente facendo il cattivo con i compiti che non ti piacciono.

Voglio chiarire che non sto cercando di affrontare questo problema a causa di un rancore, o che ho un "chip sulla spalla", come è stato menzionato. Sto cercando consigli su come mantenere una squadra a tutto tondo, che è felice e motivato. Osservando la varietà di risposte a questa domanda, sembra che ci siano molte opinioni diverse su come raggiungere questo obiettivo.


15
Sai che tutti i membri del tuo personale preferiscono programmare sugli altri compiti? So che in un'azienda con cui lavoravo avevamo alcune che preferivano il debug di app esistenti mentre altre preferivano scrivere nuovo codice. Quindi alcuni hanno preferito lavorare sulle nostre app Web, mentre altri hanno preferito lavorare sul nostro sistema legacy.
programmatore

12
In che modo ha mostrato scarse capacità comunicative? Non inserendo il tuo stampo?
James,

5
@EvanPlaice Ancora una volta, cos'è con l'attacco "problema personale"? Ho detto nella domanda "È giusto dire che tutti gli sviluppatori preferirebbero essere in codice". Forse questa frase non è stata abbastanza chiara e ha introdotto dubbi, quindi lasciatemi chiarire: ho parlato con gli sviluppatori individualmente e mi hanno detto che si divertono a lavorare su compiti di programmazione più degli altri compiti. Se così non fosse, onestamente non avrei bisogno di porre questa domanda.
djcredo,

2
@djcredo Non intendevo questo come un attacco. Sto dicendo che penso che tu stia facendo la domanda sbagliata. Cercare di rendere le cose più uguali secondo i tuoi standard personali di una squadra "ideale" significa sovrapporre la tua volontà alla squadra. Alle persone, in particolare ai programmatori di talento (leggi volutamente), non piace essere giocate. Se, come dici tu, stai lavorando con persone competenti / di talento, l'approccio top-down potrebbe fallire. Invece di decidere per il team perché non chiedere loro direttamente cosa deve cambiare per consentire una migliore comunicazione tra il team.
Evan Plaice,

6
Perché "ritagliarsi una nicchia per te" è una brutta cosa? Vuoi il miglior neurochirurgo che puoi ottenere per eliminare il tumore al cervello e il miglior cardiologo che puoi trovare per riparare l'aorta allargata, o vuoi lo stesso ragazzo che va bene in entrambi i campi ma non eccellente in entrambi per fare entrambe le cose per voi?
GordonM,

Risposte:


77

Sembra che tu stia facendo troppi sforzi per avere individui a tutto tondo e non abbastanza per avere una squadra a tutto tondo .

Non c'è niente di sbagliato nell'essere bravo in qualcosa - in effetti, probabilmente è per questo che è stato assunto! Dovresti essere grato di avere qualcuno che è bravo a programmare per cominciare.

Hai dichiarato:

... va contro i miei principi e promuove l'idea che puoi ritagliarti una "nicchia confortevole" semplicemente facendo il cattivo con i compiti che non ti piacciono.

Se fosse un programmatore mediocre, sarei d'accordo. Ma non l'hai detto. Hai detto che era un buon programmatore. Non è cattivo con gli altri compiti per uscirne - si limita a concentrare i suoi sforzi per diventare un programmatore migliore. Non c'è niente di sbagliato in questo.

Come manager, non è tuo compito assicurarti che tutti siano "ben arrotondati". È tuo compito assicurarti che s *** sia fatto. E non lo stai facendo. In effetti, stai prendendo decisioni che impediscono di fare le cose.

Qualunque problema tu abbia, devi superarlo - stai rendendo la tua squadra meno produttiva.


22
Quindi, se il programmatore di ranger solitario viene colpito da un autobus, è meglio assicurarsi che le sue capacità comunicative siano abbastanza buone da documentare che diamine stesse facendo e dove si trovasse nel suo progetto.
programmatore

8
@JasonHolland, c'è una differenza tra "Buono" e "Buono abbastanza". Finché è abbastanza bravo, non c'è motivo di risolvere il problema. L'op sta prendendo seriamente in considerazione di danneggiare la produttività della sua squadra perché non pensa che sia "giusta". (Ricordami ancora, chi ha detto che il mondo è giusto?)
riwalk

14
@JasonHolland, l'operatore ha anche detto: "Se continuo a dargli più lavoro di programmazione, so che sarà fatto più velocemente ..." Questo mi dice che quel ragazzo deve essere programmatore. L'op ha un chip sulla spalla, e questo è il vero problema qui.
riwalk

10
Nessuna patatina sulla spalla - sto semplicemente chiedendo un consiglio di gestione in un'area in cui sono attualmente debole. Immagino che sto cercando di lottare per l'equità per promuovere il morale della squadra nel lungo periodo, anche se questo significa sacrificare un po ' del potenziale di consegna a breve termine. Fai un punto eccellente sul fatto che investire per essere un eccellente programmatore, dovrebbe essere ricompensato per i suoi sforzi, quindi ho accettato questa risposta.
djcredo l'

10
@ Stargazer712, "L'op ha un chip sulla spalla, e questo è il vero problema qui." Questo può essere vero, ma guardalo dal punto di vista dei programmatori "medi" che vengono indirizzati verso attività non di programmazione a causa di un ragazzo che ha abilità di programmazione "sopra la media". Direi che questo manager non sta facendo il suo lavoro di sviluppo professionale per gli altri. Forse il "sopra la media" è più abile perché fa più programmazione? Forse gli altri programmatori "medi" diventerebbero "sopra la media" se ricevessero più lavoro di programmazione, i progetti futuri verrebbero realizzati ancora più velocemente.
programmatore

39

Stai prendendo un po 'di calore qui nelle altre risposte per la tua decisione di "fare qualcosa" per questo ragazzo, ma ho capito appieno quello che stai dicendo. Se gli altri membri del team "preferiscono tutti codificare, piuttosto che svolgere questi compiti più banali", saranno infastiditi dal fatto che stai ricompensando le cattive prestazioni del povero comunicatore dandogli solo i compiti che tutti vogliono.

Immagina di essere uno dei "bravi comunicatori" della squadra le cui abilità sono paragonabili al dev in questione. Gestisci le chiamate, lavori con altro personale non IT che conosce a malapena un mouse da una tastiera, elabora piani per la disconnessione dell'utente e altro ancora, tutto perché il tuo capo dice di farlo. Lo scontroso dev, nel frattempo, perché ha "scarse capacità comunicative", riesce a sedersi tutto il giorno nel suo cubo ignorando gli utenti che lavorano solo su cose "divertenti".

Ora hai detto che lo scontroso devoto ha abilità "sopra la media", ma non hai detto che era il migliore. Ciò significa che forse 1/3 della tua squadra, quei bravi sviluppatori di comunicatori che sono il livello di abilità dello sviluppatore scontroso o superiore, si sentono tutti incazzati.

Vale la pena perdere un po 'di produttività dal tuo MIGLIOR PERSONALE PERFORMANTE perché sono infastiditi dal burbero-dev? Dovrai decidere.

A meno che tu non voglia licenziare il ragazzo, ti suggerisco di adottare uno di questi approcci:

1) Mentor per essere un comunicatore migliore. Solo tu puoi dire se questo è fattibile. Potresti scoprire che tenerlo un po 'di più potrebbe aiutare. Alcune persone sono terrorizzate dalle interazioni commerciali formali ed esprimono il fatto di essere incazzate quando gli viene chiesto di farlo.

2) Incentivare la "buona comunicazione", con denaro o altri benefici. Metti in chiaro che apprezzi davvero i buoni comunicatori e quindi i tuoi sviluppatori non saranno così infastiditi, ma la ricompensa deve essere reale e significativa. "Il pranzo con il direttore del distretto" non lo taglierà. Nemmeno un premio "star player / kudos / attaboy" è solo un pezzo di carta. Devono essere soldi extra, ferie extra, un po 'di tempo flessibile, qualche riconoscimento serio con i superiori che controllano gli aumenti salariali, ecc


11
In realtà ha menzionato che il povero comunicatore era un artista migliore. Perché dovresti sostenere Premiare le buone prestazioni di questo ragazzo con un lavoro meno adatto? Sono un grande sostenitore del concetto secondo cui tutti hanno i loro punti di forza e dovrebbero giocare con loro. Se sono debole in un'area, spero che il manager abbia la possibilità di completare la squadra con qualcuno che era forte in quell'area, e quindi NON farci cambiare lavoro!
Bill K,

3
@BillK, "Tuttavia, un membro del team ha probabilmente capacità di codifica superiori alla media". Non ha detto di essere il "migliore". Ho preso una pugnalata e ho detto che era meglio di 2/3 degli altri sviluppatori. Ciò lascia 1/3 degli sviluppatori che sono altrettanto bravi o migliori di questo ragazzo, che deve fare un lavoro extra che non è così divertente come quello che riesce a fare tutto il tempo ("tutti preferiscono essere in codice"). Ti piacerebbe se uno dei tuoi colleghi dicesse "Non mi piace eseguire Test di unità quindi devi eseguire tutti i miei per me"? Ti annoierai abbastanza in fretta. L'atteggiamento cattivo di questo ragazzo gli sta dando una ricompensa (compiti meno non codificanti).
Graham,

9

Prima di tutto, dare la colpa ai membri del tuo team ... denota scarse capacità manageriali.

Voglio dire, se ha davvero scarse capacità comunicative, mi dispiace molto per la sua vita sociale, ma davvero, sul lavoro questo non è tanto un suo problema quanto un tuo . E ammettiamolo, in realtà potrebbe essere annoiato dal tuo noioso ambiente di lavoro, o avere problemi privati ​​che influenzano la sua performance, o essere segretamente complotto per ucciderti tutti.

La comunicazione richiede almeno due, e dopotutto, quello con le abilità dei poveri potresti essere tu. Non importa che il resto dei membri del team vada d'accordo abbastanza bene, potrebbero tutti compensare (anche inconsapevolmente) per qualche carenza di comunicazione che hai e ignorare beato.

E comunque, non andare in giro a chiedere a Internet di persone che sono seduti a tre scrivanie da te, vai al ragazzo e chiedigli se c'è davvero qualcosa che non va e se può essere risolto. (o qualcosa di noioso che può essere ottimizzato o migliorato)

Forse odia solo la sua posizione sulla scrivania (sta affrontando i bagni?) E questo lo mette di cattivo umore.

Suggerimento: ascolta la risposta, come se fosse un essere umano senziente, non una risorsa umana.

(ad esempio: prova a spiegargli in dettaglio la necessità di determinate pratiche e il significato di determinate decisioni, alcune persone scavano dettagli, dato che danno loro la sensazione di avere un capitano che non sta guidando la nave verso le scogliere)


9
-1: Non sta incolpando nessuno. Ha identificato che un ragazzo è più povero nel comunicare, e di conseguenza è riuscito a schivare alcuni dei lavori più noiosi che altri devono fare. Non sono sicuro di come tu concluda che ciò denota una cattiva gestione, o che l'OP lotta per comunicare ... Detto questo, sono pienamente d'accordo che parlare con il ragazzo in questione dovrebbe far parte di qualsiasi soluzione.
cjmUK,

1
@cjmUK Ciò che questo risponditore sta sottolineando è che mancando di tutte le informazioni è difficile prendere una decisione. Ad esempio, mia moglie lavorava per qualcuno che pensava che mia moglie fosse orribile, ora mia moglie lavora con le persone ed è considerata una performante. Quindi mia moglie è il problema o è stato il collega il problema?
Paul,

3
-1 Penso che non sia necessario dire che ho scarse capacità di gestione perché incolpo le persone. È un bravo ragazzo e forse c'è una buona ragione per cui è meno comunicativo. Le mie azioni nel trattare questa questione sono duplici: a) tentare di porre rimedio alla situazione con lui eb) decidere come allocare il lavoro in base alle prestazioni passate del team. Sto "chiedendo aiuto a Internet" con l'opzione b)
djcredo l'

2
+1 "Suggerimento: ascolta la risposta, come se fosse un essere umano senziente, non una risorsa umana." Se solo più manager la pensassero così ... sospiro.
demongolem,

8

Le persone sono diverse. Come manager, devi trattare le persone in modo diverso (ma equamente!) Per ottenere il massimo dalla tua squadra.

Detto questo, è probabilmente utile per lo sviluppatore con scarse competenze trasversali lavorare su di essi. Vorrei scoprire quale cosa non codificante piaccia (o che vorrebbe fare) allo sviluppatore che coinvolge più di quelle soft skills. Coinvolgili in tale compito e idealmente miglioreranno le abilità trasversali come effetto collaterale.

Le persone spesso non sono cattive in qualcosa per uscire dal lavoro; sono cattivi perché non gli piacciono o hanno un'attitudine per questo. Non puoi aiutare il secondo, quindi lavora sul primo.


6

La divisione 30/70 potrebbe essere il punto in cui iniziano tutti i problemi. Non ho mai visto sviluppatori contenti di dividere in quel modo.

Ho visto gli sviluppatori sentirsi a proprio agio con il 10, il 15% di altri lavori (e sono stato felice anche io perché è divertente quando la dose è giusta) ma il 30% è troppo. Preferirei che altri membri del team preferissero non esprimere la propria opinione rispetto a chi non ama "il 30% di altri lavori".

Penso anche che sia importante adattare la tua "matematica della produttività" a cifre più realistiche. Non aggiungerà mai fino al 100% a causa di inevitabili perdite a "cambi di contesto".

  • 30 + 70, che sommano fino al 100% di produttività quando si passa dalla programmazione ad altri lavori , non accadranno mai nella vita reale; è più probabile circa 20 + 50 o anche 20 + 40. I cambi di contesto sono particolarmente dolorosi per gli sviluppatori di software: se sei interessato, consulta questo articolo per una bella spiegazione del perché: NON svegliare il programmatore!
    I programmatori che apprezzano la loro produttività sarebbero naturalmente scontenti di perdite del genere.

Per quanto riguarda l' esecuzione di test parte del lavoro, hai preso in considerazione l'idea di passarlo ai tester? Il fatto che i programmatori possano farlo (penso che qualsiasi programmatore esperto dovrebbe essere in grado di farlo) non significa che dovrebbero farlo . Anche i tester possono farlo, e lo fanno meglio, e non subiranno perdite di produttività a "cambi di contesto".

Un altro punto che mi fa domandare come si utilizzano le risorse di QA è la tua menzione di supporto / investigazione . Tester professionisti con cui lavoravo tendono ad avere "prima voce" in cose del genere.

  • Come ex tester, li capisco abbastanza bene - i problemi di produzione sono stati per me (come tester) una preziosa fonte di dati per conoscere la copertura dei test ("questo problema è stato adeguatamente coperto dai miei test?") E per prioritizzazione dei difetti ("ok, è stato coperto dai test e riportato prima del rilascio, ma allora ho impostato la priorità / gravità appropriata?").

È abbastanza facile per un buon tester scoprire quando passare agli sviluppatori l'indagine sul problema del supporto e ciò non accade molto spesso. I motivi per sovraccaricare gli sviluppatori con questo semplicemente sfuggono alla mia mente. Come ho già scritto, sicuramente possono farlo (generalmente mi aspetto che uno sviluppatore senior sappia come fare qualsiasi cosa il QA), ma ciò non significa che dovrebbero .


4

Ho 2 cose da dire su questo

  1. Hai reclutato un programmatore o uno sviluppatore di software?
    Quando stai prendendo in considerazione uno sviluppatore di software, tutte le cose che hai menzionato sono parte integrante dello sviluppo del software. Non puoi ignorare nessuna di queste se non ti sei reclutato per un compito specifico. IMO Il 50% dello sviluppo totale del software è in codice, mentre tutto è progettazione, analisi, prove, documentazione, ecc.

  2. Nessuno è nato perfetto.
    Non riesco proprio a trovare una persona brava in tutto. Devi farli lottare e far loro imparare le cose.

Come manager devi ottenere il meglio da loro, sono d'accordo, ma a lungo termine potresti incontrare dei problemi. Assegna loro compiti leggeri in modo che tendano ad afferrarli. Esci da loro la sensazione di non essere bravo in questo / non posso permettermi di farlo . Soprattutto trattate tutti allo stesso modo che otterranno il risultato più efficiente dal vostro team.


+1 - Sono d'accordo con entrambi i punti. Uno sviluppatore dovrebbe essere ragionevolmente completo. E con il giusto sostegno e incoraggiamento, potrebbe non esserci motivo per cui il ragazzo non riesca a giocare.
cjmUK,

Sì, "coder" vs "software dev" è un ottimo modo per inquadrarlo. Ovviamente tutti vogliamo solo scrivere un codice divertente. Ma fare tutte le altre cose che ne derivano è in realtà il motivo per cui la maggior parte di noi viene pagata. Posso off-shore programmatori all'istante. Off-shoring gli sviluppatori di software che comprendono il dominio aziendale esistente è molto, molto più difficile.
Graham,

@Graham è quello che forse ti rende una risorsa dell'azienda
Shirish11

4

Se tutti i membri del tuo staff hanno lo stesso titolo / descrizione del lavoro e la descrizione del lavoro include tutto ciò che hai elencato, allora questo programmatore ha bisogno di affinare queste altre abilità assegnando più di queste altre attività non programmatore. Allo stesso modo, gli altri membri del personale non avranno le proprie capacità di programmazione affinate se devono lavorare continuamente su attività non di programmazione (utilizzarlo o perderlo).

Ma penso ancora che la tua priorità principale dovrebbe probabilmente rispettare le tue scadenze (cosa che potresti comunque riuscire a fare mentre distribuisci il lavoro in modo uniforme).

EDIT: Se hai una piccola squadra, probabilmente ha senso avere tutti i membri in grado di indossare più cappelli. Se hai una squadra abbastanza grande, probabilmente ha senso avere gruppi specializzati in diverse aree. Dal tuo post sembra che tu non abbia una squadra abbastanza grande per avere gruppi di specialisti.


4

Dal tuo post originale non è chiaro cosa manchi esattamente delle capacità comunicative di questo sviluppatore. Una mancanza di interesse nell'andare alle riunioni o svolgere attività di pianificazione / coordinamento (ad esempio) non indica necessariamente scarse capacità comunicative. Forse lo sviluppatore sente semplicemente che questo tipo di lavoro è un lavoro da manager e riduce la sua produttività come sviluppatore? O forse ritiene che ci sia un eccessivo sovraccarico organizzativo e questa è una forma di protesta contro ciò che ritiene sia solo tempo sprecato? Dopotutto, il problema opposto in cui le persone parlano tutto il giorno e non fanno mai nulla è abbastanza comune in ufficio.

È importante che parli con questo sviluppatore in modo non conflittuale e cerchi di capire perché evita i compiti di non programmazione. Probabilmente non è un singolo motivo, potrebbe avere tanti motivi diversi quanti sono i diversi tipi di attività. Assicurati che capisca che lo scopo della conversazione è in modo da poter imparare a migliorare efficacemente la produttività del team e la soddisfazione del lavoro per tutti i membri del team (non sei pronto a prenderlo). Questo è il momento per te di ascoltare, di non discutere o cercare di affrontare le sue preoccupazioni con reazioni istintive. Probabilmente dovresti anche incontrare gli altri membri del team, forse stanno benissimo nel lasciare che questo ragazzo faccia il lavoro degli sviluppatori pesanti mentre si concentrano sul lato più chiacchierone della professione.

Dopo questo incontro, passa un po 'di tempo a pensare alle conversazioni che hai avuto e prova a considerare la prospettiva di questo dipendente con una mente aperta. Forse i tuoi sentimenti iniziali erano corretti e gli mancano alcune abilità importanti che dovresti spingerlo a sviluppare. O forse ha fatto alcune valide sfide ai tuoi presupposti. Forse puoi lavorare con altri team per formalizzare alcuni processi e ridurre la necessità di comunicazioni ridondanti. Forse altre squadre non stanno tirando il loro peso e devi fare una chiacchierata amichevole con la loro gestione. Ci sono molte possibilità che potresti non prendere in considerazione.

Infine, e, soprattutto, avere una conversazione di follow-up con le persone o una riunione di gruppo, se appropriato. Se hai identificato problemi organizzativi reali che sono in tuo potere per influenzare, informa i tuoi dipendenti delle azioni che intendi intraprendere per migliorare la loro situazione lavorativa. Se ritieni ancora che il singolo dipendente abbia torto, siediti con lui e spiega quali cambiamenti hai bisogno da lui e perché. Gli sviluppatori tendono a rispondere bene alle spiegazioni logiche / pratiche. "Non è giusto per i tuoi colleghi darti tutto il lavoro divertente. Vorremmo che tutti voi fossero puri sviluppatori, ma questa non è la realtà della situazione, quindi dobbiamo condividere il peso del lavoro schifoso."

Certo, se questo ragazzo è solo un coglione scontroso, si rifiuta di dirti perché è infelice, non risponderà alla ragione e non è ben rispettato dai suoi colleghi ... beh ... è il momento del Piano di miglioramento delle prestazioni.


2

Anche se stai cercando di gestire una squadra e vuoi mantenere tutti motivati ​​(avere un senso di correttezza aiuta), ma stai sacrificando il progetto non avendo la tua migliore programmazione programmatore? Voglio dire, non è questo il punto.

Non hai paura di sottoutilizzare e / o rischiare di perdere il tuo miglior sviluppatore? Il tuo compito è cercare di alleviare questo tipo di doveri da tutti.

Essere trattati allo stesso modo non significa che trattate tutti allo stesso modo. Se gli altri vogliono allentare i compiti di non programmazione per poter assegnare più compiti di programmazione, non corrono il rischio di essere bravi in ​​nessuno dei due?

EDIT: Oltre ai tuoi sentimenti personali, non hai identificato un problema. Ad un certo punto la mancanza di comunicazione ostacola un programmatore. Altri mostreranno risentimento e il loro lavoro potrebbe risentirne. Finora, sembra che tu sia l'unico ad avere un problema. A meno che non ci sia qualcos'altro che non stai condividendo?

EDIT 2 Alla fine, tutti chiederanno un favore speciale. Questa persona fa meno comunicazioni e più codifica (cosa che dovrebbe per tutti gli account). Qualcun altro vuole venire un po 'più tardi. Un altro dovrà saltare una riunione per rispettare una scadenza. Una persona grafica ottiene un monitor più grande. Quando poni troppa enfasi sul mantenimento del punteggio, dimentichi ciò che è importante.


Nessuno ha detto che era il miglior programmatore. E anche se lo fosse, non c'è nulla da dire che richiedere che adempia a un ruolo più ampio è sbagliato. Concordo sul fatto che essere onesti non significa necessariamente trattare tutti come cloni , ma potrebbe esserci una via di mezzo, in cui alle persone vengono assegnati compiti che soddisfano e li interessano, ma in cui tutti si intromettono con i compiti meno glamour in una certa misura.
cjmUK,

1
@cjmUK - e nessuno ha detto che gli altri membri del team hanno avuto problemi con questo. Vedi Modifica 2.
JeffO

2
@Jeff O "È giusto dire che tutti gli sviluppatori preferirebbero essere in codice". Ci dispiace, ma se gli altri sviluppatori non hanno problemi con il ragazzo in questione, alla fine lo faranno. djcredo si sta dimostrando proattivo nel tentativo di tenerlo sotto controllo prima di percorrere quella strada.
Graham,

2

Sono un amministratore di Linux scontroso che fa molto scripting ed è stato notato che ho scarse capacità comunicative. Assomiglio molto al tuo ragazzo. In effetti, questa è l'unica area su cui mi baso nelle recensioni sulle prestazioni. D'altra parte, sto guidando continuamente il mio team nell'innovazione e nella risoluzione dei problemi, e ho creato e aperto la strada alla nuova piattaforma che stiamo implementando e ho salvato il mio team molto tempo e la mia azienda un un sacco di soldi essendo autorizzato a essere me stesso.

Al mio ex capo è stato chiesto alla sua famiglia / moglie E al senior management della nostra azienda di lasciare la sua posizione ... contemporaneamente. Ha lavorato instancabilmente per bilanciare le responsabilità in modo equo e si è caricato molto. Durante qualsiasi interazione con qualcuno al di fuori del dipartimento, se c'era stato un malinteso sulla comunicazione che gli era tornato in mente, era veloce, ah, a correggerlo punitamente. Era scarso nella "gestione verso l'alto", quindi il nostro team è stato l'ultimo a reperire risorse fino a quando non si è verificata un'emergenza, quindi la società ha pagato in eccesso i fornitori con lanci di vendita chiari per l'hardware non testato senza consultare il team che avrebbe utilizzato quegli strumenti. Nel tentativo di creare un team "ben bilanciato", ha gestito le nostre liste di attività e ha cercato di bilanciare le attività in modo che i membri del team potessero migliorare le proprie competenze in aree in cui non erano eccezionali, che ha provocato MOLTO codice errato o implementazioni scarsamente progettate. Mentre a persone diverse dall'autore sono state specificamente assegnate attività di supporto per quel codice non funzionante in modo da poter "apprendere", le implementazioni, il codice e i test scarsamente progettati hanno creato molta scarsa volontà tra i membri del team e in realtàaumento delle occorrenze del "gioco della colpa", che è una strada veloce verso uno stato di squadra tossico.

Il mio attuale capo è un individuo calmo e raccolto che è arrivato dal ruolo di amministratore junior e si è fatto strada. Prende buone decisioni e si affida fortemente ai membri del team per stabilire le proprie priorità. È un eccellente comunicatore e reagisce con calma e in concerto con il suo supervisore a qualsiasi problema di comunicazione, idea o necessità espressa dal mio team. "Lavora verso l'alto" instancabilmente. È lento ad apportare importanti modifiche all'architettura e consulta a fondo l'intero team prima di apportare modifiche al nostro ambiente ed è a proprio agio nel fare affidamento sulle specialità dei membri del nostro team.

Sotto il nuovo manager, i nostri tempi di fermo sono scesi quasi a zero (il che ha anche ridotto la percentuale di tempo che dedichiamo per le attività di supporto da circa il 40% a circa il 10%), la soddisfazione del nostro team ha superato il tetto e siamo sulla buona strada per passare da una "rottura della banca su nuovo hardware ogni tre o cinque anni" a un piano di acquisizione continua che dovrebbe far risparmiare all'azienda circa un bel milione all'anno in cinque anni. Quel piano era un programma di base che non sarebbe mai accaduto sotto il precedente manager, ma è stato attivamente spinto al senior management dal nuovo manager e dipendeva dal trovare MOLTE sinergie nei set di abilità del team. Il CIO ci ha detto in modo informale che ora siamo l'unica squadra della compagnia che "tiene davvero insieme" e che lui " interferirà con il nostro ambiente di lavoro il meno possibile e trasferirà il maggior numero di risorse verso aree problematiche che identifichiamo il più possibile. Ciò è stato vero, e sta portando il nostro "costo" di supporto ancora più in basso, sebbene abbia interrotto i carichi di lavoro di alcuni altri team - ma ha anche ridotto i "costi" di supporto di quei team.

Guarda, il posto in cui gli sviluppatori possono migliorare le proprie competenze è a scuola o nel tempo libero. Il posto per loro per produrre cose è nel tempo della tua azienda. Il modo migliore per produrre cose è produrre ciò che sanno meglio. Quando lavorano in aree in cui uno sviluppatore non si trova a proprio agio, dovrebbero richiamare un secondo sviluppatore specializzato e lavorare in gruppo, oppure lo sviluppatore specializzato dovrebbe scrivere il codice e produrre documentazione e diagrammi. Indirizza le attività di supporto alle persone che hanno scritto il codice. Sì, questo aumenta quello che chiamiamo il tuo "fattore bus": la probabilità che il tuo reparto colpisca un dosso se lo specialista dovesse essere colpito da un autobus. (O licenziato, o cambiare lavoro, o ...) La verità è che la tua perdita di produttività da quella paura è ordini di grandezza superiori alla perdita effettiva quando un "evento di autobus" succede. Ciò che generalmente accade durante un "evento di autobus" è che l'erede del lavoro dello specialista lo rifà a sua immagine in modo da poterlo supportare nel modo più efficace, risolvendo in genere un sacco di problemi e riducendo ulteriormente il tempo dedicato al supporto e la vita va avanti sopra.

Assegna cose alle persone che possono farle meglio. Falli supportare e documentare il loro lavoro. Promuovi la loro creatività e consenti loro di concentrarsi senza distrazioni o microgestione. Tutto il resto è la scuola di gestione BS, che purtroppo sembra che la tua compagnia stia nuotando. Ciò non significa che anche la tua squadra abbia bisogno di nuotare.

Dal punto di vista di un'azienda, un buon manager promuove i valori dell'azienda mentre esegue le attività in base a tali valori. Dal punto di vista di un dipendente IT, un buon manager consente al team di fare ciò che è giusto fare nel modo più rapido e pulito possibile e funge da barriera fecale contro i dirigenti senior spingendo i valori che hanno imparato durante le lezioni di MBA nel fine settimana fino alla gola dei minori. Sei un uomo di compagnia e questo potrebbe non essere il migliore per la tua squadra. Quelli con "buone" capacità comunicative sono semplicemente troppo educati per dirlo.


0
  • Assicurati che il dipendente sappia quanto siano importanti le capacità comunicative per la sua descrizione del lavoro. Lavora con lui / lei per migliorare.
  • Non insistere sul fatto che siano bravi come gli altri membri del team in tali compiti.
  • Assegna compiti in base ai principi in cui credi. Trova un equilibrio tra un'assegnazione efficiente dei compiti alle abilità e correttezza / divertimento.

Queste sono solo idee riassuntive, si spera che qualcuno rubi questi punti e li pieghi in una delle altre risposte. ;-)


0

Le prestazioni sono tutto. Dagli i compiti di programmazione. Parla con il resto del dipartimento. Facoltativamente, porta qualcuno a svolgere attività com o incarica qualcuno solo su attività com. Non pensare alla programmazione del divertimento. Tutto è "divertente" dal tuo POV.

In caso contrario, creerai una situazione estremamente difficile da gestire e meno efficace di quanto potrebbe essere.


0

Che bella domanda, è il tipo di cosa a cui dovrebbero pensare tutti i team leader, i supervisori, i manager dei tecnici. Mi piace il tuo approccio, tutti dovrebbero avere un compito "divertente". Prendendo avendo inoltre una squadra che può pick-up diversi compiti ed è trasversale impedisce addestrati il principio di rimorchi da provocando il caos 'indesipensible membro del team squadra foglie o addirittura prende boccheggiare una vacanza'.

Ora, come sottolineato da molti post, il lavoro non è giusto e non dovrebbe esserlo. I manager vengono misurati su quanto prezioso lavoro viene svolto.

  • I manager abbinano le attività agli individui in base alle competenze.
  • I bravi manager abbinano le attività in base alle competenze, alla crescita, all'interesse e alla produttività della squadra.
  • I grandi manager convincono la loro squadra a fare questo con un piccolo aiuto e una guida. Vale a dire senza che il manager ci passi tutto il giorno.

Parla con il tuo buon programmatore, chiedigli se ci sono cose che vuole imparare. Quali altri compiti avrebbe accettato ... anche ciò che è meno discutibile per lui. Può aiutare gli altri membri del team nella loro programmazione ... far loro da mentore. Sì, lo so che la comunicazione è un problema, quindi forse dovrebbe lavorarci su.

Un altro modo per impacchettarlo è avere un elenco di attività e lasciare che ogni membro dello staff scelga qualcosa. Lascia che sia il tuo buon programmatore a scegliere per primo. Se lo avverti in anticipo e gli mostri l'elenco dei compiti ancora meglio.

Se ottieni resistenza, che quasi sempre fai con il cambiamento, trova un punto di forza, qualcosa di valore per lui, perché ne trarrà beneficio. Infine puoi solo dirgli di farlo per la squadra.

Aspettatevi anche errori e una minore produttività per iniziare, questo è un segno che le persone stanno imparando. Questo progetto potrebbe risentirne, ma il prossimo sarà migliore.

In conclusione, è tuo compito assicurarti che le cose vengano completate, ma allo stesso modo sta aumentando il tuo personale e se riesci a coinvolgerli nel processo ancora meglio. Alcuni potrebbero dire che il modo migliore per garantire che le cose vengano fatte è un team che sa cosa deve fare e possiede i risultati.

Modifica: Oh e continua a provare, i consigli di cui sopra provengono da anni di errori, ma ho sempre saputo che volevo aiutare il mio team a crescere e sapevo che la produttività è il re, quindi ho continuato a provare nuove cose quando l'ultimo tentativo fallì.


0

La migliore risposta è già stata accettata, ma sono sorpreso che nessuno abbia sottolineato che "l'assegnazione delle attività" non è l'unica cosa con cui il manager può lavorare. Avere un "programmatore above avg" che ha anche "capacità di comunicazione superiori a avg" dovrebbe (a parità di tutte le altre cose) essere uno sviluppatore più pagato / più senior rispetto a qualcuno con capacità di programmazione simili e capacità di comunicazione deboli. Questo può aiutare a compensare qualsiasi "favoritismo" percepito dalla squadra. (In alcune organizzazioni, avere competenze superiori in media in "Analisi dei requisiti" e competenze medie in altre aree può valere molto di più per l'azienda a causa del tipo di lavoro svolto. Come manager, devi decidere come gestirlo .)

Un'altra cosa a cui prestare attenzione: dare alla persona in questione nient'altro che compiti di programmazione porterà all'isolamento a lungo termine. Assicurati di continuare a dare loro alcune delle altre attività (ma quelle che possono fare bene, non impostarle per un feedback negativo !!) in modo che siano entrambe visibili e abbiano visibilità con gli altri dipartimenti / team.

Infine ... controlla con gli altri membri del team se vedono periodicamente delle disparità nelle assegnazioni del team. Questa potrebbe essere una grande preoccupazione per te, ma # 15 nell'elenco di tutti gli altri.


1
Ha, purtroppo, apparentemente meno della media delle capacità comunicative.
Matthieu M.,

-1

Poiché secondo la tua valutazione questo programmatore è il migliore del team, in un certo senso è "giusto" dare a quella persona il lavoro desiderato (come risultato di aver dimostrato di essere in grado di farlo al meglio). Dopotutto, c'erano probabilmente persone che avrebbero voluto lavorare in questa compagnia ma non erano affatto assunte - ma nessuno dirà che non è "giusto" per loro che non riescono a fare questo codice.

Penso che un approccio equo sarebbe quello di dire a un altro membro del team meno abile che vuole fare più codice: "stiamo lasciando (così e così) il comando su questo. Forse puoi prendere il comando su la prossima cosa che succederà, se puoi dimostrare di aver appreso le abilità xey ".


2
"Tuttavia, un membro del team ha probabilmente capacità di codifica superiori alla media". Non è il migliore. È al di sopra della media. Ci potrebbe essere circa 1/3 della squadra che è più brava a scrivere codice.
Graham,

-1

Come alcuni degli altri che hanno risposto, capisco la tua posizione e avrei ambizioni simili.

Mentre è un caso dire che ha senso assegnare compiti alle persone più attrezzate per eseguirli, è anche sensato ampliare le competenze delle persone al fine di fornire un team dinamico e flessibile.

Se questo ragazzo è tenuto a fare elementi non codificanti nel suo ruolo, ma le sue capacità comunicative sono più scarse di quanto siano realmente necessarie, deve migliorare. Partendo dal presupposto che abbiate una sorta di sistema di revisione / valutazione dello sviluppo, questo è il momento di sollevare il problema.

Le questioni chiave sono mappare chiaramente ciò di cui hai bisogno, valutare se possiede le competenze per conformarsi e elaborare un piano di formazione che gli consenta di farlo. La formazione non deve necessariamente essere formale, ma è necessario aiutarlo ad acquisire le competenze richieste.

Se semplicemente non può essere disturbato, alla fine arriverebbe a una questione disciplinare. Se non ha la capacità, nonostante abbia provato e supportato da te, allora potrebbero essere disponibili misure disciplinari (che direi che sarebbero dure e controproducenti) ma allo stesso modo potresti semplicemente accettare che non lo è tagliato per determinati compiti.

Parlare con il ragazzo sarà uno dei primi porti di scalo . Potresti scoprire che gli manca la fiducia o l'intuizione. Potresti anche scoprire che è molto reattivo e apprezzerà l'opportunità di migliorarsi.


-1

Dovresti assumere un giovane per fare tutto il lavoro grugnito e far sapere a tutti che hanno bisogno di aiutarlo con tutto ciò con cui chiede aiuto.

Saranno più propensi a disturbare il programmatore "sopra la media" a causa delle loro abilità e il resto della squadra riceverà un nuovo lacchè. Il giovane impara da zero e alla fine la compagnia finisce con un impiegato ben arrotondato.


1
Per favore, considera di rielaborare questa risposta in modo che fluisca un po 'più agevolmente per mostrare la relazione del nuovo programmatore, incluso il luogo in cui otteniamo i soldi per pagare il nuovo grugnito (inizialmente, pensavo che fosse sbarazzarsi del cattivo comunicatore). Nella tua risposta, lavorare con il nuovo ragazzo è un modo per il ragazzo esistente di costruire abilità comunicative? Quale ragazzo finisce bene?
Sviluppatore:

-2

Aspettarsi che tutti abbiano le stesse capacità comunicative è razionale quanto aspettarsi che insegnerai all'uomo paralizzato a correre più veloce del resto della squadra.

Le persone sono diverse, hanno abilità diverse e debolezza diversa. Licenziare un grande programmatore solo perché non riesce a mettersi al passo con gli altri nelle abilità comunicative sarebbe come licenziare un paralitico perché non può camminare veloce come gli altri. Sarebbe ingiusto da un punto di vista etico e sarà contro i tuoi stessi interessi economici: portare a termine il lavoro.

All'inizio dovresti, se non l'hai fatto in passato, leggere la sindrome di Asperger . Le scarse abilità sociali sono il principale indicatore di quella sindrome.

In secondo luogo, puoi assumere e licenziare chiunque tu voglia, ma se non riesci a far fronte ai punti di forza e alle debolezze dei tuoi dipendenti, finirai con un gruppo di programmatori medi, perché i migliori se ne andranno (se non vengono licenziati prima) .

C'è un film, Adam , in cui il geniale programmatore viene licenziato solo perché ha scritto qualcosa che non ci si aspettava. La sua idea poteva portare molti soldi al datore di lavoro, ma non poteva sfruttare l'occasione perché era concentrato sui suoi "principi".


1
Giusto per essere chiari: nessuno viene licenziato qui. Lavoriamo tutti molto bene insieme ed è un membro estremamente prezioso del team di sviluppo. Sto parlando di come assegnare il lavoro futuro e di come migliorare le prestazioni e il morale della squadra nel suo insieme.
djcredo,
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.