Lamento decirlo, pero esa es en realidad la experiencia normal de la mayoría de las personas que trabajan como programadores. El término técnico para esto es ” marcha de la muerte “.
La programación es un trabajo muy intelectual, que exige períodos intensos de concentración y concentración que pueden ser extremadamente agotadores.
Tendemos a hablar de los máximos. Cuando la programación va bien. Cuando estás en un proyecto que avanza y transforma el mundo. Cuando estás “en la zona”. Es uno de los sentimientos más emocionantes y maravillosos de la historia. Es magia. Conjurando sistemas que abarcan el mundo desde el aire con nada más que palabras y lógica.
Hablamos tanto de eso que podrías pensar que eso es todo lo que hay.
- Mi madre me castiga quitándome la tarea. ¿Qué tengo que hacer?
- Estoy considerando viajar a Asia, ¿a dónde debo ir?
- Estoy trabajando en un proyecto relacionado con el sistema de posicionamiento en interiores, ¿qué dispositivo se recomienda para enviar y recibir la intensidad de la señal?
- ¿Por qué tengo miedo de algo que parece profundo e interminable?
- Quiero postularme a universidades en Dinamarca. ¿Las universidades danesas ofrecen cursos impartidos en inglés?
Pero … una gran parte del tiempo es solo un trabajo duro. Y hay demasiadas frustraciones y distracciones para entrar en la zona. Y no puedes encontrar el maldito error que has estado buscando todo el mes. Y el rendimiento no es aceptable y no tienes forma de arreglarlo, excepto tirar todo lo que hiciste el año pasado y probar un enfoque diferente. Y su lista de tareas pendientes sigue creciendo.
Por supuesto, hay muchos factores externos a los que culpar. El jefe de pelo puntiagudo es un idiota. El cliente realmente no sabe lo que quiere. La especificación Estaba equivocado o vago. Las computadoras son demasiado viejas y lentas. Tienes que usar Java en lugar de un lenguaje sensible.
Todo eso es cierto … PERO … en última instancia … la programación es simplemente un trabajo difícil.
Estos problemas son lo que llamamos “dificultades accidentales”, por lo que nos referimos a problemas contingentes con los que sentimos que realmente no deberíamos tener que lidiar cuando ya tenemos los problemas reales (e interesantes) como “cómo diseñar un algoritmo que …” lidiar con.
Pero la verdad es que las computadoras, las organizaciones y los clientes tienen una realidad material más allá de nuestro mundo idealizado. Y esa materialidad SIEMPRE tiene que ser enfrentada y tratada. Los problemas específicos pueden ser accidentales. Pero el hecho de que habrá problemas materiales y frustraciones es bastante evidente. Y cuando construyen y inundan un proyecto, cuando se espera que todos hagan todo lo posible y sigan desarrollando algo que no los inspire y que pueda terminar sin ser utilizado y que ni siquiera funcione, esa es la marcha de la muerte. Y es absolutamente la experiencia más normal del mundo para el programador que trabaja.
He visto demasiados proyectos con personas maravillosamente inteligentes y gerentes ilustrados que se convierten en marchas de la muerte para creer que esto es solo mala administración o mala suerte. Lo que es es la gravedad reafirmando en una profesión que trata de volar demasiado cerca del sol.
Ahora, no sé si eres un mal programador si mueres en la marcha de la muerte. Me quemé y pensé en mí como la persona más estúpida e inútil del mundo. A veces dejé de trabajar como programador profesional porque me sentí muy patético. Y he visto a otras personas simplemente seguir adelante y hacer el trabajo independientemente.
Obviamente, en la marcha de la muerte, los que pueden llegar hasta el final son “mejores” en algunos sentidos. Pero cuando la marcha de la muerte termina en la cancelación de un proyecto o el cliente tira el código de todos modos y cambia a un nuevo sistema, ¿cuál fue el curso más sabio? ¿Haber aguantado hasta el final o haber salido temprano?