Mucha gente que nunca ha trabajado en proyectos de software a gran escala parece tener poca comprensión de cuán colaborativo es el proceso. La analogía que me gusta usar es hacer películas. Claro, puedes filmar una película con poco presupuesto, solo con unas pocas personas. Pero si la historia requiere secuencias de acción, efectos especiales, trabajo de ubicación, una gran cantidad de extras, etc., la cantidad de personas involucradas puede crecer hasta los cientos. El desarrollo de software es muy parecido a eso. Existen roles especializados para muchos tipos de trabajo, incluyendo pruebas, codificación, arquitectura, localización, globalización, gestión de productos, interfaces de usuario, compilaciones de software, etc. Muchos de estos roles se cuentan como roles de “ingeniería” cuando se resumen en recursos humanos o departamentos de finanzas, estén o no estrictamente reconocidos como tales en otros contextos.
Cuanto más software construyas, más tienes que mantener. Por lo tanto, muchos ingenieros de Google trabajarán para respaldar, mantener y evolucionar el software existente. Solo una fracción de ellos trabajará en productos completamente nuevos.
Cuantos más ingenieros tenga en desarrollo de código, mayor será la infraestructura de soporte que necesita para ellos. Eso significa sistemas de control de origen, sistemas de gestión de tareas, sistemas de seguimiento de errores, etc. Estos sistemas necesitan sus propios ingenieros para mantenerlos y adaptarlos a nuevos proyectos.
Ve a un moderno astillero e intenta encontrar un constructor naval. No hay ninguno. Encontrará soldadores, electricistas, ingenieros mecánicos, arquitectos navales, instaladores de vapor, etc., pero no encontrará un constructor de barcos. Los barcos modernos son grandes sistemas creados por el esfuerzo de colaboración de muchos roles de especialidades diferentes, todos trabajando juntos dentro de un conjunto de procesos. Es un sistema humano. El sistema construye la nave.
- ¿Qué significa esta cita de Samuel Johnson: ‘El patriotismo es el último refugio para un sinvergüenza’? ¿Por qué será la última?
- ¿Qué es auto-evidente?
- ¿Estamos trabajando como máquinas sin ningún objetivo y siguiendo a otros?
- Suponiendo que la vida tiene un significado, ¿por qué la humanidad no invierte todo su tiempo y recursos en explorar esta pregunta antes de hacer otra cosa?
- ¿Es posible tener una ‘conciencia completamente limpia’ o hay esqueletos en los armarios de todos?
Lo mismo es cierto para el desarrollo de software a gran escala. Es por eso que Google emplea a tantos ingenieros.