Trabajar en tecnología implica mucho más que dominar un lenguaje de programación. Necesitas comunicarte con tu equipo, entender la estructura organizacional y manejar con soltura el vocabulario que describe roles, departamentos y metodologías. Aquí se desglosan los términos esenciales en inglés que todo profesional del software debe conocer para integrarse en cualquier empresa de habla inglesa.
¿Qué roles existen en un equipo de ingeniería?
En inglés, las palabras engineer y developer se usan de forma intercambiable, incluso si no tienes un título universitario en ingeniería [0:18]. Los niveles se definen según la experiencia:
- Junior developer: profesional con poca experiencia.
- Developer: nivel intermedio, sin adjetivo adicional.
- Senior developer: mayor trayectoria y responsabilidad.
Muchas empresas han extendido lo que se conoce como engineering ladder para incluir niveles adicionales como staff engineer y principal engineer [0:46]. También existen roles más específicos: los analysts tienden a escribir menos código y más descripciones de lo que debe hacerse, mientras que los architects se preocupan por la arquitectura general de un sistema y no por los detalles de un solo componente [1:00].
Todos estos roles pertenecen a la categoría de individual contributors o ICs, es decir, personas que escriben código o trabajan de forma individual sin gestionar el trabajo de otros [1:18]. Un IC puede ser team leader, pero no es responsable del trabajo que realizan los demás miembros del equipo.
¿Cómo funciona el management track?
Quienes asumen la responsabilidad sobre el trabajo de otros entran en el management track [1:36]. La progresión típica es:
- Manager: gestiona un equipo.
- Senior manager: más experiencia, suele gestionar a otros managers.
- Director: nivel superior de gestión.
- VP o vice president: liderazgo estratégico.
Algunas empresas abusan de los títulos director y VP, mientras que otras los reservan para posiciones muy altas [2:00]. Todo culmina en el C-suite [2:10], donde suite significa sala y la C viene de chief. Aquí encontramos al chief executive officer (CEO), al chief finance officer (CFO) y al chief marketing officer (CMO).
¿Cuál es la diferencia entre CTO y CIO?
En el lado tecnológico existen el chief technology officer (CTO), el chief information officer (CIO) y el chief product officer (CPO) [2:32]. La distinción clave es que el CTO lidera la tecnología en empresas cuyo producto se basa en tecnología, mientras que el CIO gestiona la información interna de la compañía [2:48]. Un banco tendrá un CIO; una empresa como Platzi tendrá un CTO.
¿Cómo se organizan los departamentos y equipos?
Los departamentos principales que interesan a un desarrollador son engineering y product, donde se construye lo que se ofrece al usuario [3:12]. El departamento de IT (information technology) construye soluciones internas. También existe data science, que analiza métricas y genera reportes, y operations, que se encarga de poner el código en producción [3:26].
Dentro de operaciones aparece el rol de DevOps, un profesional que conoce tanto el código como la infraestructura donde se ejecuta, y que usa código para gestionar esa infraestructura [3:40]. Empresas como Google y Facebook prefieren el título systems reliability engineer o SRE [3:55].
Tu team o squad es el grupo con el que trabajas día a día [4:00]. Una práctica común es el pairing, donde dos personas comparten teclado y pantalla para colaborar directamente sobre el mismo código. Aunque parece extraño, resulta muy productivo y genera código con menos errores [4:10]. Cuando el código está listo, lo envías a producción: en inglés se dice ship it to production o deploy it to production [4:28].
¿Qué metodologías y prácticas de calidad se usan?
La mayoría de equipos trabajan con metodologías ágiles como SCRUM [4:36], que incluye standup meetings para discutir avances, requirements y deliverables. El trabajo se organiza en periodos cortos llamados sprints, y las tareas pendientes van al backlog o al ice box [4:50]. Para estimar tiempos se juega points poker, y todo se registra en herramientas como Trello (organizado en boards), Jira, Asana o Monday [5:00].
Para garantizar la fiabilidad del código se escriben distintos tipos de tests [5:12]:
- Unit tests: prueban pequeñas porciones de código.
- Integration tests: verifican que diferentes sistemas funcionen juntos.
- Smoke tests: confirman que no haya errores obvios en producción.
- End-to-end tests: prueban el flujo completo desde el usuario hasta el backend.
Todo esto forma parte de lo que se conoce como QA (quality assurance) [5:34]. Algunas empresas ejecutan estas pruebas automáticamente con cada commit mediante continuous integration o CI [5:40]. Otras adoptan test-driven development o TDD, donde los desarrolladores escriben los tests antes de escribir el código [5:48].
¿Tu empresa usa un título diferente a senior developer? ¿Conoces alguna tecnología o metodología que no se haya mencionado? Comparte tu experiencia en los comentarios.