Hay muchos artículos interesantes sobre las posibles trayectorias profesionales que se pueden seguir en el ámbito de las TI. No he visto muchos que puedan servir de orientación para ascender en la escala profesional. En casi todas las empresas de TI más o menos maduras, la trayectoria profesional habitual de un ingeniero de software es lineal. La trayectoria profesional posterior dependerá de tus inclinaciones, de lo que te guste hacer y de si estás preparado para el cambio en tu forma de trabajar.
Hay muchos artículos buenos sobre posibles trayectorias profesionales que puedes seguir en TI, sin embargo, no he visto muchos que puedan usarse como orientación real para ascender en la carrera profesional.
Actualmente, trabajo en una empresa que tiene requisitos muy claros para la promoción de los ingenieros y qué se puede utilizar como evidencia suficiente del cumplimiento de esos requisitos. Una combinación de estos dos factores me dio la idea de que información adicional sobre este tema podría ayudar a otros ingenieros que trabajan en empresas que no cuentan con ella a construir una estrategia que les permita llegar al siguiente nivel.
En casi cualquier empresa de TI más o menos madura, la trayectoria profesional común para un ingeniero de software es lineal y parece casi la misma:
El ingeniero de software asociado es opcional y puede o no presentarse en la estructura común del departamento de TI por una razón muy simple: es negativo durante los primeros 12 meses, ya que requiere mucha asistencia, por lo que no todas las empresas tienen los recursos y el tiempo para permitir dichos puestos en su estructura.
El futuro de tu carrera dependerá de tus inclinaciones, de lo que te gusta hacer y de si estás preparado para el cambio en tu forma de trabajar.
No hay nada de malo en seguir siendo un ingeniero de software sénior si te gusta dedicar la mayor parte de tu tiempo a la codificación. Sin embargo, si sientes la necesidad de empoderar a otros y liderar, ese es el momento adecuado para sopesar todas las expectativas para cada puesto, tus fortalezas, las cosas que te motivan y elegir el camino más adecuado para ti.
A pesar de la simplicidad visual de las pistas anteriores, no está claro cómo acercarse al final correcto. Las siguientes ideas se aplicarán a las empresas que:
una estructura jerárquica donde cada empleador tiene un gerente de línea
Un interés genuino en el desarrollo de los empleados
¿Por qué es importante lo mencionado anteriormente? La respuesta es muy sencilla: desde el primer día tienes un aliado: tu superior directo .
La eficiencia de cada gerente de línea se basa en el rendimiento de cada persona que reporta a él: cuanto más rápido crezcas, cuanto mayor sea tu rendimiento, mejor será la eficiencia del gerente de línea. Teniendo en cuenta todo esto, tarde o temprano, después de que te hayas incorporado a tu empresa, tu gerente de línea se acercará a ti y te preguntará: "¿Dónde te ves después de un tiempo determinado?". Si no es así y tienes reuniones individuales periódicas, no dudes en añadir este tema de discusión en la agenda.
Expresar tus intenciones y fijarte un objetivo es solo el primer paso. El siguiente paso es recopilar la lista de requisitos para el puesto más alto y elaborar una lista de logros que sirva como evidencia de tus calificaciones y que te sirva como guía para llegar del punto A al punto B. En las empresas con procesos de promoción transparentes, esto ya debería estar implementado.
Si no es el caso, usted y su gerente pueden redactar uno. Recuerde que este proceso es beneficioso para ambas partes: usted está llegando a un acuerdo de que, después de ciertos logros, usted será elogiado con el ascenso y su gerente de línea puede obtener un mayor rendimiento del equipo, por lo que es un caso en el que todos ganan.
Es posible que distintas empresas tengan distintos requisitos para determinados puestos, y no pretendo afirmar que los que se indican a continuación sean universales y se adapten a todo el mundo. El objetivo principal es darte una idea de cómo podría ser si necesitas uno que se adapte aún más a tus necesidades.
Las pautas para la evidencia se pueden utilizar como una hoja de ruta que lo lleve al destino deseado. Los próximos pasos para la vía común podrían ser:
Consulte la hoja de ruta del equipo para encontrar proyectos adecuados o solicitudes de cambio que puedan ajustarse al propósito de la evidencia.
Comunique sus intenciones a su superior de línea para que pueda ayudarle con la asignación adecuada del proyecto y brindarle información sobre su prioridad, valor comercial y cuándo puede retomarse para su desarrollo.
Identifique áreas potenciales de mejora en el código, la observabilidad, la extensibilidad y las perspectivas de seguridad y preséntelas como tickets de propiedad.
Familiarícese con el proceso de selección actual de su empresa y solicite que lo acompañen durante las sesiones de selección. Pida cambiar de puesto y que alguien de mayor jerarquía lo acompañe y pídale comentarios.
Esta es una lista breve de los roles que se cubrirán desde la perspectiva de los requisitos/pautas de la evidencia:
Pista común
Requisitos para ingeniero de software júnior
Requisitos para ingenieros de software
Requisitos para el puesto de ingeniero de software sénior
Pista de Ingeniería
Requisitos del ingeniero jefe
Requisitos para el puesto de director de ingeniería sénior
Pista de gestión
Gerente de ingeniería
Director de ingeniería
Requisitos para ingeniero de software júnior
Área
Requisitos
Pautas para la evidencia
Entrega
Entrega tareas · Se necesitan requisitos claros (de negocio y de sistema) · Diseña/implementa soluciones técnicas de alcance limitado · Se requiere orientación limitada
1. Lista de tareas completadas o Las tareas deben ser lo suficientemente complejas como para mencionarlas. o Se cumplen los plazos o No hay problemas importantes de calidad o Las tareas se completaron sin ayuda. 2. Información del superior de línea confirmando que se cumplen todos los requisitos.
Calidad
Aplica las mejores prácticas · Aprende y aplica constantemente las mejores prácticas. · Competente con varias herramientas de desarrollo. · Investiga y corrige problemas/errores complicados.
Retroalimentación del gerente de línea y de los pares que confirma que se cumplen todos los requisitos.
Requisitos para ingenieros de software
Área
Requisitos
Pautas para la evidencia
Entrega
Entrega solicitudes de cambio (funciones) · Toma los requisitos del negocio como entrada · Divide el trabajo en tareas con un nivel suficiente de detalle sobre la solución (qué debe hacerse y cuándo debe hacerse) y la implementación (cómo debe hacerse). · Proporciona estimaciones precisas a nivel de tarea/historia de usuario. · Colabora con otros ingenieros para entregar más rápido
Relación de solicitudes de cambio entregadas, conforme a los siguientes requisitos: 1. La solicitud de cambio se ha entregado en su totalidad y se cumplió el plazo. 2. La parte de descubrimiento fue realizada por el empleado (tickets, presupuestos). 3. La solicitud de cambio es lo suficientemente compleja desde una perspectiva técnica (más de 2 semanas-hombre para que un ingeniero la implemente). 4. La solicitud de cambio proporciona un impacto significativo en el negocio. 5. La solicitud de cambio está aprobada por la empresa y se ejecuta en producción. 6. El empleado ha demostrado un nivel suficiente de autonomía y calidad (según el feedback del responsable técnico y del gerente de ingeniería).
Diseño del sistema
Servicios de diseño · Diseña e implementa servicios más pequeños teniendo en cuenta todos los aspectos no funcionales (extensibilidad, seguridad, observabilidad, etc.) · Escribe código de alta calidad con plena adopción de prácticas y metodologías de ingeniería. · Participa en revisiones de código para aplicar las mejores prácticas. · Corrige las causas fundamentales de los errores y problemas encontrados.
Al menos dos servicios diseñados conforme a los siguientes requisitos: 1. Puede ser un nuevo servicio o un rediseño completo del servicio existente. 2. Puede ser un servicio independiente, una biblioteca o un componente consumido por otros servicios. 3. El servicio no debe ser trivial desde una perspectiva de diseño. 4. El ingeniero debería haber seguido el proceso de diseño formal: · Obtener requisitos de negocio y del sistema · Identificar el contexto delimitado · Identificar requisitos no funcionales · Desglosar el contexto en servicios · Obtener retroalimentación sobre la solución · Implementarlo 5. El servicio está implementado y se está ejecutando en producción.
Ingeniero de software sénior
Área
Requisitos
Pautas para la evidencia
Entrega
Entrega fases del proyecto (epopeyas) · Toma los requisitos y el diseño del sistema de alto nivel como entrada. · Crea el diseño del sistema para el servicio o el componente, decide las tecnologías y prácticas de ingeniería que se utilizarán · Divide el trabajo en tareas o historias de usuario con un nivel suficiente de detalle sobre la solución (qué debe hacerse y cuándo se hace) y la implementación (cómo debe hacerse) · Proporciona estimaciones precisas a nivel de tarea/historia de usuario · Lidera un equipo pequeño para entregar el alcance. · Desbloquea a su equipo, resuelve problemas y elimina impedimentos.
Relación de fases/epopeyas del proyecto entregadas, conforme a los siguientes requisitos: 1. La fase épica/proyecto se ha entregado en su totalidad y se cumplió el plazo. 2. La parte de descubrimiento fue realizada por el empleado (tickets, presupuestos). 3. La fase épica/proyecto es bastante compleja desde una perspectiva técnica (requiere al menos 2 ingenieros durante >= 2 semanas). 4. La fase épica/proyecto proporciona un impacto significativo en el negocio. 5. La funcionalidad está aprobada por la empresa y se ejecuta en producción. 6. El empleado ha demostrado un nivel suficiente de autonomía y calidad (según los comentarios del líder técnico y el gerente de ingeniería). 7. El ingeniero participó en la implementación como líder técnico.
Diseño del sistema
Diseña subsistemas · Es lo mismo que para un Ingeniero de Software pero se centra en servicios o subsistemas más complejos. · Competente en el diseño e implementación de sistemas distribuidos y en la nube.
Al menos 3 servicios diseñados conforme a los siguientes requisitos: 1. Puede ser un nuevo servicio o un rediseño completo del servicio existente. 2. Puede ser un servicio independiente, una biblioteca o un componente consumido por otros servicios. 3. El servicio no debe ser trivial desde una perspectiva de diseño. 4. El ingeniero debería haber seguido el proceso de diseño formal: a. Obtener los requisitos del negocio y del sistema. b. Identificar el contexto delimitado c. Identificar requisitos no funcionales d. Desglosar el contexto en servicios e. Obtener retroalimentación sobre la solución. f. Implementarlo 5. El servicio está implementado y se está ejecutando en producción.
Impulsando cambios
Propone cambios · Cuestiona el status quo y las suposiciones hechas · Encontrar formas de mejorar la plataforma, los procesos, el entorno de trabajo y el equipo técnico en general.
Se propusieron al menos tres cambios significativos, que pueden ser cualquiera de los siguientes: 1. Funcionalidad: se propuso una solicitud de cambio que fue priorizada e implementada (la solicitud de cambio debe ser lo suficientemente sustancial como para ser considerada como un cambio, no un cambio cosmético). 2. Personas: entrevistó a un ingeniero que fue contratado y pasó el período de prueba (ingeniero de software junior o superior, considerado como un cambio en el equipo). 3. Propiedad: se propuso un proyecto de propiedad (incluido en la hoja de ruta de propiedad, aprobado por el CTO).
Requisitos del ingeniero jefe
Área
Requisitos
Pautas para la evidencia
Entrega
Líder técnico de proyectos (propuestas de proyectos) · Toma los requisitos del negocio como entrada · Encontrar la solución más eficaz para el problema de negocio (investigar alternativas, validar soluciones utilizando enfoques sin código o con poco código) · Crea el diseño del sistema para el nuevo servicio o subsistema, decide las tecnologías y prácticas de ingeniería que se utilizarán · Divide el trabajo en epopeyas con un nivel suficiente de detalle sobre la solución (qué debe hacerse y cuándo se hace) y la implementación (cómo debe hacerse) · Proporciona estimaciones precisas a nivel de proyecto y se compromete con las fechas. · Actúa como líder técnico durante todo el proyecto. · Desbloquea a su equipo, resuelve problemas y elimina impedimentos. · Gestiona riesgos tecnológicos, de implementación y operativos.
Relación de proyectos entregados, conforme a los siguientes requisitos: 1. La solución al problema fue propuesta por el empleado y se considera que es efectiva, es decir, se evaluaron múltiples alternativas y se eligió la mejor alternativa en función de la validación de código bajo/sin código. 2. La parte de descubrimiento fue realizada por el empleado (tickets, presupuestos). 3. La solución fue diseñada por el empleado. 4. El proyecto debe ser un proyecto “destacado” iniciado a través de una propuesta de proyecto. 5. El ingeniero participó en la implementación como líder técnico (consulte la columna de requisitos para obtener más detalles).
Impulsando cambios
Impulsa cambios técnicos (equipo) · Propone e implementa iniciativas para mejorar la calidad del sistema y reducir la deuda técnica. · Propone e implementa cambios para mejorar la experiencia y la productividad de los desarrolladores. · Aboga y hace cumplir un código limpio y una arquitectura limpia.
Lista de cambios importantes introducidos (normalmente al menos cuatro), conforme a los siguientes requisitos: 1. El cambio proporciona una mejora significativa en la calidad del sistema (por ejemplo, mejoras en la plataforma), la experiencia o la productividad de los desarrolladores. El cambio afecta a todo el equipo. 2. El ingeniero no tiene por qué ser quien propuso el cambio. El ingeniero debe ser la principal fuerza impulsora detrás del cambio (por ejemplo, quien lo diseñó, quien actuó como líder técnico, quien participó en la implementación). El cambio puede ser implementado por un ingeniero o como resultado de un esfuerzo en equipo. 3. El cambio debe ser completamente implementado y utilizado por el equipo/plataforma (el cambio debe ser “permanente” y brindar suficiente valor para mantenerlo). 4. El cambio debe ser lo suficientemente significativo como para mencionarlo.
Gente
Mentor · Orienta y apoya a ingenieros con menos experiencia. · Realiza entrevistas técnicas de manera eficaz. · Actúa como un “imán” para los grandes ingenieros durante la contratación (es un factor decisivo cuando competimos por buenos talentos frente a otra empresa)
Posible evidencia: 1. Ingenieros entrevistados, que fueron contratados y pasaron el período de prueba. 2. Retroalimentación de ingenieros capacitados. 3. Se organizan/imparten sesiones de capacitación para todo el equipo técnico (por ejemplo, Tech Sync, Engineering Dojo). 4. Al dirigir un grupo de trabajo, se puede utilizar como evidencia una lista de cambios propuestos/implementados en el ámbito del grupo de trabajo.
Líder sénior de ingeniería
Área
Requisitos
Pautas para la evidencia
Entrega
Líder técnico para proyectos complejos (propuestas de proyectos) Igual que el ingeniero líder, pero se centra en problemas que son complejos desde perspectivas técnicas, organizacionales o comerciales. · El proyecto requiere coordinación entre varios equipos. · El proyecto involucra a un proveedor de tecnología externo o a una parte interesada (por ejemplo, una asociación) · una nueva creación de producto mientras el producto está en modo de descubrimiento · Proyecto de alta prioridad/urgencia con plazos fijos y muchas incógnitas
Relación de proyectos entregados, conforme a los siguientes requisitos: 1. El proyecto se considera complejo (ver ejemplos a la izquierda). 2. El proyecto se entregó en su totalidad (todos los entregables + DoD) y se cumplió el plazo. 3. La solución para el problema fue propuesta por el empleado y se considera efectiva (es decir, se evaluaron múltiples alternativas y se seleccionó la mejor alternativa con base en la validación de bajo código/sin código). 4. La parte de descubrimiento fue completada por el empleado (requisitos del sistema, tickets, estimaciones). 5. La solución fue diseñada por el empleado. El proyecto tiene una alta complejidad desde la perspectiva del diseño del sistema. 6. Un ingeniero participó en la implementación como líder técnico.
Impulsando cambios
Impulsa cambios técnicos (tecnología) · Igual que E5 pero a nivel tecnológico · Propietario del sistema para al menos un aspecto no funcional (por ejemplo, seguridad, observabilidad, etc.).
Lista de cambios importantes introducidos (normalmente al menos 4), conforme a los siguientes requisitos: 1. El cambio proporciona una mejora significativa en la calidad del sistema (por ejemplo, mejoras en la plataforma), la experiencia o la productividad de los desarrolladores. El cambio afecta a varios equipos (por ejemplo, adopción de tecnología). 2. El ingeniero no tiene por qué ser quien propuso el cambio. El ingeniero debe ser la principal fuerza impulsora detrás del cambio (por ejemplo, quien lo diseñó, quien actuó como líder técnico, quien participó en la implementación). El cambio en sí puede ser implementado por un ingeniero o como resultado de un esfuerzo en equipo. 3. El cambio debe implementarse por completo y ser utilizado por varios equipos (los cambios deben ser “permanentes” y brindar suficiente valor para mantenerlo). 4. El cambio debe ser lo suficientemente significativo como para mencionarlo. Debe registrarse en la página de “próximos proyectos” como un proyecto de propiedad (propiedad en este contexto significa cambios en la plataforma, herramientas, procesos, etc., no solo cambios relacionados con la plataforma). 5. Al menos 2 cambios deben estar relacionados con el aspecto no funcional propiedad del individuo.
Gente
Experto reconocido · Experto reconocido dentro de un área determinada de especialización a nivel de empresa, actúa como punto de contacto técnico en tecnología dentro de su área de especialización. · Supervisa las tendencias/tecnologías dentro del área de especialización y comunica actualizaciones y hallazgos. · Comparte su experiencia de forma activa y regular con otros ingenieros (talleres, charlas técnicas, capacitaciones) · Facilita la colaboración para encontrar soluciones a problemas complejos (grupos de trabajo, etc.) · Realiza entrevistas técnicas de manera eficaz. · Orienta y apoya a ingenieros con menos experiencia, orientando su carrera desde una perspectiva de desarrollo profesional. · Actúa como un “imán” para los grandes ingenieros durante la contratación (es un factor decisivo cuando competimos por buenos talentos frente a otra empresa)
Posible evidencia: 1. Entrevistó a ingenieros que fueron contratados y pasaron el período de prueba. 2. Retroalimentación de ingenieros capacitados. 3. Se organizan/imparten sesiones de capacitación para todo el equipo técnico (por ejemplo, Tech Sync, Engineering Dojo). 4. Al dirigir un grupo de trabajo, se puede utilizar como evidencia una lista de cambios propuestos/implementados en el ámbito del grupo de trabajo.
Gerente de ingeniería
Área
Requisitos
Pautas para la evidencia
Entrega
Entrega la hoja de ruta del equipo · Lidera un equipo de 3 a 6 ingenieros. · Actúa como gerente de proyectos para múltiples iniciativas simultáneas. · Capaz de entregar resultados teniendo como entrada únicamente los requisitos del negocio (capaz de crear y aprobar requisitos del sistema) · Se centra en el impacto empresarial, impulsado por el valor empresarial. · Comunica compromisos, estado y riesgos a las partes interesadas del negocio. · Se asegura de que todos los miembros del equipo tengan toda la información que necesitan. · Se comunica con terceros dentro del ámbito de las iniciativas/propiedad. · Encuentra el equilibrio adecuado entre la entrega de funciones y la calidad del sistema. · Todos los requisitos para Ingeniero de Software Senior
Nuevos proyectos entregados por el equipo que cumplan con los siguientes requisitos: 1. Proyecto iniciado a través de una propuesta de proyecto. 2. El proyecto ha cumplido con sus métricas de impacto y se cumplió el compromiso público. 3. Los proyectos reportados en el ciclo de promoción anterior no podrán ser incluidos en la lista.
Productividad
Impulsa cambios gerenciales (equipo) · Mide y mejora continuamente el rendimiento del equipo. · Identifica y establece las mejores prácticas dentro del equipo con un enfoque en la productividad. · Mantiene una alta calidad de entrega. · Garantiza la transparencia sobre el progreso, los riesgos y los resultados.
1. Valores de las métricas de productividad (rendimiento) del equipo. 2. Se han introducido cambios importantes (al menos 4) que cumplan los siguientes requisitos: a. Resuelve un problema relacionado con el equipo o tribu propios, el problema debe incluirse en el TOP 5 de problemas y acordarse con el gerente de línea. b. El cambio debe ser implementado y utilizado en su totalidad por el equipo (el cambio debe ser “permanente” y brindar suficiente valor para mantenerlo). c. El cambio debe proporcionar una mejora significativa en la productividad, el compromiso o la calidad de la prestación del servicio. d. El gerente no tiene por qué ser quien propuso el cambio. El gerente de gestión debe ser la principal fuerza impulsora detrás del cambio. El cambio puede ser implementado por un ingeniero o como un esfuerzo de equipo.
Gente
Jefe de línea (>=3 informes directos) · Gestiona de 3 a 6 informes directos · Entrena y apoya a los ingenieros. · Apoya y guía las progresiones profesionales. · Concilia las diferencias de opinión y ayuda a gestionar y resolver conflictos. · Fomenta una cultura de equipo positiva y la colaboración.
1. Valores de las métricas de participación del equipo. 2. Lista de ingenieros que fueron contratados y pasaron el período de prueba (se puede omitir si no estamos contratando, EM debería ser un gerente de contratación).
Director de ingeniería
Área
Requisitos
Pautas para la evidencia
Entrega
Proporciona una hoja de ruta para varios escuadrones · Garantiza la entrega en 2 o 3 escuadrones. · Cumple el rol de Gerente de Ingeniería en uno de los escuadrones. · Posee asociaciones con terceros · Todos los requerimientos del Gerente de Ingeniería
Nuevos proyectos entregados por los equipos conforme a los siguientes requisitos: 1. Proyecto iniciado a través de una propuesta de proyecto (no una actividad BAU). 2. El proyecto ha cumplido con sus métricas de impacto y se cumplió el compromiso público. 3. Los resultados del proyecto se presentaron en una sesión técnica. 4. Los proyectos reportados en el ciclo de promoción anterior no podrán ser incluidos en la lista. 5. Al menos 2 proyectos deben ser reconocidos como proyectos clave a nivel de la empresa (por ejemplo, un nuevo producto, etc., puede confirmarse con el CTO).
Impulsando el cambio
Impulsa cambios gerenciales (múltiples escuadrones/técnicos) · Todos los requisitos de Ingeniería pero en varios escuadrones. · Propietario del sistema para al menos un proceso (por ejemplo, soporte, etc.)
1. Valores de las métricas de productividad (rendimiento) de los escuadrones en varios escuadrones. 2. Cambios importantes (al menos 6) introducidos, de conformidad con los siguientes requisitos: a. Resuelve un problema relacionado con los escuadrones o la tribu, un problema debe estar incluido en el TOP 5 de problemas y ser acordado con el gerente de línea. b. El cambio debe implementarse en su totalidad y los equipos deben utilizarlo (el cambio debe ser “permanente” y brindar suficiente valor para mantenerlo). c. El cambio debe proporcionar una mejora significativa en la productividad, el compromiso o la calidad de la prestación del servicio. d. El gerente no tiene por qué ser quien propuso el cambio. El director de ingeniería debe ser la principal fuerza impulsora detrás del cambio. El cambio puede ser implementado por un ingeniero o como un esfuerzo de equipo. e. Al menos 2 cambios deben estar relacionados con el proceso propiedad del director.
Gente
Jefe de línea (>=10 informes, incluidos los informes indirectos) · Todos los requisitos para Gerente de Ingeniería · Entrena y apoya a los ingenieros. · Apoya y guía las progresiones profesionales. · Gestiona la pérdida de clientes y reduce la “pérdida lamentable”
1. Valores de las métricas de participación de los escuadrones en varios escuadrones. 2. Lista de ingenieros que fueron contratados y pasaron el período de prueba (se puede omitir si no estamos contratando). 3. Lista de ingenieros promovidos (se puede omitir si no hay una necesidad comercial para realizar promociones).