Cosa posso fare? Come reagiresti? AIUTO! [chiuso]


13

Sto cercando di guidare un team di software in ritardo. Uno dei problemi principali è che ogni volta che qualcosa è leggermente difficile, finisco per doverlo assegnare a me stesso. Ho avuto un altro sviluppatore con capacità moderate e mezzo stagista. Sfortunatamente, le capacità dell'altro sviluppatore non includono il design.

Quindi ho chiesto al mio capo uno dei ragazzi di una delle altre squadre, ha lavorato qui più a lungo di me (5 anni). Non può competere con me sul design O sul linguaggio che usiamo, ma ho pensato che fosse il più competente oltre a me stesso.

Oggi mi ha dato un pezzo di codice che ha fatto qualcosa di non molto diverso da:

object const& my_class::get_object() const 
{ 
  return *std::unique_ptr<object>(new object());
}

Mi ha chiesto se quello era un problema! Ho detto l'unica cosa a cui potevo pensare: "Sì. Questo è un problema". Poi si avvicina alla mia scrivania chiedendomi come risolverlo !! Dissi: "Usa un oggetto che sopravvive alla chiamata della funzione". Poi inizia a impazzire, "Sì, ma come, l'unica cosa che mi viene in mente è di rendere una variabile membro."

Ero un po 'occupato in questo momento perché stavo già cercando di fare cose extra in lavoro che dovevo prendere in consegna per l'altro ragazzo della squadra perché non riusciva a capirlo ... Ho detto al ragazzo di andare via perché era occupato e per capire da solo. Quindi se ne va in giro a parlare di come non è colpa sua se rovina le cose. Sta andando fuori di testa da quando è entrato nella squadra e non credo che stia migliorando.

Mi sembra di annegare qui. Cosa posso fare? Qual è stato il modo giusto di affrontarlo? Sarebbe stato più ragionevole andare ad aiutare questo ragazzo che ha scritto C ++ per 7 anni per capire come restituire correttamente un riferimento a un oggetto che non viene distrutto nel momento in cui viene restituito? Sento che è ridicolo dover fare e mi chiedo come diavolo farei qualsiasi cosa in quel modo.

A volte penso che lo stiano facendo apposta, ma mi sembra che sia solo un colpo ... ma poi di nuovo, così fa la domanda che mi è stata posta oggi. Questo non è un ragazzino seduto a casa che cerca di capire il suo primo programma, il cui cervello è colpito da puntatori.


4
URLARE!!! E andare avanti. Ti fa sentire meglio. Oh aspetta, vedo che lo hai già fatto. Prova a sorridere. :): D (Anche i sorrisi malvagi vanno bene.>: D)
Mateen Ulhaq,

Mi ha appena inviato un'e-mail dicendo che poiché avevo un "forte desiderio di non essere interrotto" non poteva continuare e stava tornando all'altro progetto: p

7
Perché qualcuno che non ha la minima comprensione di puntatori e gestione della memoria sta lavorando a un progetto C ++?
Charles Salvia,

2
Una possibile spiegazione: per molti anni la saggezza popolare era che STL non era pronto per la prima serata e che avrebbe prodotto un codice troppo gonfio per l'uso in produzione. In passato era possibile essere un programmatore C ++ relativamente sofisticato senza sapere molto dell'STL. Ovviamente le cose sono cambiate. Tuttavia, se è stato addestrato alla fine degli anni '90, o è stato seguito da qualcuno addestrato alla fine degli anni '90, potrebbe fregare un nuovo oggetto () bene, ma essere completamente libero da questo nuovo stang :: unico_ptr <oggetto> () cosa. Non risolve il tuo problema, ma potrebbe spiegare da dove viene.
Charles E. Grant,

2
@Charles: d'accordo, ho diversi anni di esperienza in C ++ nel settore dei giochi e non ho mai toccato STL né ne so nulla. Guardando quel frammento di codice sopra, tutto ciò che posso fare è scuotere la testa e pensare "se vuoi scrivere C ++, scrivere C ++, ma sembra che tu non voglia scrivere C ++, quindi perché non usare un livello superiore? linguaggio?"
Carson63000,

Risposte:


14

Sarebbe stato più ragionevole andare ad aiutare questo ragazzo che ha scritto C ++ per 7 anni per capire come restituire correttamente un riferimento a un oggetto che non viene distrutto nel momento in cui viene restituito?

Ho dato via tutti i miei libri in C ++ diversi anni fa, mentre giuravo che non avrei mai più toccato quella lingua, e anche io posso dire che questo ragazzo non sa cosa sta facendo. Penso che dovresti sederti con lui e scoprire qual è il suo livello di abilità.

Sembra che forse abbia avuto 1 anno di esperienza sette volte, non sette anni di esperienza. Nelle aziende più grandi, è del tutto possibile per i lavoratori non qualificati nascondersi e rimescolare "attorno al sistema" ogni volta che vengono scoperti.

Sto cercando di guidare un team di software in ritardo. Uno dei problemi principali è che ogni volta che qualcosa è leggermente difficile, finisco per doverlo assegnare a me stesso.

In questo caso, devi fermarti e capire quali sono i livelli di abilità della gente. Capisco che ti senti sopraffatto da scadenze e simili, ma non riesci a svolgere il lavoro quando non puoi nemmeno essere sicuro di cosa sia composta la tua squadra. Non puoi completare il progetto se continui a commettere gli stessi errori - questa volta solo più velocemente.

Prendersi tutto il lavoro su te stesso significa che non hai una squadra, né hai fiducia in loro. Questo deve essere risolto per primo.


7
+1 per "sembra che abbia avuto 1 anno di esperienza sette volte".
Matteo Leggi il

@Matthew: così vero.
Estratto del

13

Questo tipo di problema è il pane e il burro della gestione. Una domanda che tutti i manager devono porre è: "La mia gente ha le competenze necessarie per fare il lavoro?" Se la risposta è "no", un bravo manager non grida o smette: un bravo manager si occupa di correggere la situazione.

Ecco un'osservazione: il C ++ non è un linguaggio banale, quindi è possibile usare qualcosa in cui i tuoi sviluppatori junior sono più competenti? Se deve essere in C ++, devi addestrare i tuoi sviluppatori esistenti o assumere nuovi sviluppatori con le competenze appropriate.

Ero in una situazione non dissimile un anno fa. Sono stato chiamato a guidare un team di programmatori VB6 che lavoravano sul codice spaghetti e il desiderio del management era di spostarsi verso sistemi ben progettati e orientati agli oggetti scritti in .NET. Abbiamo compiuto progressi eccellenti in questo settore, quindi sono possibili questi tipi di turni .

Un commento finale. Se non ti piace affrontare questo tipo di problema, uscirei dalla direzione e tornerei a un ruolo puramente tecnico. Questo tipo di problemi disordinati sono il pane e il burro della vita di un manager, e non è adatto a tutti.


4
Questo è un bell'esempio della visione del management che molti dipendenti non sembrano avere.
Mark C

Sì, non sono un dirigente. A volte vorrei esserlo, quindi avrei più capacità di lavorare su questi temi. Altre volte sono davvero contento di non essere perché non devo. Sono solo un capo tecnologico.
Edward Strange,

1
Ciao Noah, chiacchiererei con chiunque gestisca la squadra allora - sono responsabili di assicurarsi che le persone giuste siano disponibili e abbiano le giuste competenze.
Craig Schwarze,

9

Trova un lavoro presso un'azienda migliore in cui puoi lavorare con persone competenti.


7
Oppure, in alternativa, smettere di usare C ++. Questo risolverà molte diverse classi di cattivi errori.
Mason Wheeler,

3
@ Mason: concordo. Tutti scrivono in C # e sii felice. :)
Estratto del

2
Il C ++ deve essere usato solo dove C ++ è appropriato. Non conosco alcun linguaggio esistente che possa svolgere il lavoro di C ++ così come lo è.
Matteo Leggi il

2
@Matthew read, con programmatori incompetenti come nell'esempio del PO, C ++ EVER sarebbe appropriato?
Dan Rosenstark,

4
@Yar: Anche se un programmatore cattivo scrive codice errato in ogni lingua.
Jon Purdy,

7

La cosa giusta sarebbe stata aiutarlo con il problema. Non doveva essere proprio sul posto. Avresti potuto dire: "Sono legato adesso. Vai a leggere il capitolo X del C ++ STL, e tocchiamo di nuovo la base domani alle 11".

Gridare può funzionare per alcune persone e alcune situazioni se è solo una questione di motivazione. Ma, se si tratta di competenza o conoscenza, urlare contro le persone e farle esplodere non aiuta affatto. È come urlare a persone che non parlano inglese. non li aiuta a capire cosa stai cercando di dire e può uccidere qualsiasi motivazione che hanno per cercare di aiutarti. Sono dove sono e nessuna rabbia o frustrazione da parte tua li renderà più bravi a scrivere C ++ nelle prossime 48 ore. Potrebbe anche essere necessario tornare alla direzione e spiegare che l'ambito del progetto è al di là delle attuali competenze del team. Roba del genere è il motivo per cui essere un capo squadra è tremendo.


Non ho gridato. Ho appena detto, sono occupato in questo momento. L'ho fatto saltare comunque.
Edward Strange,

3
@Noah, non ero lì, eri, quindi cedo. Considera questo però: le persone che sono così frustrate da pensare che le persone stiano deliberatamente facendo cose stupide, piuttosto che fare stupidamente cose stupide, tendono a parlare con una voce molto tesa a denti stretti, mentre pensano che stanno sorridendo e tonificando. L'altra persona può anche essere così stressata da sentire: "Potresti tornare tra circa 10 minuti?" come "Porta fuori di testa il mio ufficio, sporcizia!". Essere a capo di una squadra spesso consiste nel manipolare il comportamento dei primati attraverso il linguaggio del corpo e il tono della voce.
Charles E. Grant,

3

Bene, se avessi qualcuno che ha scritto codice per 7 anni chiedendo qualcosa che sembra piuttosto semplice, dovrei chiedermi cos'altro sta succedendo. Non sono un programmatore C ++, quindi non posso commentare questo aspetto.

Quello che vorrei sapere, come il suo supervisore, suppongo, se sta succedendo qualcos'altro che lo distrae. Mi rendo conto che potresti non aver avuto tempo in quel momento, ma l'ultima cosa che dovresti fare è allontanare qualcuno in quel modo.

Metti da parte un momento per parlare con lui e fargli sapere subito, "Capisco la tua urgenza su questo, ma non ho tempo per questo in questo momento. Non appena lo farò, te lo farò sapere. Mi sarei aspettato non più di un'ora circa. "

In questo modo hai trasmesso la tua comprensione della sua urgenza, che non hai tempo e che tornerai con lui. Anche come un'aspettativa di quando tornerai con lui. Si sentirà molto meglio rispetto a essere scacciato (è così che lo prenderei).

Quello che dovresti fare ora è mettere da parte un po 'di tempo e fargli sapere quando puoi parlare con lui del problema. Torna indietro e ingoia un po 'di orgoglio, fai sapere alla persona che capisci la sua urgenza e non hai avuto il tempo di affrontarla. Dovresti anche vedere se ha qualcosa nelle sue aree personali che potrebbe influenzare la sua attenzione - cioè che altro potrebbe distrarlo. Le vite personali riguardano anche noi programmatori. ;)


2

Penso che devi sederti con il tuo capo e spiegargli tutto. Sembra pazzesco - cosa ci fa quel ragazzo che ci lavora anche se non conosce le basi?

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.