Che cosa rende un buon architetto / manager / lead developer?

12

Sono lo sviluppatore principale di una piccola azienda di software. Negli ultimi due anni, il mio team è cresciuto da uno sviluppatore (io) a un gruppo di circa nove persone. Molti di noi sono ingegneri molto capaci e senior (20+ anni di esperienza nella creazione di software a persona), quindi in genere è necessario pochissimo tempo. Usiamo Scrum per gestire i nostri sforzi e di solito otteniamo risultati molto rapidi con requisiti minimi scritti.

Mentre il team è cresciuto, ho raggiunto il punto in cui è difficile per me mantenere il controllo tecnico sull'intero progetto, scrivendo anch'io quantità significative di nuovo codice, quindi è giunto il momento per me di adattare il mio ruolo. Come posso rendermi più utile alla squadra quando non spendo più la maggior parte del mio tempo a sviluppare?

Il mio obiettivo è quello di consentire al mio gruppo di crescere ulteriormente (ovvero aumentare la velocità di Scrum) aggiungendo altri sviluppatori , quindi non voglio semplicemente diventare la "polizia dell'architettura" che impone la mia volontà sulla squadra. In altre parole, voglio essere il ragazzo che aiuta le cose a lavorare meglio / più agevolmente, piuttosto che essere il tipo che rallenta le cose aggiungendo un inutile strato di burocrazia. Tuttavia, uno dei nostri principali rischi è che le cose andranno fuori controllo se aggiungiamo più persone senza una struttura sufficiente per tenerci tutti sulla stessa pagina.

Qual è il modo migliore per raggiungere il mio obiettivo?

    
posta brianberns 24.08.2012 - 03:59
fonte

3 risposte

12

If you were on a team like this, what would you want your boss to do with his time?

  1. Rimuovi gli impedimenti per progredire.
  2. Media le controversie tra i membri del team.
  3. Interagire con gli uomini d'affari, quindi non è necessario.
  4. Tienici informati di quel business / progetto di alto livello, quindi non ci sentiamo isolati.
  5. Mantienici onesti, soprattutto se / quando una mela cattiva entra nel team.
  6. Sii un difensore del team per gli altri reparti.
  7. Sii la voce unificata del respingimento contro richieste commerciali irragionevoli.
  8. Facilitare la comunicazione tra il team.

Probabilmente c'è un mucchio che sto dimenticando, ma questo è il nocciolo della questione. Non implementare il processo, gestire parte di tale overhead / inefficienza che si sviluppa naturalmente all'aumentare delle dimensioni del team.

    
risposta data 24.08.2012 - 04:17
fonte
6

Non avrei avuto problemi con un team leader che fosse in grado di bilanciare sia le mansioni manageriali che quelle tecniche, ma è difficile trovare persone che gestiscano bene tale equilibrio.

Se dovessi scegliere tra i due estremi di un team leader in una squadra in crescita ... è una scelta davvero difficile, ma alla fine penso che vorrei che il team portasse a diventare più manager. Su un team considerevole, speravi che ci sarebbero altri candidati da inserire nel ruolo di sviluppatore senior che potrebbero nutrire i nuovi membri del team e fare ancora un po 'di sollievo nello sviluppo.

Ma in una squadra in crescita vorresti sicuramente anche un buon manager. In effetti, avere una buona persona con il titolo di gestione è importante perché vuoi che abbia abbastanza potere per prendere buone decisioni. Un buon manager ha una grande influenza sulla felicità di una squadra e per le ragioni che stai indicando; aiutandoti a mantenerli produttivi - e fa bene a te per pensare come te. Ci sono molti manager che non si danno il culo.

Consiglierei qualche altro post qui ai programmatori. Sebbene siano più adatti a un ruolo di guida che a un ruolo manageriale ufficiale, possono aiutare:

Passaggio al team leader

Come faccio a diventare uno sviluppatore principale?

Come guadagnare membri del team rispetto come team lead?

    
risposta data 24.08.2012 - 04:48
fonte
4

Penso che sia un equilibrio di questi tratti:

  • Abilità tecnica : non vuoi che qualcuno che guida non possa valutare la qualità del lavoro che sta dirigendo.
  • Self-driven : può definire obiettivi e non essere reattivo.
  • Saper sfruttare il conflitto : il conflitto attiva le conversazioni
  • Auto-didattico : non è importante che lui sappia tutto, ma sa come imparare.
  • Buona attitudine ed energia : vuoi qualcuno che motiva e rende più facile il lavoro di tutti, non una diva che abbaia ordini.
  • Esperienza con errori : probabilmente la più importante. Ho visto leader molto giovani che potrebbero non avere alcun problema con tutto il precedente, ma al primo segnale di insuccesso bloccano o evitano la responsabilità. Anzianità non ha nulla a che fare con l'età, ma la giusta quantità di esperienza giusta, e il fallimento è sicuramente qualcosa da considerare.

OTOH, l'intervista è una parte importante per ottenere la persona giusta, ti consiglierei di porre le seguenti domande nell'intervista:

  • "Dimmi un progetto in cui hai riscontrato un errore, come lo hai gestito e ciò che hai imparato da esso"
  • "Parlami di una volta in cui hai infranto le regole per fare le cose"
  • Applica il Fizz Buzz prova, con una leggera torsione che ti viene in mente.

Il test FizzBuzz è assolutamente d'obbligo, avere ragione o torto non è importante quanto:

  • Il tempo necessario per rispondere : 15 minuti in media, 30 minuti borderline ok, > 30 minuti NON OK
  • Se è in grado di eseguire il debug del proprio codice : una volta ho avuto un ragazzo con 15 anni di esperienza in una posizione senior ... ci sono voluti 40 minuti per fare il test .. in pseudocodice ... ha sbagliato e non è riuscito a scoprire perché. Ho avuto un altro caso in cui un altro ragazzo, trascorso circa 5 minuti, si è giustificato e non ha potuto accettare di avere torto.
risposta data 24.08.2012 - 06:16
fonte

Leggi altre domande sui tag