Seguido leo (y escribo) comentarios, tweets, posts, etc sobre lo mal que la pasamos en ciertos proyectos en los que trabajamos. Aun y cuando lo que nos gusta hacer, como desarrolladores que somos, es desarrollar. ¿Entonces por qué es que surgen estas situaciones de descontento entre los desarrolladores?
Considero que parte del problema es la falta de decisión que se tiene sobre el curso de algún proyecto, la arquitectura, metodología, framework, (peor cuando nos toca usar el intento de framework que hizo alguien más), etc. Esto hace que el desarrollador se sienta como un code monkey, alguien que hace la talacha y no como alguien que desarrolla soluciones para las necesidades del cliente. No hay motivación.
Al participar en proyectos con diferentes empresas he notado que en los proyectos que he sufrido mas frustración, al trabajar en ellos, es cuando el cliente ya eligió que usar y peor cuando ya eligió el como hacerlo. Al iniciar o continuar el desarrollo del proyecto me encuentro con que la decisión del cliente no fue la mejor, muchas veces basada en las viejas formas de hacer las cosas o basado en la tecnología que un tercero le vendió. Esto hace que haya cierta frustración en el desarrollo del proyecto porque estoy en problemas por culpa de alguien más.
Este descontento también aparece cuando no se entienden bien las necesidades del cliente. Ya sea porque se trata de un sistema ya establecido y solo se pide que se corrijan algunos errores. Y no se quiere perder tiempo en explicarle al equipo la importancia de lo que hace el sistema. Esto hace que el desarrollador no sienta el proyecto como suyo y por lo tanto no sienta motivación para mejorarlo.
En cambio cuando se trabaja en proyectos donde el cliente explica, no solo las necesidades sino también las razones por las cuales es importante. Incluso que nos explique porque eligió la posible solución y el como. De una manera en la que el equipo pueda aportar y mejorar esa idea. Es cuando se siente una mayor motivación para trabajar en ese proyecto.
Hace poco grabamos un episodio de Dev3Cast y ahí nos comentaba Iván González sobre la importancia de la confianza en el equipo. Y la importancia de la opinión de todos los desarrolladores, incluso de aquellos que aun no tienen experiencia.
Esto puede ayudar a que el desarrollador sienta el proyecto como suyo y este dispuesto a dar un poco más de esfuerzo con tal de que se logre un mejor resultado, mientras hace lo que le gusta. Los managers deben de tomar ventaja de que al desarrollador le gusta desarrollar.
las lineas son delgadas entre lo que el cliente necesita y lo que el desarrollador quiere que el cliente necesite
ResponderBorrarCreo que la falta de motivación surge en la falta de decisión que se tiene sobre la solución del problema, no tanto en la definición de la necesidad.
ResponderBorrarLa falta de motivación, creo que viene en gran medida de si estas haciendo lo que te gusta o estas haciendo lo que debes para tener un sueldo.
ResponderBorrarObviamente tambien tiene que ver la parte tecnica, como que si el proyecto representa un reto o no, si hay que aprender algo nuevo, el que escuchen tus opiniones y sean tomadas en cuenta, el que si se tratan como niño - no te levantes, no platiques, etc. - o te tratan como adulto.
Al final de cuentas, y siempre lo comento, hay de 2; o eres programador o eres desarrollador. Este ultimo es menos común verlo.
Estoy deacuerdo con Mario Chavez..
ResponderBorrarPero a mi lo que me emociona de un proyecto nuevo es hacer algo inovador... desgastar mi imaginacion para resolver problemas, aprender nuevas formas de usar el codigo, ver la emocion del cliente al ver su sistema terminado y que te diga muchas gracias con esto me ayudara mucho en mi trabajo.
Este comentario ha sido eliminado por el autor.
ResponderBorrarUna de las razones del principal descontento por lo menos en mi caso es que decidan arriba sin ser tecnologos,que tecnologias debo usar para implementar una solución. Y por lo menos he tenido muchos conflictos con quienes coordinan o liderean un proyecto por meterse a tomar decisiones de como crear las entidades en la base de datos o si debo usar un ORM o stored procedures.
ResponderBorrarLa razón por la cual se contratan programadores o alguien que se encarga de definir la solución técnica, es precisamente por que es el experto, los lideres de proyectos deben de concentrarse de que el proyecto salga,no de como resolverlo.
Es como la analogía del manager y el boxeador, el boxeador se encarga de entrenar, mejorar y dar trancazos, esa es su chamba. El ver en que gimnasio va a entrenar, conseguir con quien entrenar, guantes, y equipo, es problema del manager, ese es su trabajo, el manager no debe decirle al boxeador como tirar golpes, esa no es su chamba,por lo menos asi lo veo.