¿Soy responsable del trabajo producido por los compañeros de trabajo ya que somos un equipo a pesar de que me excluyeron?

He estado trabajando para mi empresa actual durante 7 meses y estoy completando mis dos años en la industria en total. Mi empresa es una empresa grande, con plazos relativamente relajados y horarios flexibles.

Somos un equipo recién establecido, la mayoría de nosotros somos jóvenes con experiencia que va desde recién graduados hasta dos años de experiencia como máximo. El único compañero de trabajo senior, que también es el scrum master, no se molestará en guiar a nadie y solo se ocupará de sus propios asuntos. Nuestro gerente también es una persona extremadamente práctica.

A menudo, cuando se les da trabajo para producir, los nuevos compañeros de trabajo graduados se retiran a sus pequeños "equipos de amigos", acumulan tareas y trabajan a toda prisa sin planificar, diseñar, consultar o discutir nada con los demás. Como resultado, esto domina nuestros esfuerzos de desarrollo debido a su rápido ritmo.

En este punto, produjeron un código con muchos errores sin una estructura reconocible. El producto no se descama incluso con cargas pequeñas. Ahora tenemos una configuración de desarrollo local muy alucinante, dos configuraciones de prueba diferentes que no funcionan según lo previsto, y todavía nos dicen "lo arreglaremos más tarde".

En un momento, traté de refactorizar una parte del código porque tardaba demasiado en compilarse y el administrador se quejaba. A pesar de que mis compañeros de trabajo sabían lo que estaba haciendo, nadie se quejó ni se opuso a mí al principio, pero llegué a escuchar que el Scrum Master, que es el compañero de trabajo más antiguo de nuestro equipo, se burlaba de mis intentos detrás de mí para arreglar las cosas como "desperdicios". del tiempo", que "a nadie le importaba".

Así que decidí renunciar por completo a la refactorización, no fue bienvenido. En ese momento logré tomar dos nuevas características para desarrollarlas y completarlas.

Durante nuestras reuniones con el gerente, expresé mis preocupaciones con respecto a todo esto abiertamente desde el primer día. El gerente a menudo está de acuerdo conmigo, pero nunca ofrece una solución práctica. Él cree que con el tiempo todo estará bien.

Me preguntó por qué no estaba proporcionando las "soluciones" o "mejoras" a los problemas que detecto. También me preguntó sobre la refactorización que tenía que hacer, ya que no estaba aprobando el estado en el que se encontraba el código, y le dije que no podía seguir adelante porque estaba solo haciendo eso, que a nadie parece importarle. sobre la calidad además de mí. También mencioné la reacción que recibí del scrum master, que otro colega buscó arreglos y nunca me informó al respecto, así que me concentré en otras tareas.

Entonces, en este punto, siento que el gerente piensa que es mi responsabilidad arreglar las cosas, ya que soy yo quien señala ese problema. Sin embargo, encuentro este enfoque injusto. Debo decir que no creo que sea responsable de los errores de los demás, ya que no están dispuestos a aprender de mi "refactorización" y piensan que es una "pérdida de tiempo".

Como se dará cuenta, también soy bastante nuevo en la fuerza laboral y tengo toneladas de habilidades blandas y duras para aprender. Así que aquí está mi principal dilema:

¿Qué pasaría si evito el trabajo relacionado con este producto y me concentro únicamente en otras tareas a partir de ahora? ¿Soy realmente responsable de este tipo de trabajo que producen los compañeros de trabajo excluyéndome?

Editar: Debería haber dejado en claro que estamos haciendo ágil, scrum y kanban. Como resultado, no hay asignación de tareas, nos ofrecemos como voluntarios para tareas abiertas. Además, todos tenemos el mismo gerente del que mencioné en la publicación y tenemos una jerarquía horizontal en nuestro equipo, por lo que no hay "jefe", "líder de equipo" ni nada. Se espera que actuemos colectivamente.

Edición 2: acortó la publicación. Edición 3: acortó aún más la publicación.

tl;dr: Los compañeros de trabajo están codificando el producto sin dejar que otros contribuyan, el gerente parece esperar que proporcione la solución, aunque a nadie en el equipo parece importarle además de mí. ¿Soy realmente responsable de arreglar el trabajo en el que apenas he contribuido ya que estamos trabajando en equipo?

Considere acortar su publicación. Es bastante para leer y, si lo hace, espero que obtenga mucha más participación de las personas que acuden a él.
OP, esto es demasiado largo.
"Nadie nos guiará". Esto es totalmente normal en el software. Es una cuestión de "bienvenido al mundo del software". Esta pregunta se hace una y otra vez aquí. La respuesta siempre es "¡(1) la vida es dura en la programación! (2) ¡conozca a su concesionario Porsche!"
@Fattie, ¿qué partes puedo recortar más? Creo que si lo acorto aún más, podría resultar en un malentendido.
Hola OP. Para ser honesto... no me preocuparía por eso :) De todos modos, todo lo que tu pregunta dice es: Como nuevo programador, me sorprende saber que en un equipo típico de 10 o más, soy el único Persona competente. Todos los demás, incluidos los gerentes, son completamente inútiles. La única respuesta a eso es (1) sí, eso es correcto (2) "cállate, no seas un bebé y trabaja más duro" (3) prepárate para ganar cantidades asombrosamente altas de dinero muy pronto.
@EJoshuaS También diría que la programación vudú también es algo aquí.
No es necesario poner editar 2 y editar 3, todos pueden consultar el historial de publicaciones. Al gerente típico no le gustan los problemas, quieren una solución y por qué (dinero/tiempo) es interesante invertir en su solución. Puede buscar en el sitio, hay muchas cosas sobre "cómo convenzo a mi gerente de <XY>". Si el estado actual de una parte de su código está dañando definitivamente su producción, explique los hechos con usted (debería haberme tomado 1 día, me tomó 5 en cambio, cada vez que hacemos algo allí, aparecen efectos secundarios no deseados y nos hacen perder tiempo,...)
¿Su empresa realiza revisiones de código?
@EJoshuaS los tenemos en su lugar, sin embargo, los compañeros de trabajo no están haciendo revisiones adecuadas, diciendo abiertamente en las reuniones que consideran que las revisiones son una pérdida de tiempo, por lo que no lo harán a pesar de que es su trabajo, y tampoco cumplen si hay es un pr necesita votos, ellos simplemente usando la amistad lo empujan. Esta es una de las razones por las que dejé de sentirme responsable de esto y también de ofrecer refactorización. No puedo salvar este lío, ese no es mi trabajo.

Respuestas (4)

No arruines tu salud mental con esto. Sí, técnicamente eres responsable de esto ya que todos en tu equipo lo son. Y si este fuera un tema limitado a un número reducido de colegas, mi respuesta sería diferente. Pero esto parece ser un problema de todo el equipo, y usted solo no lo solucionará.

¿Hay algún otro trabajo que deba hacerse? Concéntrate en eso. No tienes que estresarte por un producto en el que no trabajaste, y cuando trataste de ayudar a alguien, tu trabajo fue desechado e incluso recibiste reacciones negativas de tus compañeros de trabajo. Dado que parece que puede trabajar en lo que quiera, eligiendo entre una serie de tareas, hágalo. Si su gerente le pregunta sobre esto, puede ser honesto al respecto, ya que parece ser razonable:

He decidido centrar mi trabajo en tareas fuera del proyecto X. Aunque quería ayudar a mejorar el código, mis contribuciones han sido rechazadas y la gente se ha quejado de mi participación. Esto se sintió como una gran pérdida de tiempo y no quiero seguir perdiendo mi tiempo cuando podría ser más productivo y producir un trabajo valioso para la empresa como en los proyectos Y y Z.

Trabajas en un equipo al que no le importa la calidad, cada miembro solo piensa en sí mismo. No te conviertas en eso, pero actúa en consecuencia. Cuidar demasiado en ese tipo de ambiente te volverá loco. También te aconsejo que comiences a buscar trabajo y cuando te entrevisten en empresas, no dudes en hacerles preguntas para asegurarte de que no terminarás en un lugar como este nuevamente.

Si las tareas no están de acuerdo con tu contrato de trabajo, tienes que hacer lo que tu "autorizador" (software de traducción -.-, tu jefe, gerente, scrum master -> la persona que te da tus tareas) te asignará.

Pero puede dejar en claro que necesita apoyo para hacer su trabajo, como compañeros de trabajo cooperativos, documentación del código, estándares de codificación, acuerdos sobre la arquitectura del software, etc.

¡Nadie puede esperar que construyas una casa sin un juego de herramientas apropiado! Deja claro a tu jefe (y a ti mismo) lo que realmente necesitas, lo que te gustaría tener y cómo conseguirlo.

Pero si este lugar de trabajo no vale la pena este esfuerzo (y esta es tu opinión, la única que cuenta), entonces puedes buscar uno nuevo que encaje más con tu lista de "en qué quiero trabajar" :)

EDITAR después del comentario:

Si usted, como equipo, es responsable del cumplimiento de las metas, entonces cada miembro del equipo es responsable, usted también. Siempre hay tareas que nadie quiere asumir, pero uno tiene que hacerlo. Tal vez sea posible hacer un "trato" con tus compañeros de trabajo: tomas esta tarea que no te gusta (tu compañero de trabajo actúa como si tampoco la amara) y acepta apoyarte con lo que quieres (ver "deja en claro ...").

En mi opinión todo trabajo en equipo se basa implícitamente en este tipo de tratos, pero a veces hay que pronunciarlos.

Y para entenderlo en el contexto de su pregunta: No, usted no es responsable del trabajo de sus compañeros de trabajo, pero es responsable (con ellos) de su producción.

Edité mi publicación, no tenemos un organismo de asignación en nuestra oficina, recibimos algunos objetivos y luego nos ofrecemos como voluntarios para tareas que lograrían esos objetivos.
¿Quién controla si se cumplen los objetivos? y ¿quién se hace responsable si no lo hacen?
Durante el scrum de scrums, un propietario general del producto asigna estos objetivos al maestro de scrum y a los compañeros de equipo del propietario del producto de nuestro equipo. Al final de cada sprint, como equipo, repasamos todas las tareas y vemos si se ajustan al criterio de "terminado" o no. Cuando las cosas van mal, se nos culpa como equipo, no individualmente, como empresa reforzamos la cultura de "no culpar". Entonces, como mencioné en la publicación, es colectivo.
Este. No necesita suicidarse proactivamente por los errores de otros (especialmente si ellos tampoco solucionan los suyos), pero aún debe hacer lo que su gerente le pide directamente. En este caso, explique claramente lo que implicará la refactorización (en términos de ayuda que necesitará de ellos y el tiempo que llevará). En algún momento, su gerente debe comprender que usar uno de sus desarrolladores experimentados para corregir los errores de los jóvenes no es la mejor manera de contratarlo. De todos modos, si yo fuera tú, inmediatamente comenzaría a buscar otro trabajo, no serías feliz donde lo eres.

Dado que este es un equipo Scrum Agile, escriba un ticket en el backlog para cualquier cosa que vea que necesita ser corregida. El 'equipo', como ha indicado, recogerá esas historias en la planificación o las mantendrá en la lista de espera. Eso debería satisfacer a su gerente, indicar que los puso en la cartera de pedidos y que necesita hablar con el maestro de scrum si no se incorporan durante la planificación.

Luego deben traerse y la gente debe tomarlos EN ORDEN DE PRIORIDAD. Esa es otra cosa que podría plantear en la planificación de que las personas están eligiendo y no trabajando las cosas en orden de prioridad.

También debería estar haciendo reuniones de compromiso durante la planificación. En mi organización lanzamos un puño de cinco (clasificación del 1 al 5) sobre la confianza que teníamos en el plan. Esta es su oportunidad de sacar un 1 o un 2 e indicar que siente que las correcciones de errores están relegadas. La regla del primero de cinco es que todo se detiene si alguien saca un 1 o un 2 y el equipo tiene que revisar el plan hasta que obtenga al menos los 3.

Por último, debe tener un propietario del producto que acepte sus historias. Si no, quién está aceptando este trabajo como 'hecho'. Es posible que sea necesario abordar una 'definición de hecho'. Si está haciendo Agile/scrum, ¿tiene retrospectivas de final de sprint con la oportunidad de plantear inquietudes y cambiar patrones? Si no, tal vez esta es la conversación que necesita tener con su gerencia de que en realidad no están haciendo Agile/Scrum sino Ad-Hoc.

https://agileforall.com/learning-with-fist-of-five-voting/

Esta respuesta se aleja un poco del enfoque "soy responsable", pero muestra formas personalizadas de scrum para resolver la situación en su conjunto.
Tenemos un poco de configuración de equipo personalizada, PO y SM también son miembros del equipo. Durante la revisión del sprint, creamos informes breves o videos de demostración de las tareas completadas, y en la reunión los revisamos uno por uno y aprobamos que se haya realizado. Llegando a corregir las cosas aquí, está mucho más allá de mí. No tengo responsabilidad ni autoridad para cambiar las cosas. He sido abierto con mi gerente y mi equipo sobre mis observaciones. A nadie le importa, nadie está dispuesto a mejorar o escuchar. Solo estoy tratando de evitar problemas a partir de ahora, siempre y cuando sea legal y estudie para lo siguiente.
Parece que mi comentario acerca de documentar los problemas y colocarlos en el backlog es importante desde la perspectiva de sus gerentes. Solo póngalos e infórmele que está documentando sus inquietudes, pero que en realidad depende del PO/SM determinar su prioridad. Sin embargo, en Agile deberías tener poder y tu equipo debería estar haciendo retrospectivas. La próxima vez que su gerente le pregunte por qué no los está solucionando, indique que el "equipo" decide en qué trabajar, no usted y usted ha planteado sus inquietudes, pero es realmente el "equipo" el que necesita solucionar estos problemas.

Usted no es el líder , por lo que no es responsable de las fallas del equipo solo por la parte que jugó en él (es decir, su código e impacto en el equipo), no necesita preocuparse por eso .

¡Copiar el código interno fue algo inteligente por cierto!

¿Por qué reinventar la rueda si la empresa ya posee un código adecuado?

Tu Scrum Master tenía razón en que perdiste el tiempo.

Sin embargo, si el código copiado causara problemas o errores en el producto final, debería intentar mejorarlo y darlo como razonamiento.

Su gerente no quiere que administre o dirija, pero puede esperar que pueda solucionar problemas que otros no pueden o no quieren.

Si puede, eso seguramente aumentaría su respeto y su posición con el jefe; de ​​lo contrario, su crítica podría interpretarse como un lloriqueo.

Dependiendo de la cantidad de trabajo en la empresa, puede que no sea posible evitar ese proyecto.

"¿Por qué reinventar la rueda si la empresa ya posee un código que es adecuado?" Parece que la persona copió en un proyecto cuando probablemente solo necesitaba un fragmento
@Mars es legítimo (con sus propias trampas, por supuesto) usar un proyecto funcional, probado y probado y construir sobre la parte superior hasta que tenga un prototipo funcional para su nuevo proyecto. Luego comience a eliminar el código innecesario. Si se realiza cuidadosamente con muchas pruebas, puede dar como resultado un producto mucho más estable en mucho menos tiempo que escribir desde cero. Claramente, el tiempo es un factor en esta empresa o equipo, como lo es en cualquier negocio.
Scrum master no es mi jefe, es un compañero de equipo.
@oftencoffee se disculpa, en mi opinión, todavía tenía razón en su evaluación.
@DigitalBlade969 No tenía intención de reinventar la rueda cuando estaba refactorizando. Un colega copió la base de código del producto completo sin analizar qué partes necesitaríamos y cuáles no. Esto dio como resultado un código muy voluminoso y lento, sin ninguna prueba. Entonces, al refactorizar, mi objetivo era limpiar las cosas, ver qué está causando largos tiempos de construcción, etc. No creo que liquidar la deuda técnica sea una pérdida de tiempo.
@oftencoffee está bien hacerlo. ver mi comentario a Marte. De esa manera, se aseguró de que ustedes puedan trabajar en un producto que ya funciona y que "todo lo que su equipo debe hacer" es adaptarlo al nuevo proyecto. La eliminación de partes del software en funcionamiento podría inutilizarlo y podría interferir, incluso dañar, el proceso de convertirlo en el nuevo producto. No digo que esta sea la mejor solución o una que necesariamente elegiría, pero de todos modos es un concepto viable.
¿Por qué diablos esto sería rechazado???????
¿Por qué reinventar la rueda si la empresa ya posee un código adecuado? No voté en contra, pero no estoy seguro exactamente de cómo se aplica esto: el OP indica que el código escrito por otras personas no es adecuado (que es su principal preocupación aquí), incluido el código copiado. Esto no parece responder a la pregunta tal como está escrita. Ver también: Programación de culto de carga .
@DigitalBlade969 Entiendo totalmente lo que dices y tienes razón, ¡es algo que la mayoría de nosotros hacemos todo el tiempo! Solo quise decir que en este caso, parece que OP piensa que fue una exageración masiva. ¡Tampoco estoy seguro de por qué esto está siendo votado negativamente! Personalmente no estoy de acuerdo, ¡pero es una lógica bastante justa!