Cómo es ser ingeniero de software en la NASA?

La respuesta corta: depende.

La NASA es una gran organización, con muchas subdivisiones en cada centro con sus propias políticas y sus propios objetivos.

Trabajo para el Laboratorio de Entornos Planetarios de Goddard&apos, que se especializa en la construcción de espectrómetros de masas. Trabajo con software de apoyo al terreno: utilidades para analizar y manipular datos. Las cosas están muy ocupadas (aunque eso puede cambiar en un instante si el Tío Sam decide desconectar), y la mayoría de los programadores acaban cargando con tareas de ingeniería o administrativas. El énfasis es siempre "hacer las cosas lo más rápido posible". Por ello, trabajo principalmente en lenguajes de muy alto nivel como Python. Desgraciadamente, el entorno apresurado significa que consideraciones como las pruebas rigurosas, la documentación del software, el empaquetado y la distribución del software, y la portabilidad entre misiones, a menudo acaban siendo dejadas de lado en favor de mover el calendario tan pronto como podamos. También significa que, yo también, acabo metido en tareas no relacionadas con la programación, como la extracción de datos, la ingeniería eléctrica y las operaciones de la misión. Si odias cosas como la documentación de requisitos o la redacción de documentos de diseño y sólo amas esos momentos escribiendo código, te encantaría mi trabajo. (EDIT: Pero ten en cuenta que esos procesos existen por una razón, y ahora, después de dos años, estoy empezando a ver las graves y paralizantes debilidades del hecho de que no haya una reflexión seria sobre las preocupaciones de diseño.)

En otros lugares, he oído que es una historia diferente. Si trabajas en cualquier cosa crítica para el funcionamiento del hardware de vuelo (por ejemplo, el software de vuelo), puedes esperar que tu trabajo sea revisado por comités, que tengas que esbozar requisitos y escribir documentos de diseño de antemano, y que ocasionalmente tengas a gente de control de calidad respirando en tu cuello.

En cuanto a la TI (que afecta a todo el mundo), la NASA tiene unas políticas de seguridad bastante estrictas. Aunque la mayor parte de lo que ocurre en la NASA es bastante benigno, es un objetivo muy llamativo, y a los hackers les gusta practicar el hackeo de las redes de la NASA antes de intentar comprometer las redes del Departamento de Defensa. Además, muchas cosas relacionadas con los vuelos espaciales están controladas por la exportación mediante tratados internacionales de armas, y como casi todo lo que se hace en la NASA tiene que ver con los vuelos espaciales de una forma u otra, sin duda habrá que tratar con proyectos controlados por la exportación de alguna manera. Esto provoca muchos dolores de cabeza, ya que los requisitos de seguridad asociados convierten lo que normalmente serían tareas mundanas y de bajo riesgo en pesadillas informáticas. Nuestro departamento tardó tres cuartos de año en crear un servidor FTP. Y no me hagas hablar de nuestra experiencia en la configuración de un servidor SVN en la nube. (Las políticas de TI varían de un centro a otro, sin embargo; JPL, por ejemplo, ha tenido mucho éxito utilizando la nube de Amazon para sus necesidades de TI, que es mucho más fácil de configurar que la nube interna de GSFC).

Así que, para resumir: depende. Cada centro de la NASA y cada departamento dentro de ese centro tiene su propia cultura, que puede o no encajar contigo dependiendo del tipo de codificador que seas. A mí, por ejemplo, me encanta mi trabajo; pero ha habido empleados de mi división que no están de acuerdo y se han trasladado a otros proyectos de la NASA que les gustan más. La única constante real es que, vayas donde vayas, puedes esperar políticas de TI más estrictas que en el sector privado.

==Editos para responder a los comentarios==

¿Cómo son los horarios?
Me propongo trabajar sólo cuarenta horas a la semana. De vez en cuando, hago horas extra en semanas de mucho trabajo, pero me pagan por esas horas (salario normal, no tiempo y medio). La política de horas extras varía entre los funcionarios (empleados públicos) y los contratistas (como yo), y entre los contratistas depende de la empresa. Las personas más implicadas en la construcción de instrumentos con plazos ajustados tienden a trabajar los fines de semana con más frecuencia que los ingenieros de software.

En mi departamento, todo el mundo parece trabajar en horario flexible. Puedo entrar a la hora que quiera y salir a la hora que quiera, siempre que al final trabaje una semana completa. Si los desplazamientos son largos, ayuda mucho poder entrar a las 10 y salir a las 6.

Yo no me llevo el trabajo a casa. Sin embargo, hay algunos teletrabajadores por ahí. Depende de tu departamento dentro de la NASA, así como de las políticas de tu empleador específico. Resulta que mi jefe es escéptico sobre el valor de trabajar desde casa.

Un dato más relevante: dependiendo de lo que hagas, puedes acabar trabajando en horarios extraños. En otoño, cuando aterrice el Curiosity, tengo que trabajar en "horario de Marte". Un día marciano tiene 24 horas y cuarenta minutos, y los turnos tácticos no son flexibles. Así que tu turno empezará cada vez más tarde, y sin importar el turno que tomes, eventualmente trabajarás en turnos nocturnos.

¿Por qué elegiste la NASA?
Me gustaría poder darte una razón especial, pero principalmente simplemente sucedió. A través de algunos contactos me dieron una oportunidad de hacer prácticas el verano anterior a mi último año de universidad, y les gusté lo suficiente como para contratarme a tiempo completo después.

Dicho esto, el trabajo en la NASA tiene mucho más sentido que muchas de las oportunidades del sector privado que conocía cuando me estaba graduando. Estás contribuyendo a la investigación científica básica, no a los beneficios de las empresas. Y siempre tendrás historias interesantes que contar a tus amigos, como conocer a los astronautas, etc.

¿Cuánto duran los ciclos de los productos?
Depende. Realmente no puedo responder por toda la NASA. Algunos de mis guiones se utilizan durante una semana y luego se olvidan, pero hay algún otro software flotando por ahí que es anterior a mi empleo. Realmente depende del horario de tu misión.

¿Tienes acceso a ver cosas en las que no estás trabajando directamente?
El Centro de Vuelo Espacial Goddard tiene charlas científicas y de ingeniería cada semana. Y muchos de mis compañeros que trabajan en otros edificios están encantados de darte una vuelta de vez en cuando. Cuando me contrataron, mi mentor me dijo que un nuevo empleado de la NASA debería pasar sus primeros seis meses asistiendo a nuevas reuniones o acudiendo a coloquios una vez a la semana para conocer el centro, y que después uno debería seguir saliendo de su edificio al menos una vez al mes. Siempre hay oportunidades, pero la responsabilidad de aprovecharlas recae en uno mismo. Me imagino que una situación similar se da en otros centros.

¿Te sientes menos respetado en la NASA si no tienes un doctorado?
No. Generalmente, los doctores son comunes para el personal científico, lo que tiene sentido ya que son los que publican artículos académicos sobre los datos de la misión. Es mucho más raro que el personal de ingeniería (incluidos los programadores) tenga un doctorado. Yo, por mi parte, tengo una licenciatura, pero acabo de salir de la escuela y sólo llevo un año allí.

Dicho esto, parece que las personas con títulos de grado en informática y másteres en otras disciplinas (química, ingeniería eléctrica) son muy valiosas. Estas personas pueden trabajar directamente en la construcción del instrumento, y tienen todo el arsenal de un programador informático a su disposición mientras lo hacen.

¿Hay programadores que trabajan para la NASA directamente (como funcionarios) en lugar de a través de un contratista?
Sí. En general, diría que cuanto más se asciende en la dirección, mayor es la proporción de funcionarios. El personal de ingeniería es en su mayoría contratistas. El personal científico con doctorado (en mi departamento) suele ser funcionario. Todos los que ocupan un puesto directivo (incluidos los ingenieros de sistemas de alto nivel) suelen ser funcionarios, y creo que cualquiera que tenga algún tipo de control sobre el dinero tiene que serlo. Pero hay algunos funcionarios en todos los niveles.