Un team di sviluppatori ha bisogno di un manager?


28

Sfondo:

Attualmente faccio parte di un team di quattro: 1 manager, 1 senior developer e 2 sviluppatori. Facciamo una serie di sistemi / progetti interni su misura (ad esempio 6-8 settimane) per un'organizzazione di circa 3500 dipendenti, nonché tutta la manutenzione e il supporto richiesti dai sistemi che sono stati creati in precedenza. Non c'è abbastanza di noi per fare tutto il lavoro che potenzialmente sta arrivando sulla nostra strada - siamo a corto di personale. La direzione lo riconosce, ma le restrizioni di bilancio limitano la nostra capacità di reclutare membri aggiuntivi per il team (anche se riusciamo a recuperare lo stipendio nei risparmi).

La modifica

Questo ci lascia dove siamo ora. Il nostro manager dovrebbe lasciare il suo ruolo per i pascoli nuovi, lasciando un posto vacante nella squadra. Il management sta sfruttando questa opportunità per ristrutturare il nostro team che vedrebbe il ruolo di team manager sostituito da un altro sviluppatore e un altro sviluppatore senior. La loro logica è che abbiamo bisogno di più sviluppatori, quindi ecco un modo per finanziarlo (uno dei ruoli è parzialmente finanziato da un altro posto vacante).

Il team non avrebbe un manager di linea diretto e i ruoli e le responsabilità sarebbero divisi tra gli anziani e il (relativamente nuovo per postare) il gestore del servizio (un ruolo non tecnico con conoscenza / esperienza di sviluppo quasi nulla il cui focus è condiviso tra un numero di altre squadre e individui) - chi sarebbe il nostro prossimo vero manager nella catena alimentare.

Immagino che la domanda finale sia:

È possibile gestire un team di sviluppo senza un manager? Hai avuto esperienza di questo? E quali cose potrebbero andare male / potrebbero esserci di beneficio?

Idealmente mi piacerebbe "vedere la luce" e i vantaggi di fare le cose in questo modo, o trovare alcuni punti per litigare contro di essa.


20
Se nessuno è il manager, allora effettivamente tutti sono i manager. Ricetta per il disastro.
JohnFx,

14
Google team autogestiti o autogestiti. Ci sono prove aneddotiche che può funzionare davvero bene in alcune situazioni. Si adatta alle persone e la cultura è la vera domanda dell'IMO.
Guy Sirton,


@Guy Sirton: qualcuno di questi articoli si applica ai programmatori? Ne dubito.
Jim G.

@Guy Sirton: vedi il commento di JohnFx. Ha ragione al 100%.
Jim G.

Risposte:


47

Maggiore è il rischio, maggiore è la necessità di "copertura aerea". Questo è ciò che un manager dovrebbe davvero fornire. Mentre il team fa il lavoro, il manager dovrebbe garantire che non ci sia nulla che impedisca al team di raggiungere gli obiettivi del team. Che si tratti di modificare il programma, gestire le interferenze tra il team e il personale di vendita o semplicemente assicurarsi che il team venga pagato in tempo e che la macchina per il caffè rimanga funzionante. Un manager davvero eccezionale consente al team di funzionare quasi come se il manager non fosse presente.

La realtà ovviamente è che la maggior parte dei manager fallisce completamente in questo. O micromanage, o sono resi obsoleti in modo che i vertici dell'azienda possano controllare le cose più direttamente, e i gestori veramente grandi sono davvero un uccello raro. Per quanto riguarda un team di software, ci sono alcuni pro e contro in entrambi i modi quando si tratta di avere una struttura di team gerarchica o piatta. Se il team è molto piccolo e il lavoro svolto richiede pochissime sovrapposizioni (e con questo intendo dire che tutti hanno un progetto indipendente), è stata la mia esperienza che una struttura di team piatta (alias non gestita) può funzionare molto bene se tutti i i membri del team sono disciplinati. È stata anche la mia esperienza, tuttavia, laddove vi sono molte sovrapposizioni nel lavoro svolto dai membri del team, dove esistono due o più personalità relativamente forti,

Ci sono molti fattori coinvolti, tuttavia si riducono davvero alle personalità coinvolte, alle loro motivazioni individuali e agli obiettivi di carriera, nonché all'esempio e alla guida forniti dai dirigenti che determineranno la necessità di una posizione di manager o team leader. In generale, se c'è del caos e quando il team lo richiede, allora il team ha chiaramente bisogno di un comando. Se le cose vanno generalmente bene senza input di gestione, allora forse il team può gestire all'interno di una struttura non gerarchica per un certo periodo di tempo ... almeno fino a quando il carico di lavoro e la pianificazione diventano troppo difficili da gestire.


11
+1 per "air cover" è ciò che i manager devono realmente fare in questo tipo di situazione (situazione diversa se sono specificamente project manager).
jcmeloni,

5
+1 per il primo paragrafo - -1 per il successivo, +1 per l'ultimo. I direttori del dissing possono essere divertenti, ma su questi forum si
logora

7
+1: "Mentre il team fa il lavoro, il manager dovrebbe assicurarsi che non ci sia nulla che impedisca al team di raggiungere gli obiettivi del team.": Non tutti i manager sono così, ma ho avuto la fortuna di avere un simile manager. Normalmente posso lavorare senza orientamento, ma avere un manager che impedisce a eventi o informazioni di disturbo di raggiungermi durante il mio lavoro è davvero fantastico e aumenta la mia produttività!
Giorgio,

17

Qualcuno deve essere il manager, ma nel caso della tua squadra, non penso che questa sia una posizione a tempo pieno. Assumi un altro sr. dev e rendere uno di loro il manager. Idealmente, quello che meglio si adatta a essere un manager e non necessariamente il miglior programmatore.

Il manager deve avere la decisione finale in assenza di consenso, quindi la persona deve essere tecnicamente qualificata. Valutare gli altri programmatori, le riunioni e respingere il senior management fa parte del lavoro.

Lettura consigliata: l'anno senza pantaloni . Anche un grande progetto software (WordPress), può andare senza gestori diretti, ma ci sono alcuni compiti (nessuno vuole fare / sono molto difficili) o richiedere l'integrazione di un gran numero di sviluppatori per lo stesso compito, può essere molto difficile senza alcuni controllo centrale.


Non ho mai avuto un manager diretto che non scriva codice proprio come fa il team.
Vorac,

@Vorac - solo curioso, qual è il più grande team di sviluppo che tu abbia mai visto?
JeffO,

10 persone in totale :)
Vorac,

12

La semplice risposta alla tua domanda è sì, come hanno indicato altre persone.

Una risposta più completa ma più complessa alla tua domanda è indirizzare:

"La direzione lo riconosce, ma le restrizioni di bilancio limitano la nostra capacità di reclutare membri aggiuntivi nel team"

La direzione dice "sì, lo riconosciamo, riconosciamo che" sono solo "parole" per farti sentire meglio. Essi non considerano fondamentale per il successo dell'organizzazione, o che sarebbe davvero sostenere in realtà sempre qualcuno!

Altre cose a cui fare attenzione (dato che c'è molta psicologia in questo) è quando il management ti dice cattive notizie, ma mescola qualche sorta di scherzo, forse menzionando direttamente il problema, forse no, ma che in pratica rende impossibile metterlo in discussione ( è una tecnica sottile e intelligente). Un altro da tenere d'occhio è un incontro di 3 ore in cui ti viene presentato il piano e in 2 ore e 55 minuti ti vengono chieste le tue opinioni.

Sii diffidente nei confronti del management che "dice" la cosa giusta rispetto al management che "fa" la cosa giusta.


6

Nessun gestore = Nessuna responsabilità = Mess nel lungo periodo almeno. Ognuno farà le cose che gli piacciono e la dirigenza media non sa con chi parlare o chi ha ragione e chi ha torto per un dato problema o richiesta. A meno che le attività non siano così separate e abbiano relazioni scarse o assenti, avere molti "piccoli manger" non funziona nello sviluppo perché ci sono molti modi per svolgere una determinata attività e poiché la gestione richiede esperienza che uno sviluppatore impegnato non può sempre aver acquisito. C'è bisogno di qualcuno per vedere il quadro completo. Lo stile suggerito può funzionare per i team che forniscono supporto per applicazioni legacy o attuali ma non in fase di sviluppo. Per essere ottimisti, ci vorrà la tua organizzazione e alcune prove e fallimenti prima che questo funzioni ragionevolmente bene.


Questo può benissimo essere vero per gruppi di sviluppatori con poca disciplina, ma non è altrettanto vero con un team ben motivato e auto-organizzato. Se il team è scarsamente disciplinato come suggerisce la tua risposta, il problema è nella gestione delle risorse umane.
Dan Lyons,

@DanLyons, grazie per il tuo commento. Quando il management superiore deve sapere quando verrà consegnato un prodotto, o quanto più denaro dobbiamo ancora pagare o perché questo rapporto non funziona, ... ecc. ci deve essere almeno una risposta affidabile. A mio avviso, qualsiasi gruppo con più di 1 persona deve assegnare un manager. Dopotutto ci deve essere una persona che deve sparare alla fine di ogni progetto IT :)
NoChance,

1
La società che costruisce WordPress sembra essere in grado di farlo.
JeffO,

Questa è una novità per me. Buon punto.
NoChance,

4

Concordo con le risposte sopra, ma c'è una considerazione importante.

Un "manager" è una posizione, ma pensa in termini di ruoli , un manager è qualcuno che ha determinate responsabilità . Indipendentemente da quali siano queste responsabilità, le negoziazioni con CxO, la redazione di rapporti, la gestione delle vacanze o persino il riempimento di una macchina da caffè - il tuo team ha bisogno di qualcuno responsabile per questo.

Pro : può essere uno di voi, e questo potrebbe diventare un grande impulso alla sua carriera. Il resto della squadra otterrà qualcuno che non è "assegnato dall'alto", ma qualcuno che comprende profondamente le esigenze della squadra.
Ovviamente, non dimenticare di negoziare quanto tempo avrebbe trascorso per compiti manageriali e cosa rimane per quello che faceva prima.

Contro: - E 'anche possibile che nessuno di voi sarebbe vuole essere un manager. Non c'è niente di male in questo. Molti sviluppatori preferirebbero divertirsi con la tastiera e altri sviluppatori, piuttosto che "perdere tempo" con report, diagrammi e riunioni. Fidati di me, cinque minuti con il capo che urla ogni mattina è estremamente demotivante! :)

Quindi, vorrei riformulare la tua domanda in questo modo:
è possibile gestire un team di sviluppo senza un manager dedicato ? - .
La tua squadra è pronta per quel cambiamento? - Non posso dire.
Provalo. Vale la pena provare.


-1: vale la pena provare? Quando? Su un progetto che non importa?
Jim G.

@Jim: ... a meno che non ci sia un manager che si preoccupa solo della sua opportunità di proteggere le persone impedendone la crescita, ovviamente. ;-)
bytebuster,

3

Attualmente sto lavorando in una piccola squadra senza un manager. Piccola azienda. Funziona bene.

Il tuo chilometraggio può variare.


3

Hai bisogno di un lead tecnico e di un manager, sì. Personalmente penso che il vantaggio tecnico sia molto più importante, però. (Se non sei sicuro di cosa si tratti, è fondamentalmente la persona che distribuisce il lavoro e si assicura che tutti facciano quello che dovrebbero essere.)


1
Essere d'accordo. Data la descrizione del ruolo di "Service Manager" nella domanda, il complemento è un capo tecnico del team.
MSalters il

2

Un team di sviluppatori non ha bisogno di un manager se ogni persona è abbastanza matura per lavorare in team e soddisfare le aspettative degli stakeholder.

Ci sono alcuni ruoli (dicono gli sviluppatori) che richiedono di essere focalizzati su un problema che deve essere risolto e non preoccuparsi di altri fattori ambientali. Ecco dove avere un manager aiuta.

Detto questo, qualcuno che può aggiungere valore aiuta sempre. Anche un amministratore delegato riferisce a un team di manager (consiglio di amministrazione).

I miei 2 centesimi ...


1

Vorrei suggerire che dipende dalle battaglie che devono essere combattute per la squadra nell'organizzazione. Se ci sono problemi che ti impediscono di svolgere il tuo lavoro, il manager dovrebbe risolverli.

Potrebbero essere cose come garantire che le priorità vengano controllate e impostate in modo ragionevole, assicurandoti di avere le attrezzature, il software ecc. Necessari per svolgere il tuo lavoro. Dovrebbero essere i sostenitori del team nell'organizzazione.

Come interagisci con l'azienda, come determini su cosa dovresti lavorare, chi determina quando hai "finito". Se l'organizzazione si occupa di queste cose senza che il tuo manager debba fare molto, allora fantastico. Ma poi potrebbero esserci cambiamenti al di fuori del tuo team e forse se una o due persone chiave nel business cambieranno ruoli potresti trovarti in una situazione difficile.

Forse potresti scegliere un leader forte nell'organizzazione che può essere il tuo avvocato, ma non ha bisogno di partecipare alla tua gestione quotidiana, avvicinarti a loro e vedere se sarebbero disposti a mettere la tua squadra sotto di loro. (Forse l'hai già fatto con il tuo "service manager" di cui parli.)


1

risposta breve: sì, può.

Risposta lunga: ma dipende dalle personalità della squadra. Ovviamente, qualcuno deve decidere cosa stai facendo e quindi hai bisogno di qualcuno a cui riferire - questo potrebbe non essere necessario essere il manager della tua squadra, ma qualcuno deve darti del lavoro da fare. All'interno del team, potresti aver bisogno di qualcuno per decidere le priorità e / o i problemi tecnici, ma ciò può essere fatto facilmente da un caposquadra.

Forse devi unire il tuo team di sviluppo con un altro, hai un team di test> sarebbe meglio usare lo stesso manager per entrambi, mantenendo il team di sviluppo semi-autonomo?

Mi sembra che il gestore del servizio possa fornirti felicemente tutto il lavoro necessario per eseguire e verificare che si adatti alla qualità necessaria, e non ha bisogno di alcuna esperienza di sviluppo per svolgere questo compito - il software è uno strumento di business, o si adatta ai requisiti o non lo fa, e di solito le persone migliori per determinare che sono gli utenti. Il responsabile del servizio fungerà da collegamento tra te e loro e, si spera, ti farà funzionare bene. Mi preoccuperei solo che non avesse abbastanza controllo sulle responsabilità della tua squadra, come se le cose iniziassero a andare male, finirai in uno stato infelice fino a quando la gestione non lo renderà (o, peggio, qualcun altro) responsabile tu.


1

I team autogestiti non sono così insoliti. Di solito richiedono metriche di prestazione chiare per creare responsabilità generate internamente. La tua organizzazione potrebbe avere questo, ma se non riesci a generare un numero di dipendenti aggiuntivo in base al risparmio sui costi, forse questo non funzionerà. L'altra sfida è che il tuo nuovo capo non sembra qualcuno che sappia premiare il talento.

Nel bene o nel male, sembra che tu abbia bisogno di un allenatore. Qualcuno che sia in grado di gestire la squadra, sia di esibirsi in essa. In un gruppo di 4, questo è certamente fattibile. In un gruppo di 8 o 10, non sarebbe. La sfida è identificare chi dovrebbe essere questo allenatore del giocatore. L'impostazione predefinita è di renderlo il miglior programmatore, ma vuoi necessariamente collegarli all'amministratore? Non esiste una risposta concreta e rapida, se non per dire che le organizzazioni ad alte prestazioni trovano il modo di non forzare tutti i loro migliori tecnici a diventare manager.


-1 per il primo paragrafo. +1 per il secondo paragrafo.
Jim G.

1

Il manager tende ad essere l'anello mancante tra l'organizzazione e il team di sviluppo.

  • Assicurano che il tuo lavoro sia pertinente e soddisfi le esigenze dell'organizzazione.
  • Risposta alla direzione superiore
  • Gestisci il programma in modo che il progetto sia puntuale
  • Assicurati che le tue esigenze per il progetto siano soddisfatte.

Squadre più piccole, con piccole responsabilità potrebbero funzionare senza un manager designato. Ma man mano che le responsabilità aumentano, avrai bisogno di qualcuno che gestisca tutti quei rischi e problemi.

E data la tua configurazione, qualcuno nel tuo team finirà per svolgere il ruolo di manager anche se non è designato come tale. Di solito le responsabilità distribuite non funzionano bene. Dipende molto da come viene distribuito e dal tipo di persone coinvolte.


1

I vantaggi di avere un manager dipendono dal ruolo che stanno giocando per la tua squadra. Quindi, si riduce davvero al ruolo necessario per il team:

  • Hai bisogno di qualcuno che abbia l'autorità per risolvere le controversie tra i membri del team e mantenere il team concentrato sulla consegna di un lavoro di buona qualità in tempo?
  • O hai bisogno di qualcuno che fornisca una copertura aerea come indicato in una risposta migliore? Gestire i programmi, decidere le priorità, intervenire tra la direzione superiore e il team, ecc.

Quindi ne hai bisogno? Le persone nelle posizioni che hai notato possono fare questo per te? Se è così, allora stai bene. In caso contrario, probabilmente stai andando verso il disastro.

Fonte: esperienza personale con progetti di gruppo e team gestiti e non gestiti.


0

Credo che i team flat siano sempre un problema a meno che tu non abbia incaricato un tizio di mandare un gruppo di ingegneri dello stesso livello / simili.

Come menzionato da S.Robins, SE tutti i membri del team sono ben disciplinati, mettere un manager può essere un collo di bottiglia inutile qui. Alcune delle piccole aziende in cui ho lavorato hanno vincoli di forza lavoro (a causa di vincoli di budget tra le altre ragioni) e quindi tendono a mettere un gruppo di pochi matricole / junior in una squadra piatta con un ragazzo sopra di loro gestendoli .

Se il gestore "di livello superiore" non è in grado di gestire le persone, ciò si ritorcerà contro. Le matricole / junior che iniziano la loro carriera stanno diventando estremamente competitive - cerca di stabilirsi saldamente il più presto possibile nel team e qualcuno deve a volte frenare le persone in modo che la loro competitività non pregiudichi la cooperazione.

Il problema di avere un team piatto è che con il ridimensionamento del progetto dovrai inevitabilmente lasciare che uno o due ragazzi facciano un po 'di più, assumendosi un po' più di responsabilità. A questo punto dovrai creare una gerarchia ben definita e sicuramente mettere in atto un Manager adeguato per rispondere alle chiamate e gestire le persone perché molto spesso quando ci sono promozioni all'interno dello stesso gruppo c'è sempre un gruppo infelice.

L'altra cattiva idea che vedo in molti Cos più piccoli è quella di mettere il ragazzo più anziano in termini di designazione o esperienza come manager. O il ragazzo più tecnicamente esperto del gruppo viene promosso al ruolo di manager. Non l'ho mai visto funzionare.

Sento che qualsiasi team di più di 4 persone avrà sicuramente bisogno di un Manager all'inizio della sua linea temporale se il progetto ha un buon ridimensionamento. Idealmente una persona tecnica con capacità di gestione dell'uomo, una buona comunicazione dovrebbe essere affidata a determinate decisioni.


0

Lavoro per un'azienda in cui adottiamo pratiche agili, in particolare Scrum. Funziona perfettamente su tutta la linea: i team di sviluppo e la direzione sono tutti felici. Ottengono ciò che vogliono.

  1. Tutti gli ingegneri riferiscono al responsabile tecnico. Engineering Manager è un ruolo estremamente tecnico e funzionale, con il ruolo che richiede di ottenere più affari per la divisione. Questo ruolo è equivalente al Product Owner.
  2. Il project manager ha un ruolo separato, simile a uno scrum master, e di solito è un appaltatore per un tempo fisso (da 12 mesi a 18 mesi, senza estensioni al contratto)
  3. Il project manager - scrum master - è completamente responsabile delle attività non funzionali e non di ingegneria

Questo ha funzionato meravigliosamente, poiché il team di sviluppo si concentra sugli aspetti ingegneristici, gli analisti aziendali / i proprietari dei prodotti si concentrano sugli aspetti aziendali. Il responsabile del progetto è responsabile del monitoraggio delle attività, del reporting e di altri compiti tipici di Scrum Master.

Il middle management è esternalizzato e non esiste un percorso di crescita dal middle management al top management. L'opportunità di crescita è dal ruolo del team di sviluppo o degli analisti aziendali al responsabile tecnico e non dai ruoli di supervisione.

La nostra azienda crede fermamente che il middle management non sia un grande valore aggiunto per un'azienda ed è meglio lasciarlo a società di consulenza esterne.


0

Un punto degno di nota è che, indipendentemente dal fatto che designino una persona come manager, è probabile che uno di voi diventerà il manager "di fatto", probabilmente la persona con più esperienza / tempo servito.

In particolare poiché ciò viene fatto come misura di riduzione dei costi (ovvero non pagare un manager, assumere invece uno sviluppatore) piuttosto che come pensiero attraverso la ristrutturazione, sembrerebbe probabile che il management superiore continuerà a funzionare come ha fatto in precedenza, solo trattando con le persone che conoscono meglio (vale a dire il servizio più lungo).

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.