El equipo pone excusas sobre el mal software y las prácticas en lugar de arreglarlo. ¿Cómo ir en la dirección correcta? [cerrado]

En mi nuevo trabajo a veces cometo errores. Por lo general, estos errores se deben a suposiciones que hago en función de otros trabajos que he tenido, otras herramientas que he usado y otro software que he desarrollado en este mismo equipo.

Inevitablemente, cuando hablamos de lo que salió mal, pregunto "¿Dónde está escrita esta información?" o "¿Cómo puedo evitar esto en el futuro?" y la respuesta siempre está en la línea de "Recuerde que X en el contexto Y es diferente de X en la mayoría de los demás contextos". La falta de estandarización en cualquier práctica está afectando mi moral, productividad y percepción entre el equipo (me ven como algo negativo y no quiero fomentar un lugar de trabajo tóxico). Si tenemos que tomar una decisión, solemos hacer un poco de ambos; tampoco salimos completamente de las viejas prácticas.

Las excusas que me dan para esto son algo como esto:

  1. Por qué en este caso las cosas realmente tenían que ser diferentes, pero por qué no pudimos hacer una solución que fuera documentada o automática.
  2. ¿Qué equipo debería haber sido responsable de documentar esto, pero estaban (inevitablemente) muy ocupados o (mi favorito personal) qué solución obvia hubiera sido mejor, ahora que he llegado a uno de los muchos casos extremos en otro mal pensado solución.
  3. Un suspiro estresante, porque no estoy siendo razonable, pensando que las cosas deberían ser estándar de alguna manera, y una frase como "sí, realmente deberíamos trabajar en eso en el futuro" o "sí, tal vez podamos arreglar eso cuando [proyecto tocar ese sistema] se inicia"

¿Cómo le digo a mi equipo:

  • Estoy cansado de excusas; todos somos adultos, y deberíamos poder trabajar en un entorno que no se detenga por los caprichos de quien quiera una solución rápida en lugar de hacer su trabajo.
  • No deberíamos aceptar este tipo de ambiente. Piense en cuántas soluciones alternativas conoce una sola persona mayor. ¿Cómo vamos a seguir funcionando si los nuevos empleados no se quedan para aprenderlos todos y los empleados más antiguos se jubilan? Vamos a pagar esta deuda tecnológica de una forma u otra algún día.
  • Realmente podemos arreglar esto. Será tedioso, y podríamos pisar algunos dedos de los pies (a todos aquí les parece bien pegarle una cinta (metafórica) y esperar a que se caiga de nuevo para echar otro vistazo), pero si ponemos un poco de pensamiento y diligencia en nuestras soluciones podemos pagar lentamente parte de esta deuda de tecnología/proceso.

Como solución alternativa, me veo con estas opciones:

  • No intentes arreglar las cosas. Realice solo los cambios necesarios. Trate de documentar casos extremos (ya sea solo para mí o para la posteridad en algún lugar) y evítelos.
  • Ve a casa y estudia y abandona el barco una vez que sea el momento adecuado. Únase a un equipo de personas que resuelven problemas en lugar de encontrar la solución alternativa que requiere la menor cantidad de esfuerzo y solo tratar de recordar eso en el futuro.
  • Trabaja muy duro para solucionar todos estos problemas. Trate de evitar el rechazo de las personas acostumbradas a esta forma de trabajar, y no se desanime cuando las personas que no entienden el problema ni han leído la solución propuesta dicen cosas como "si no está roto, no lo arregles". lo que significa "si todo lo que tenemos que hacer es pedirles a otros que reinicien sus servidores de vez en cuando, ¿cuál es el problema?" o algo similar.

Estas "soluciones" no son mutuamente excluyentes.

No siento que pueda cambiar esta cultura por mí mismo, y me gusta mi equipo inmediato, pero es muy agotador pisar constantemente estos charcos de lodo que los verdaderos profesionales no tolerarían.

Editar: no puedo comentar, por lo que mis respuestas a los comentarios están en línea a continuación:

Jimbo: eso es parte de la tercera "opción", supongo. Trabaje diligentemente para documentar todo, haga multas para que algún día las cosas se arreglen y trate de no frustrarse a medida que se profundiza la madriguera del conejo.

Vietnhi Phuvan: No tengo autoridad sobre este equipo. No estoy seguro de lo que quieres decir con entrometerse. No tengo la responsabilidad de arreglar el software y los procesos con los que trabajamos todos los días, pero nos afecta a todos y afecta nuestro rendimiento. No tengo "construir una coalición". Otros tienen fuertes opiniones sobre ciertas cosas, pero por lo general simplemente las aceptan y continúan con su trabajo diario, o intentan obtener recursos para solucionarlas. No soy el único que despotrica, pero soy el más desanimado de mi equipo; parte del problema es que el "problema con una solución alternativa aceptable" ya no es un problema para la mayoría de las personas por aquí, y "solución alternativa aceptable" significa "cualquier solución alternativa". Estoy trabajando en un plan de acción. Voy a investigar cómo otras empresas resuelven estos problemas, por qué Es más efectivo resolver estos problemas en lugar de vivir con ellos y encontrar una ruta de actualización clara. Alternativamente, voy a desarrollar mis habilidades hasta que pueda irme. La credibilidad que tengo tiene que ver con el tipo de preguntas que ya me hacen mis compañeros.

Kent Anderson: Gracias por la atenta respuesta. Trataré de mantenerme positivo en el futuro. El punto que más me sorprendió fue "tratar de entender cómo/por qué tus compañeros de equipo piensan como lo hacen". Tal vez pueda descubrir sus motivaciones/procesos/intenciones y ser más eficaz. PD: no soy el que siempre habla en las reuniones, de hecho, me detuve casi por completo, eligiendo en su lugar tratar de ayudar a formar un consenso en lugar de tratar de poner nuevas ideas sobre la mesa.

Finalmente, me gustaría aceptar la respuesta de Kent, pero olvidé el correo electrónico de la primera cuenta descartable :(. Gracias a todos por sus comentarios. Trabajaré en esto.

Parece que necesita comenzar a recordar estos 'estándares'; incluso podría documentarlos usted mismo y comenzar la tendencia :-)
¿Tienes alguna autoridad oficial en el equipo, o solo te estás entrometiendo? ¿Tiene la responsabilidad de diseñar el flujo de trabajo de desarrollo de software o simplemente actúa como un ciudadano preocupado? Claramente, el equipo reconoce que hay problemas. Sin embargo, es igual de claro que el equipo no se siente fuertemente acerca de los problemas para hacer algo al respecto. Si no es un gerente, ¿ha construido una coalición entre el personal y la gerencia de personas que se sienten exactamente como usted y se sienten tan fuertemente como usted, o actualmente es el único y despotricando como el único?
¿Ha ideado un plan de acción viable que otros puedan apoyar o no tiene exactamente nada a su favor más que indignación y fariseísmo? Mi opinión es que es muy poco probable que logres algo por ti mismo. Oh, tú también eres nuevo en el trabajo. Entonces, la siguiente pregunta es, ¿qué credibilidad ha establecido con el equipo y la gerencia en el corto tiempo desde que comenzó su trabajo?
Te molesta la falta de consistencia. Según mi experiencia, en el desarrollo de software, la coherencia suele ser enemiga del progreso. He visto a desarrolladores muy experimentados elegir código "consistente" versus código "bueno". ¿Preferiría tener un código que sea consistentemente incorrecto o inconsistentemente correcto?
En el software con el que he trabajado, Where is X documented?se pregunta cuando una pieza de código tiene sorpresas o comportamientos confusos. Contestaría sobre la base de que el código no debería haber estado lleno de sorpresas y debería haber sido escrito de manera menos confusa. Pero siento su dolor por la documentación.
¡Buena suerte para ti! Parece que tienes una buena actitud para mejorar las cosas. A menudo, a medida que comienza a intentar hacer las cosas mejor, otros verán los beneficios y se unirán a usted. Acabo de ver pasar exactamente esto. Un nuevo miembro del equipo estaba frustrado con el cambio de procedimientos. Le sugerí que se ofreciera a mirar los correos electrónicos y mantener los procedimientos más recientes en una página wiki del equipo. Resulta que otros miembros de su equipo también estaban frustrados y apoyaron sus esfuerzos. Mejoró una situación frustrante y todos aprendieron algo nuevo que pueden aplicar a proyectos futuros.

Respuestas (3)

Esto va a parecer que me estoy metiendo contigo. No lo soy, solo trato de ser objetivo...

Ten mucho cuidado con declarar a todos los que te rodean como poco profesionales. No es cierto, especialmente si son trabajadores veteranos. Como la persona nueva en el equipo, es probable que desconozca las razones históricas por las que hacen las cosas de la manera en que lo hacen. Claro, hay comportamientos poco profesionales en el lugar de trabajo. Quejarse y acusar a otros de no ser profesionales es un ejemplo de ello.

¿Cada reunión contiene un elemento de usted vocalizando que las cosas no son lo que desearía que fueran? Si es así, existe alguna base para que su equipo lo considere difícil o quejoso. Si este es el caso, intente identificar una solución y ofrézcase a implementarla. (Mantenga una página wiki para el equipo, por ejemplo).

Estoy seguro de que eras mucho más positivo cuando empezaste a trabajar en este equipo, y ahora estás abatido y harto. Intenta recuperar algo de esa positividad y tolerancia con la que empezaste. Serás más feliz. Haz lo que puedas para tratar de entender cómo y por qué tus compañeros de equipo piensan como lo hacen. Tome notas personales que pueda revisar si se encuentra en una de estas áreas en las que cree que podría estar "metiéndose en un charco". Resista la tentación de mostrar una página de notas como "prueba" de que su equipo está siendo inconsistente o caprichoso. Eso nunca mejora las cosas.

Si llega al punto de rescatar (ya sea del equipo o de la empresa en general), recuerde, no existe un equipo que haga todo bien, todo el tiempo. ( ¿Qué significa "correcto" en este contexto? ) Irte podría ayudarte a sentirte mejor y podría ser lo correcto para ti. Simplemente no se embarque en una carrera nómada en busca del equipo perfecto. No lo encontrarás.

De nuevo, no me estoy metiendo contigo. Recuerdo las frustraciones que sentí al principio de mi carrera de desarrollo de software porque otros no estaban a la altura de mis ideales o de mi "estándar" de excelencia técnica. La paciencia, la tolerancia y el ofrecimiento de ayudar a arreglar las cosas son las mejores maneras de aliviar sus frustraciones y alentar a que se realicen cambios.

+1 Quieres trabajar con personas. Emitir un juicio sobre ellos no va a mejorar las posibilidades de obtener un resultado positivo. Y si empiezas a condenarlos, tus posibilidades de ser crucificado por tus problemas se disparan.
"No existe tal cosa como un equipo que hace todo bien, todo el tiempo". No creo que el OP espere que las cosas sean perfectas.

En situaciones como esta, a menudo la mejor solución es simplemente encontrar una nueva situación. No todas las tiendas funcionan como la tuya. Hay equipos de desarrollo que se esfuerzan activamente por la mejora continua, que no dependen de individuos para recordar soluciones oscuras o dependencias extrañas, que entienden las mejores prácticas actuales y las siguen o tienen una muy buena razón para hacer algo diferente. En mi larga experiencia, las tiendas como la suya eventualmente cierran. Puede tomar un tiempo, pero eventualmente serán superados por un competidor más inteligente. Ahora que conoce el tipo de lugar en el que no le gusta trabajar, puede tener más cuidado con la próxima oferta que acepte.

Ponte en sus zapatos.

Si el código base con el que tienes que lidiar no es bueno, ellos lo saben. Es muy probable que no se deba a que sus nuevos colegas no sean programadores decentes, sino a que existe la presión de entregar las cosas más rápido de lo posible mientras se hace un trabajo correctamente. Las cosas no están documentadas porque alguien no pudo cumplir con una fecha límite y documentar lo que estaba haciendo, y cuando entregó en la fecha límite, surgió un nuevo trabajo antes de que alguien pudiera comenzar con la documentación.

Es posible que algunos de ellos hayan llegado a la empresa recientemente y hayan tenido exactamente las mismas ideas que usted tiene ahora, y luego resultó que no pudieron hacer nada al respecto.

Pero, ¿qué van a decir si dices "tu código es basura y necesita cambiarse"? Lo mismo que harías dentro de dos años el tiempo de la próxima nueva adición al tiempo te dice exactamente lo mismo. Estarán a la defensiva. Nadie quiere admitir que su trabajo (sin tener la culpa) no es de la más alta calidad. Si es por su propia culpa, será aún menos probable que lo admitan.