Para convertirse en un líder técnico, los siguientes son essential
-
La capacidad de guiar a miembros del personal en todos los niveles de antigüedad, desde alguien que ha estado fuera de la universidad por 3 meses a una persona que ha estado programando por 30 años
-
Un buen conocimiento de su dominio de desarrollo. Esto incluye: idiomas, marcos, utilidades, entornos de desarrollo
-
Una sólida comprensión de los sistemas de gestión de problemas, habilidades de gestión de proyectos y control de versiones
-
Conviértete en el asesino de bugs
-
Sepa cómo realizar revisiones oportunas de códigos, qué buscar y cómo minimizar el tiempo que demoran en retener y los cambios que se realizarán
-
Manténgase actualizado con los desarrollos en su dominio de desarrollo. Por ejemplo, si no aprendió nuevos marcos o tecnologías de .NET 2, hoy estaría haciendo las cosas bastante al revés.
-
Cómo escribir pruebas unitarias y simulacros, y hacer que los desarrolladores también los escriban
-
Conocimiento de qué son los patrones de diseño y cuándo usarlos
-
Conocimiento de qué son los olores de códigos y cómo mitigarlos
-
Integración continua
-
La capacidad de planificar proyectos y lanzamientos
Dependiendo de su organización y de si tiene arquitectos en el personal, probablemente necesite saber lo siguiente:
-
La capacidad de crear componentes de sus proyectos y dividirlos en partes funcionales
-
Una comprensión exhaustiva de la seguridad, incluida la forma correcta de administrar contraseñas, separar sistemas, proteger datos, etc.
-
Conceptos empresariales como buses de servicio, colas de mensajes, BizTalk
-
Patrones de diseño empresarial
-
Arquitecturas de servicio / RPC como SOAP y REST
-
marcos ORM como Hibernate, Entity Framework, Doctrine
-
Implementación continua
-
La nube
-
La capacidad de recomendar las tecnologías correctas para usar en un proyecto. Esto puede ser difícil si su equipo / tienda solo hace .NET, PHP o Java.
-
Diseñe la aplicación de tal manera que las mejoras futuras se puedan acomodar fácilmente
Si va a ser un administrador de desarrollo, también necesitará:
- Habilidades de entrevista y cómo encontrar el personal adecuado
- Cómo tratar los problemas de las personas con los miembros de su equipo
- Administrar las directivas / objetivos comerciales y convertir los relevantes en información para sus desarrolladores
- La capacidad de estimar el tiempo para programadores de diferentes habilidades
- La capacidad de asignar tareas a los desarrolladores correctos en función de sus habilidades y capacidades
Y finalmente, algunos otros puntos recomendados:
Administrar un equipo es un rol difícil. Debes ser la persona que puede responder cualquier pregunta, debes conocer las tecnologías correctas para usar (a menos que tengas un arquitecto), debes tener habilidades de administración de personas. y ser accesible por su personal (asumiendo una posición de gestión). Además de esto, debe tener habilidades de estimación precisas para garantizar la rentabilidad del proyecto y debe poder ensuciarse las manos con el código de cualquier persona para identificar problemas y solucionarlos rápidamente. Debe evitar querer hacer todo por sí mismo y fomentar un ambiente de equipo que no sea tóxico. Debe estar continuamente al tanto de su pila de tecnología y aprender los últimos desarrollos y técnicas, así como las tendencias más amplias de la industria.
También deberías conocer realmente al menos una plataforma de base de datos, y saberlo bien. Sepa cómo realizar la replicación, los procedimientos almacenados, cómo funciona el optimizador de consultas, cómo diseñar un esquema correctamente y qué campos indexar.
Independientemente de la posición exacta, cualquier rol senior requiere que usted tenga la capacidad de comunicarse de manera efectiva. Si no eres un orador seguro, mira hacer algo como Toast Masters (hablar en público). Aprenda cómo para hacer y mantener el contacto visual. Tener confianza. Vístase apropiadamente para la posición. Predicar con el ejemplo.