Per diventare un lead tecnico, sono essenziali
-
La capacità di guidare i membri dello staff a tutti i livelli di anzianità, da qualcuno che è stato fuori dall'università per 3 mesi a una persona che ha programmato per 30 anni
-
Una buona conoscenza del tuo dominio di sviluppo. Ciò include: lingue, framework, utilità, ambienti di sviluppo
-
Una solida conoscenza dei sistemi di gestione dei problemi, delle capacità di gestione dei progetti e del controllo della versione
-
Diventa il killer di successo
-
Sapere come condurre revisioni di codice tempestive, cosa cercare e come ridurre al minimo il tempo di attesa e le modifiche da apportare
-
Tieniti aggiornato con gli sviluppi nel tuo dominio di sviluppo. Ad esempio, se non imparassi nuovi framework o tecnologie da .NET 2, oggi faresti le cose in modo piuttosto arretrato.
-
Come scrivere unit test e mock, e per far scrivere anche ai tuoi sviluppatori
-
Conoscenza di quali sono gli schemi di progettazione e quando usarli
-
Conoscenza di quali sono gli odori del codice e come ridurli
-
Integrazione continua
-
La capacità di pianificare progetti e versioni
A seconda della tua organizzazione e se hai architetti sullo staff, probabilmente dovresti sapere quanto segue:
-
La possibilità di eseguire la componentizzazione dei progetti e di suddividerli in parti funzionali
-
Una conoscenza approfondita della sicurezza, incluso il modo corretto di gestire le password, separare i sistemi, proteggere i dati, ecc.
-
Concetti aziendali come bus di servizio, code di messaggi, BizTalk
-
Modelli di progettazione aziendale
-
Architetture di servizio / RPC come SOAP e REST
-
Quadri ORM come Hibernate, Entity Framework, Doctrine
-
Implementazione continua
-
Il cloud
-
La possibilità di raccomandare le tecnologie corrette da utilizzare per un progetto. Questo potrebbe essere difficile se il tuo team / negozio fa solo .NET, o PHP o Java.
-
Progetta l'applicazione in modo che i miglioramenti futuri possano essere facilmente sistemati
Se hai intenzione di essere un responsabile dello sviluppo allora avrai anche bisogno di:
- Intervistare le competenze e trovare il personale giusto
- Come gestire i problemi delle persone con i membri del tuo team
- Gestione di direttive / obiettivi aziendali e conversione di informazioni pertinenti per i tuoi sviluppatori
- La possibilità di stimare il tempo per i programmatori di varie abilità
- La capacità di assegnare compiti agli sviluppatori corretti in base alle loro abilità e capacità
Infine, alcuni altri punti consigliati:
Gestire una squadra è un ruolo impegnativo. Devi essere la persona che può rispondere a qualsiasi domanda, devi conoscere le tecnologie giuste da usare (a meno che tu non abbia un architetto), devi avere abilità di gestione delle persone ed essere accessibile dal personale (assumendo una posizione di gestione). Oltre a questo, è necessario disporre di abilità di stima accurate per garantire la redditività del progetto e bisogna essere in grado di sporcarsi le mani con il codice di chiunque per individuare i problemi e risolverli rapidamente. Devi evitare di voler fare tutto da solo e promuovere un ambiente di squadra che non sia tossico. È necessario continuare a rimanere in cima al proprio stack tecnologico e apprendere gli ultimi sviluppi e le tecniche, nonché le più ampie tendenze del settore.
Dovresti conoscere davvero almeno una piattaforma di database e conoscerla bene. Sapere come eseguire la replica, le stored procedure, il funzionamento dell'ottimizzatore della query e come progettare correttamente uno schema e quali campi indicizzare.
Indipendentemente dalla posizione esatta, qualsiasi ruolo senior richiede che tu abbia la capacità di comunicare in modo efficace. Se non sei un altoparlante fiducioso, guarda qualcosa come Toast Masters (parlare in pubblico). Scopri come fare e mantenere il contatto visivo. Sii fiducioso. Vestiti in modo appropriato per la posizione. Dare un esempio.