Considere tres ingenieros: Jim, John y Jane.
Jim viene a trabajar a las 11:30 y se va a las 4:30. No le importa mucho su trabajo, así que escribe el código justo para evitar ser despedido. El código que escribe está descuidado y mal probado. Nunca escribe documentación, porque eso supondría demasiado esfuerzo. Cuando está de guardia, ignora la mayoría de las alertas, porque probablemente no son importantes de todos modos.
John es muy ambicioso, y realmente quiere hacer un buen trabajo, para poder ser promovido. De hecho, se niega a trabajar en cualquier proyecto que no le haga ascender, y le dice a su jefe que dé esos proyectos a otros compañeros de equipo. Cuando a John se le asigna una tarea que no le hará ascender, suele ignorarla o dársela a otra persona.
John es bastante senior, por lo que los ingenieros junior suelen buscar su experiencia. Cuando alguien le pide ayuda a John, primero evalúa lo importante que es la persona. Si la persona no va a escribirle comentarios de sus compañeros, John está demasiado ocupado para responder a sus mensajes.
Jane acaba de graduarse en la universidad, y no ha construido mucho software en el pasado. Pero se preocupa mucho por la calidad de su trabajo. Su código está impecablemente probado y lleno de comentarios. No sabía lo que era un constructor de movimiento, o cómo declarar una variable «const», pero rápidamente lo aprendió en sus primeras revisiones de código.
Jane está encantada de trabajar en cualquier proyecto que le asigne su jefe. Piensa que si el gerente le da un proyecto, debe ser lo mejor para el equipo. A veces, Jane recibe tareas que pertenecen a otros equipos, y se toma esas tareas tan en serio como su propio trabajo de ingeniería (porque otros equipos también están haciendo cosas importantes).
Cuando otros ingenieros le hacen preguntas a Jane, se sienta con ellos durante veinte o treinta minutos y les ayuda a depurar su problema, incluso si no sabe la respuesta de memoria.
Sea Jane. Don’t be John or Jim.
Being a good engineer is all about attitude.