Puoi essere un manager e un programmatore allo stesso tempo? [chiuso]


43

Gestire altri programmatori mentre tu sei parte della forza lavoro di programmazione.

È uno schema molto comune, almeno nelle aziende per cui ho lavorato.

Puoi essere un buon programmatore o un buon manager se fai entrambe le cose contemporaneamente?

Sto mettendo in dubbio l'efficacia di un individuo che deve ricoprire due ruoli molto diversi, che richiedono competenze, ambiente, concentrazione, organizzazione molto diversi.

AGGIORNAMENTO : la mia domanda include la gestione dell'azienda (che è il mio caso), non specificamente la gestione del team. Ma sono interessato a entrambi ovviamente.


1
Chiedi a Bill Gates.
Andrew Arnold,

6
Lo farò. Posso usarti come riferimento?

Mi chiedo se consideri Code Reviews come parte del lavoro "programmatore" qui. Mi sembra che sarebbe un ottimo modo per un team manager rimanere in contatto con le funzionalità del codice, inoltre potrebbe non importare se viene interrotto durante la revisione (anche se potrebbe rallentarlo).
Matthieu M.

Matthieu: non ne ho parlato, ma parlavo più della gestione dell'azienda, non della squadra. In effetti, credo che la squadra dovrebbe essere autogestita. Ma tutte le risposte qui sotto sono ancora valide e preziose per me.

1
la risposta breve è: no non sarebbe efficace in entrambi i ruoli, e se si è l'uno soffrirà proporzionalmente.

Risposte:


36

Dipende dalla quantità e dal tipo di programmazione che è necessario eseguire e dalla quantità e dal tipo di mansioni manageriali che è necessario svolgere.

Essere un manager significa molte interruzioni, cambi di rotta e cose come riunioni ecc.

Se la tua programmazione è "limitata" a piccoli lavori non urgenti, puoi inserirli nelle tue mansioni manageriali. Se hai bisogno di dedicare notevoli quantità di tempo di "qualità" a un'attività di programmazione, non avrai tempo a causa delle tue responsabilità manageriali.

Se il tuo team è grande e / o complesso, dovrai dedicare più tempo alla gestione di quanto faresti se fosse un piccolo team dedicato a uno o due prodotti / progetti. Scoprirai che non hai il tempo di fare una programmazione significativa, anche su piccoli compiti.

In un precedente lavoro avevo questo ruolo e ha funzionato per me perché ho tenuto le mie attività di programmazione piccole. In realtà ha funzionato a nostro vantaggio.

In primo luogo, ho potuto valutare tutte le richieste che venivano e, se erano piccole, aggiungerle alla mia coda (che era sempre breve) o tornare al client (in questo caso un altro manager) con un calendario più accurato per quando il lavoro sarebbe essere fatto.

In secondo luogo significava che gli sviluppatori del team non venivano costantemente tirati fuori dal loro lavoro attuale per correggere bug minori o apportare piccoli miglioramenti.

In terzo luogo, i clienti erano felici poiché i loro problemi urgenti venivano risolti abbastanza rapidamente.

Mi ha tenuto in contatto con la base di codice in modo da poter avere conversazioni significative con il mio team sui problemi e con i miei manager e clienti sulle scale temporali senza dover coinvolgere il team tutto il tempo.


2
+1 Sono un manager e un programmatore. Lavoro molto come Chris descrive qui. Sono un buon programmatore, ma un grande organizzatore. Penso che sia un grande vantaggio come manager rimanere tecnico e coinvolto in progetti. Il mio stile deriva dal mio primo capo, che era anche manager e programmatore - e molto bravo in entrambi.
Bogeymin,

4
Puoi essere manager e programmatore allo stesso tempo se hai assunto le persone giuste per lavorare nel team.
Naweed Chougle,

1
Penso che funzioni solo se il manager / programmatore è eccezionale. Nella maggior parte dei casi ciò fallisce, proprio come nella risposta di Martin Wickman.
Andrei Vajna II,

12

Facevo parte di un team di sviluppatori in cui un programmatore era anche il nostro manager. Ciò ha portato a un collasso totale di qualsiasi cosa che assomigli alla produttività. In breve, tutte le decisioni sono state prese da quel ragazzo + era un micro manager completo. Qualunque idea e suggerimento con cui non fosse d'accordo fu abbattuto o ignorato. Questo alla fine ha ucciso tutta la creatività e la motivazione.

Quindi, penso che sia una cattiva idea avere qualcuno nel team di sviluppo in una posizione "più alta". Nel mio caso, il ragazzo era un manager di comando e controllo, ma anche un grande manager influenzerà (involontariamente) gli altri sviluppatori che alla fine porta a prestazioni inferiori. Almeno la squadra sta riferendo a lui.


4
Ho totalmente so di cosa stai parlando, joelonsoftware.com/items/2006/08/08.html
David in Dakota del

8

Sì,
ho visto alcuni manager che erano programmatori e manager allo stesso tempo, credimi che lavorare con questi ragazzi è stato meraviglioso.
Essere un manager e un programmatore non solo consente ai manager di guidare in prima linea, ma motiva anche i subordinati a dare il meglio.
La maggior parte dei Dipendenti si lamenta dei loro manager che i gestori non valgono nulla, ma il manager che non solo gestisce ma scrive anche il codice offre sempre i migliori risultati.
I due manager che ho citato, la programmazione era la loro passione che non solo aiutava gli altri, ma produceva anche un'applicazione quasi senza bug.


8

Sono stato un project manager di programmazione per anni, con diverse aziende, progetti e team.

La gestione e la programmazione dei progetti sono tipi di lavori / ruoli così diversi, che direi che non puoi fare entrambi allo stesso tempo a livello "eccellente". È un compromesso: padrone di nessuno, tuttofare, cose del genere.

Per me il dolore maggiore è il cambio di contesto tra modalità manager e programmatore. Sembrano coinvolgere diverse parti del cervello (o qualcosa del genere). Un giorno programmando, un giorno riuscirò a fare bene, ma passare da un ruolo all'altro è difficile.


7

Ho visto entrambi gli scenari. I gestori degli sviluppatori eseguono {una percentuale del loro tempo} di codifica e un manager degli sviluppatori che non esegue alcuna codifica.

Il problema è che più senior ottieni, più è probabile che tu voglia essere pagato di più e l'unico modo per ottenerlo in molti luoghi è passare alla gestione. (non tutti ovviamente, ma molti posti). Quindi questo può portare le persone che non sono davvero preparate ad essere manager per rimanere bloccati in quella situazione.

(Certo, ci sono aziende in cui puoi passare da Dev, Dev lead - diverso dal Dev manager ovviamente - a posizioni come Architect ecc.)

Le probabilità sono, essendo un techy, si può essere inutile a persone di gestione, più che ti porta più lontano dal codice. Quindi diventi un cattivo manager e stai facendo meno cose che ti piacciono e presumibilmente sei entrato in sviluppo per!

Per me, per essere un manager, dovresti davvero evitare le codifiche, ma tieniti assolutamente aggiornato con la tecnologia in modo da poter almeno parlare dei problemi in modo coerente.

A quanto pare ho iniziato a lavorare come freelance per questo motivo esatto. Non mi interessa la gestione delle persone, e penso che non sarei particolarmente bravo a farlo, inoltre non potrei codificare tanto.


6

Può essere fatto, ma è pieno di insidie. La dimensione del gruppo e il livello di interruzione svolgono un ruolo importante, ma il rischio più significativo è che anche il responsabile sia il capo tecnico. Un'opinione troppo pesante quando non ci sono abbastanza tempo / sforzi per giustificare l'opinione può portare a delle decisioni sbagliate. E il dibattito sulla direzione non è un campo di gioco molto uniforme tra un manager e il resto della squadra.

Per coloro che considerano questo percorso, alcuni consigli:

  • Esci dal ruolo dell'architettura e identifica i lead nel tuo gruppo.

  • Non lavorare sugli elementi del percorso critico. Correggi bug, lavora su prototipi o altri oggetti che possono essere rapidamente scartati quando il tuo capo trova molte più "cose ​​importanti" per distrarti.

  • Aumenta il tuo livello di attenzione e concentrati sull'efficienza complessiva, difendendo e promuovendo la squadra, il processo, il morale e altri aspetti necessari per avere una squadra di successo. È probabile che il tuo obiettivo sia molto più di un semplice progetto di successo (indipendentemente da ciò che il tuo capo, PM o altro potrebbe dire).

  • Aiuta il tuo team a crescere: diventa più indipendente, auto-organizzato, adepto tecnico, livello più alto di consapevolezza.

  • In molti modi, tu sei il ponte tra la squadra e il mondo esterno. Una parte significativa della tua attenzione dovrebbe essere al di fuori del team.

Per rispondere alla domanda, sì, può essere fatto. No, non è facile e troppi nuovi manager dal punto di vista tecnico della casa, che potrebbero essere stati dei grandi protagonisti, non possono passare al lavoro di un manager di successo.


3

Un buon manager può essere, sì. Fintanto che rimani assertivo e coerente, di solito non ci sono problemi.

Se viene detto ai dipendenti di sollevare problemi con i compagni di squadra con il loro manager .. e anche il manager è un compagno di squadra, può diventare appiccicoso. È essenziale visualizzare tutti i feedback in modo obiettivo e rendersi conto che di tanto in tanto potresti avere torto. Dovresti anche fornire una sorta di mezzo anonimo per il feedback.

È estremamente comune (come hai detto) vederlo nelle start-up.


3

Penso che nessuno.

Entrambi i lavori richiedono molta attenzione, energia e dedizione. È molto difficile eseguire entrambi allo stesso tempo. Quando ho dovuto assumermi alcune responsabilità di gruppo, il tempo che ho trascorso nella programmazione (e di conseguenza la quantità di lavoro relativo alla programmazione svolto da me) si è ridotto.

Conosco un altro collega che ha assunto il ruolo di manager da un ruolo di guida del team e ha completamente smesso di scrivere codice entro un mese (anche se ha provato a fare entrambi).

Conosco anche un architetto a cui è stato chiesto di diventare un manager. Ha anche smesso di scrivere codice entro un mese dopo aver assunto le responsabilità manageriali. Lo stesso architetto dopo 8 mesi ha dovuto tornare alla programmazione a causa di problemi critici sul campo. Ha contribuito in modo significativo alla risoluzione dei bug, ma nel giro di un mese hanno dovuto trovare un manager sostitutivo per assumere le sue responsabilità manageriali.

Nella mia esperienza limitata, non ho trovato nessuno che gestisca altri programmatori e codici come un programmatore completo.


3

Secondo me, sebbene sia possibile nella maggior parte degli scenari, non è un buon accordo. Ci sono numerosi articoli su come le persone che sono abili come sviluppatori vengono notate e portate ad un ruolo di gestione del team anche se questa non è la loro specifica competenza o addirittura una posizione desiderata. Fanno fatica a rimanere concentrati sulla "gestione" perché vedono il "lavoro" come fare programmazione, non creare rapporti e andare alle riunioni.

Spolsky ha scritto nel suo articolo su Developer Abstraction Layer quanto segue:

"Con un'azienda di software, la prima priorità della gestione deve essere quella di creare quell'astrazione per i programmatori".

Nell'articolo (credo supponente ma ben ragionato), il ruolo del manager non è di entrare nel codice o nello sviluppo del software, ma di creare un ambiente in cui coloro che lo producono possono concentrarsi interamente su di esso.


2

Il mio ex capo ci ha provato. Ci sono state troppe interruzioni dal suo ruolo di manager.

È ancora uno dei migliori sviluppatori che conosco.


2

Assolutamente puoi, ma ciò non significa che sia facile. Ci vuole un certo tipo di persona per essere un buon sviluppatore, ci vuole un certo tipo di persona per essere un buon manager e un certo tipo di persona per essere entrambi. Se riesci a trovare quella persona (o sei quella persona), ci sono determinati vantaggi. I manager di primo o secondo livello dei programmatori devono capire veramente cosa fanno e incontrano le persone ogni giorno. Difficile da fare se non eri uno sviluppatore e difficile rimanere in contatto / aggiornato senza continuare a sviluppare.

Il miglior manager che abbia mai avuto (sono stato nel giro di circa 25 anni), era uno sviluppatore attivo, il mio manager e mezzo proprietario dell'azienda (circa 40 emps). Era speciale ma è chiaramente riuscito a questa domanda.


2

Sicuramente no !!

Puoi provare, ma finirai per gestire più di ogni altra cosa. Il problema è che non puoi programmare quando le persone ti chiamano ogni 5 minuti o provano a fare riunioni di "stato" ogni ora. È ridicolo ... Lo sto facendo ora ed è per questo che mi sono imbattuto in questo thread.

Anche se un manager di un'azienda tecnologica DOVREBBE ... no ... DEVE sapere come programmare. Non sarai in grado di stimare o comprendere i problemi del cliente. La codifica e la gestione sono due tipi di persone. Un lato è geek e goffo con le persone (ammettilo, i geek sanno di cosa sto parlando) e l'altro è bravo con le persone. Devi scegliere un lato. Non andrai da nessuna parte con la codifica se fai entrambe le cose. Se ti piace programmare e puoi farlo 24 ore su 24, 7 giorni su 7, se tua moglie non ti ha ostacolato, STAI LONTANO DALLA GESTIONE. Prendi anche una riduzione di stipendio se devi. Sto per farlo, ma non credo che ai capi piacerà, perché rendo più facile la loro vita facendo la parte manageriale. Dovrò tornare al libero professionista se non sono d'accordo perché la felicità e fare ciò che ami è molto più importante del denaro e delle illusioni che acquista.

I migliori auguri per il tuo impegno e ti preghiamo di mantenere questi post in arrivo. Voi ragazzi siete fantastici.

Leggi la sezione "Mancanza di un percorso di carriera incentrato sulla programmazione" in questo sito. Roba abbastanza buona e molto rilevante: http://c2.com/cgi/wiki?ProgrammingIsNotFun


1

È possibile che una persona abbia sia un buon manager che buone capacità di programmazione, anche se viene in mente il detto "un tuttofare è un maestro di nessuno" ...

Tuttavia, combinare entrambe le funzioni allo stesso tempo mi sembra incline a fare entrambi i lavori solo la metà. Dipende dalla quantità di gestione che deve essere fatta, ma inevitabilmente ti stai destreggiando tra due compiti di natura completamente diversa e il focus focus che questo richiede è piuttosto grande. Noto per me stesso che eseguo abbastanza meno nella sezione di codifica quando ho anche alcune attività di gestione (nel mio caso, la gestione dei corsi e la stesura di rapporti).

Un altro inconveniente è che stai gestendo un gruppo, ma sei anche una parte direttamente coinvolta. A volte ripaga, a volte può causare grossi problemi. Se altri programmatori non sono d'accordo con il tuo lavoro, il fatto che tu sia il manager può impedire che siano completamente aperti.

Inoltre, quando stai codificando lo stesso progetto che stai gestendo, ti senti un po 'più in sintonia con il codice stesso, quindi in questo caso il bit di programmazione può effettivamente aiutare il bit di gestione. Tutto dipende da cosa devi gestire, da quanto tempo richiede e da quanto rimane correlato al codice su cui stai lavorando.

Quindi immagino che non ci sia una risposta chiara, ma tendo ad evitare di mescolare entrambi troppo. I miei 2 centesimi


1

bene, ho letto che i gestori di progetti software dovrebbero essere sicuramente programmatori stessi.

Penso che un manager sia un manager per un motivo: da gestire. Lo prenderei come una regola empirica ... alcuni possono essere un'arma a doppio taglio.


1

Conosco un caso in cui funziona. L'uomo è un po 'un maniaco del lavoro, quindi lavora a tempo pieno come manager e quasi a tempo pieno come programmatore.

Considerando il normale orario di lavoro, non credo che un ruolo così doppio sia una buona idea. Un programmatore di gestione (o manager di programmazione) è sempre tentato di fare gran parte delle cose di programmazione da solo, invece di farlo fare ai suoi programmatori. C'è sempre questa scusa "ci vuole più tempo per spiegare che per fare" ma a lungo termine, il lavoro del programmatore al 50% che fa manca nella parte di gestione, quindi altri programmatori sono meno efficienti.

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.