Estoy perdiendo motivación en un proyecto del que formo parte, y cada vez es más difícil seguir trabajando en este proyecto, y siento que no estoy contribuyendo en la mayor medida posible. ¿Esto me convierte en un mal desarrollador?

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.

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?

Recuerdo sentirme así en un proyecto que no iba a ninguna parte y que tardó mucho en llegar allí. La causa raíz, lo mejor que pude entender, fue la falta de una gestión efectiva del producto, que parece ser una enfermedad común en el negocio del software.

Bien podría ser que el problema esté en el lado comercial / gerencial.

Si no tienes:

  • un buen sentido compartido de lo que es el producto
  • identificación de problemas / necesidades reales del cliente
  • definición clara de tareas alcanzables
  • gestión que elimina obstáculos,

entonces es probable que seas miserable.

A veces solo tienes que renunciar. Su salud mental y felicidad son muy importantes.

¿Te has comprometido a terminar el proyecto? Si es así, entonces olvida tus sentimientos y abróchate el cinturón. Algunas veces tu disciplina debe anular tus sentimientos. Básicamente, estás quejándote mentalmente, di “pero no quiero hacerlo”. Es entonces cuando el lado adulto de su cerebro debe ponerse en marcha y decir: “cállate y vuelve al trabajo”. La única excepción a esto es si no se le paga y tiene que elegir entre comer y terminar el proyecto. Si ese no es el caso, debe cumplir con sus compromisos. Una vez que haya terminado, puede pasar a otros proyectos donde establezca la dirección. ¡Los mejores deseos!

Parece que puede haber un problema de gestión de proyectos. El alcance de su trabajo es tan amplio que no siente que nada se esté completando. Eso siempre es desmoralizante.

Pruebe esto: divida el trabajo a realizar en trozos más pequeños (sprints, por ejemplo, una variedad de dos semanas) que muestran piezas tangibles que se envían, en el sentido de que cada dos semanas está construyendo algo más. De esta manera, sentirá que las cosas se están haciendo y que no está atrapado en la misma tarea.

La otra cosa que debe controlar es asegurarse de que comprende lo suficiente como para poder implementar las cosas de forma rápida y correcta. Si no puede, tal vez tome un curso rápido o pase una semana en los documentos hasta que esté claro para usted. Esta puede ser otra causa de sentimientos desmoralizadores, ya que es posible que no haya captado bien las brasas. Sé realmente honesto contigo mismo, ya que es fácil decir ‘sí, lo sé’ pero es más difícil admitir que aún no lo entiendes completamente

No eres un mal programador, solo uno desmoralizado. ¡Solucione la causa raíz y vuelva a trabajar!

Pregúntese si el producto que se lanzará tiene algún sentido para alguien y tiene el potencial de ser utilizado universalmente o es solo otra máquina de dinero para que otro imbécil codicioso se haga más rico. Nunca trabajaría para alguien que no tenga motivos humanistas y solo quiera usar el conocimiento de alguien que se da por sentado. La mayoría de las nuevas empresas son estafas que son impulsadas por la codicia sin tener un concepto real. Si el concepto es cero, no pierdas el tiempo.

¿Eso te hace un mal desarrollador? Tal vez, pero no puedo decir con certeza. Ciertamente significa que no estás siendo un buen desarrollador.

En la mayoría de los códigos de producción, el desarrollo no lleva semanas. El desarrollo continúa durante meses o años en algunos productos. Si cada vez que eso sucede, lo considera “arrastrarse” y comienza a trabajar a media velocidad, entonces sí, probablemente sea un mal desarrollador.

Por otro lado, si el problema radica más en que usted no cree en los objetivos de este producto específico, tal vez usted y el proyecto simplemente no sean los adecuados el uno para el otro. Tal vez eres un gran desarrollador, y este no es el proyecto para ti.