¿Cómo manejar cuando otro desarrollador arruinó un proyecto?

Estaba trabajando en un proyecto y terminé todas mis tareas.

Otro desarrollador comenzó a trabajar en las nuevas tareas. Ahora he descargado el proyecto y tiene algunos errores de compilación.

¿Cómo puedo manejar esto?

Debo pensar que el control de versiones le basta al gerente u otro ve quien jodio el proyecto?

¿O debería hablar con él y preguntarle sobre los cambios que hizo?

Soy nuevo en esta empresa, y él también. Pero parece ser menos hábil que yo.

EDITAR

Hablé con él sobre el error de compilación y me dijo que lo sabe, pero que no parece importarle, porque su compilación y ejecución normalmente incluso han sido todas las clases rojas (cosas de Android Studio).

De todos modos, le he dicho que haré un cambio al respecto y lo arreglé y me comprometí.

Relajarse. Habla con él primero. Tranquilo y constructivo.
¿Crees que es mejor hablar por skype, o en persona con mi gerente y otras personas también escuchan?
Primero vas en persona al otro desarrollador y hablas con él. Deja fuera al gerente.
Fresco. Lo que me molesta es que alguien haya cometido un código con error.
Mierda sucede. La próxima vez podrías ser tú quien registre algunos errores. En este punto, debe pensar en las pruebas de integración y la integración continua, que se pueden usar como una contramedida contra los errores de compilación en general.
Es un error de compilación. Es más fácil de ver porque todas las clases son ROJAS
@LMaker si todo está en rojo, sugeriría que hay cambios no confirmados o una referencia faltante o una DLL faltante que debe obtener en otro lugar, no necesariamente que haya algo fundamentalmente mal con el proyecto.
Los errores suceden. Lo creas o no, cometerás errores que otros encontrarán abominables. Incluso las personas brillantes tienen días libres. Así que no se moleste con las personas que cometen código con errores y aprenda a aceptar que los humanos son imperfectos y cometen errores.
Para el punto de @ user1666620, el problema podría ser fácilmente su propio entorno, no algo que haya hecho el otro desarrollador (especialmente si todas las clases están en rojo). Relájese, hable con el otro desarrollador y solucione el problema. El desarrollo de software es un proceso colaborativo.
Recuerde, a la mayoría de los empleadores (según mi experiencia) les importa menos quién arruinó un proyecto y más quién lo arregló y cómo.
hay una actualizacion chicos
Debes explicarle cuál era el problema, por qué era un problema y cómo lo abordaste si realmente "no le importaba". Tal vez no le importaba a corto plazo (por ejemplo, porque se estaba concentrando en muchas otras cosas también importantes), aunque lo que puede suceder. En general, las fallas de compilación son inaceptables, pero eso no significa que se puedan solucionar de inmediato cuando otras cosas son más apremiantes.
Le dije el problema y por qué es importante solucionarlo.
¿En serio? ¿Quiere involucrar al administrador, porque no se generará una confirmación? Vaya a su escritorio y pregúntele qué cambió y por qué esto no se basa en su máquina. Si no tiene un entorno de desarrollo fijo, podría ser fácilmente que la configuración en su máquina sea ligeramente diferente a la de él.
@LMaker, ¿entonces se estaba construyendo de todos modos? Algunos IDE son simplemente tontos y se quejan de problemas que no existen. Tal vez pensó que ese también era el caso aquí, ya que aparentemente la construcción no estaba rota.
Sí, lo fue. Ha actualizado el complemento build gradle a una versión alfa con algunos errores, esta fue la causa. Solo bájalo arreglado

Respuestas (6)

Definitivamente deberías hablar con él al respecto. Tal vez no comprometió completamente todos sus códigos/cambios, o tal vez lo hizo por accidente.

Si cometió todo y fue plenamente consciente de ello, debe preguntarle sobre los errores y tal vez incluso ofrecerle ayuda para solucionarlos si no sabe cómo hacerlo él mismo.

Siempre puede dirigirse directamente a su gerente si resulta que no le importa la calidad de su código o si siente que su incompetencia le impide hacer su trabajo.

Hablar con calma con él al respecto debería ser el primer paso, después de todo, son colegas.

Uno de los mejores desarrolladores con los que he trabajado tenía la costumbre, durante algunos años, de cambiar las cosas en dos lugares del repositorio y confirmar uno.
Si cierto. Pero estas cosas deben estar en la descripción de confirmación, ¿verdad? No tenemos una bola de cristal.
Sí, pero como dijiste, él es menos hábil que tú. Es posible que sea nuevo en el control de versiones, lo que podría significar que se trata de un caso de confirmación accidental en la rama incorrecta, o simplemente olvido de que debe confirmar todos sus cambios como el ejemplo de @DavidThornley.
Aceptar. Dile que rompió la construcción y deja que lo arregle. Ir directamente al gerente no lo hará quedar bien ante sus colegas en varios aspectos. Probablemente tampoco te hará quedar bien ante tu gerente.

Debo pensar que el control de versiones le basta al gerente u otro ve quien jodio el proyecto?

Quizás, pero esa no debería ser tu principal preocupación. No quieres jugar el juego de la culpa; eso no mejorará las relaciones laborales y ciertamente no ayudará a solucionar el problema.

¿O debería hablar con él y preguntarle sobre los cambios que hizo?

Hablale. No lo culpes. Señale por qué está roto y luego pregunte "¿cómo podemos arreglar esto?" Enfatiza que lo único que te importa es llevar el proyecto a buen término.

Soy nuevo en esta empresa, y él también. Pero parece ser menos hábil que yo.

¿Así que lo que? No es una competencia. Habrá otros más hábiles que tú.

Trabajé durante unos 3 años solo, ha sido difícil para mí trabajar en equipo. Gracias por tu ayuda

Hablale. No acuda al gerente cada vez que algo no funcione.

¿Estás seguro de que tu entorno está configurado correctamente? ¿Hay alguna posibilidad de que te estés perdiendo algo? Verifique dos veces antes de acercarse a su colega. Cuando se acerque a él, le sugiero que enmarque la pregunta como una solicitud de ayuda para construir el proyecto.

Algo como "Desactivé el repositorio pero no se compila. No estoy seguro si configuré algo mal, ¿podría ayudarme?"

Esto le dará la oportunidad de ver que su cambio rompió el código. ¡Ambos son nuevos, por lo que es válido pedir su ayuda para configurarlo de todos modos! Déle la oportunidad de arreglarlo él mismo primero, antes de escalar algo que sucede en todos los entornos de desarrollo de software.

Si tiene control de versiones, que espero que tenga, debería poder ver qué cambios hizo. Le sugiero que hable con su supervisor sobre la creación de algún tipo de sistema de revisión de código en el futuro.

Sí, he hecho una búsqueda antes de "culparlo". Sabía exactamente dónde está el error y por qué está sucediendo. Lo que me molesta es una cosa de compromiso de desarrollo que está rota

¿Cómo puedo manejar esto?

Implemente un flujo de trabajo de solicitud de extracción (o como lo llame) que permitirá que otro desarrollador revise los cambios antes de que se agreguen

Los desarrolladores, incluso los experimentados, rompen la construcción. Parece que no eres el líder técnico. Da un paso al frente y muéstrale al líder técnico que te encargarás de implementar el (muy necesario) proceso.

Ve a hablar con él 1 a 1 sobre los cambios. Vea si se trata de un problema de configuración de su parte. Si es así, problema resuelto.

Si no, mira cómo puedes usar un flujo de trabajo para evitar que esto vuelva a suceder.

Después de revisar cómo activar las revisiones y las compilaciones automáticas en su sistema actual, comuníquese con el líder técnico. Di algo como

Me di cuenta de que a veces las personas revisan los cambios que rompen el sistema, y ​​si activamos las revisiones de relaciones públicas, eso debería disminuir significativamente. También podemos construir el sistema cada vez que alguien se registra, lo que también debería reducir eso.

Con suerte, el líder técnico estará encantado de que alguien quiera dar un paso al frente y hacer esto. Si odian con vehemencia la idea, corre por tu vida.

No se necesitan revisiones de código para cambios importantes en la compilación. Las compilaciones automatizadas con notificaciones por correo electrónico son la solución a ese problema.
De todos modos, parece que no tienen un buen proceso implementado, y es probable que sea más fácil activar las revisiones de relaciones públicas que configurar un sistema de integración continua.

Paso 1: habla con él. Mencione que la compilación está rota y que la última confirmación fue su confirmación, así que pregúntele qué sucedió (es importante no decir "¡rompió la compilación!" porque a) eso es acusatorio yb) tal vez su cambio no fue en realidad el cambio que rompió la compilación, por ejemplo, tal vez fue un cambio de configuración, o tal vez se olvidó de un cambio que usted mismo hizo, etc., en cuyo caso parece muy abrasivo y acusatorio).

Paso 2: Si él es receptivo a su declaración, trabaje con él para arreglarlo y si no entiende qué salió mal, explíqueselo. Explicárselo le enseñará cómo no volver a cometer el mismo error. Eso se llama tutoría y es muy importante entre colegas, particularmente entre los más experimentados (hacia los menos experimentados). Sus superiores lo mirarán muy bien si puede participar productivamente en la tutoría.

Paso 2a: en el caso extremadamente improbable de que no sea receptivo a su declaración, entonces es hora de luchar: verifique dos veces su trabajo para asegurarse de que rompió la construcción, luego vaya a su gerente y muéstrele que la construcción está rota. y que el colega lo hizo. Entonces es problema del gerente, no tuyo, y ahí termina tu responsabilidad.

Paso 3: La próxima vez que este colega en particular rompa la construcción, enjuague y repita. Si sucede varias veces y cree que es un patrón de irresponsabilidad, entonces puede dirigirse a su gerente y decirle: "Oye, Bob, sabes que Joe ha roto la construcción varias veces y he tratado de hablar con él sobre pero parece que a él no le importa, ¿te importaría hablar con él al respecto? o algo así. No entre agresivo o acusador; haga que el problema sea romper la compilación, no sobre el colega. Su gerente decidirá cuál es el mejor curso de acción a partir de ahí.

Esto es exactamente para lo que están los servidores de compilación. Verifican la fuente después de cada confirmación y ven si se compila y envían un correo electrónico a quien rompió la compilación para que puedan solucionar el problema.

Algunos servidores de compilación pueden incluso servir los artefactos creados si es necesario.

Si no tienes uno, consigue uno. Un buen lugar para comenzar es Jenkins, que es muy fácil de usar.

En este caso particular, el problema probablemente se habría solucionado antes de que se fuera a casa sin necesidad de hablar o señalar con el dedo.

La configuración de un servidor de compilación es una buena sugerencia técnica, pero sin discusión, aceptación del equipo y disciplina, no hará que las personas arreglen su código por arte de magia. Si no están familiarizados con la práctica, considerarán cualquier correo electrónico que les envíe el servidor de compilación como spam y los ignorarán.
@Brandin Naturalmente, esto necesita apoyo político como parte de su implementación. Entonces, haz que el jefe diga "Así es como lo haremos de aquí en adelante" primero.