¿Debería un programador corregir la compilación fallida de otra persona? [cerrado]


45

Un programador dedicó algo de trabajo al repositorio SVN y luego se fue a su casa. Después de que él se fue, la construcción automática de Hudson falló. Otro programador vio esto, y después de revisar los cambios en el código, detectó que el problema era la ausencia de una biblioteca. Agregó esta biblioteca a SVN y la próxima compilación se completó con éxito.

¿El segundo programador hizo lo correcto o debería haber esperado hasta que el primer programador solucionó el problema?


31
Pregunta: Un miembro de programadores hizo una pregunta. Otro miembro leyó la pregunta y vio algunos errores sintácticos y gramaticales, por lo que decidió editar la pregunta y corregirla, para hacerla un poco más fácil de leer. ¿Es correcto lo que hizo el editor o debería haber esperado a que el póster corrigiera los errores?
Yannis

2
¿Cuáles son las reglas de su equipo para esta situación?

44
@nahab Oh, no te preocupes, no estoy diciendo que sea un problema :). Solo que en una comunidad, como en un equipo, se debe alentar a los miembros que se ayudan entre sí. Además, no creo que un desarrollador que rompa una compilación no sea profesional, incluso si se trata de un error menor, estas cosas nos pasan a los mejores.
Yannis

11
La idea de tener Hudson en primer lugar es porque los humanos son humanos y romperán la construcción de vez en cuando. Solo quieres atraparlo temprano. Se podría argumentar que el programador en cuestión debería haber verificado que la construcción se construyó antes de volver a casa.

14
Esto es mucho más fácil de comprender si considera lo contrario: si la construcción está rota, ralentizando a todo el equipo (incluso en casa, después del horario de atención) y puede solucionarlo, pero tome una decisión deliberada de no hacerlo debido a algún punto del procedimiento , ¿se le debería permitir mantener su trabajo?
Bill K

Respuestas:


87

Depende en cierta medida del funcionamiento de su equipo, pero diría que estuvo bien. Mantener la compilación funcionando ahorra tiempo a todos los demás.

Es cortés que el segundo programador envíe un correo electrónico al primero para explicar lo que ha hecho, en caso de que se necesite una versión específica de la biblioteca o haya alguna otra complicación. También es una forma un poco más sutil de señalar que habían roto la construcción.


101
también es cortés que el primer desarrollador compre donas para compensar la ruptura de la compilación
jk.

17
Me gustaría cerveza en lugar de rosquillas.
Martin York

2
Las rosquillas pueden ser ofensivas para los intolerantes al gluten. Una tarjeta de regalo de $ 5 para Best Buy, por otro lado ...
Christopher Mahan

1
@ChristopherMahan resultaría en una pelea entre todos los miembros del equipo sobre quién lo recibe; o si se le da a un miembro del equipo como la distribución implícita de una caja de donas en la sala de descanso es una propuesta mucho más costosa. Y en cualquier caso, una tarjeta de regalo Best Buy podría ser ofensiva para cualquiera que trabajara para Circuit City o CompUSA. :)
Dan Neely

1
¿Qué puede obtener en Best Buy por menos de $ 5?
Kevin Cline

12

Depende.

  • ¿El error es tan obvio que agregar una biblioteca es la forma de solucionarlo? A veces, la solución es encontrar una solución alternativa para no necesitar esa biblioteca.

  • ¿Está el proyecto en una fase donde todos los cambios deben estar vinculados a un ticket existente? Si es así, ¿presentó una multa? ¿Te han asignado ese boleto?

De todos modos, concéntrate en arreglar el error, no en culpar al responsable.


99
"... no en culpar a los responsables". A menos que sea algo habitual.
Shawn D.

11

Si esta bien. Sin embargo, no es profesional que el programador original se vaya a casa antes de probar si la compilación se compilará.

Tu reputación está 100% bajo tu control. Cosas como esta empañan su reputación y tratar de pulir una reputación empañada es muy difícil.


2
+1 por poner la responsabilidad en el primer desarrollador que pruebe la compilación. El segundo párrafo realmente no es verdadero o relevante. Otras personas pueden dañar su reputación, ya sea intencionalmente o no, incluso cuando su comportamiento es completamente exagerado.
Caleb

66
Es completamente posible que el programador original tuviera la biblioteca en su máquina, pero la máquina que realizaba la compilación automática no. Sí, la biblioteca debería estar en SVN, pero este puede ser un problema realmente sutil que ni siquiera se da cuenta.
mpdonadio

7

Comunicar

No hay reglas estrictas (además de las reglas de su propio equipo) para ese escenario.

Dev2 debería poder decirle a dev1 que puede corregir su error, ninguno de los dos debería temer a algo resultante de este intercambio, son parte de un equipo.


5

Por qué no? Si su producto es más importante que corregir culpas, sin duda está bien. Aunque un error de compilación debido al cambio de biblioteca es bastante lamentable y debe reprender al desarrollador por no probarlo.


3

Las fallas de construcción suceden. Si es importante que suceda una compilación diaria, lo arreglaría y luego solicitaría que el desarrollador que verificó el código roto revise la corrección al día siguiente y se asegure de que el código esté ahora como debería ser.

Como se ha dicho, el tipo que lo arregló probablemente debería enviar un correo electrónico al tipo que lo rompió y detallar cuál fue la solución.


2

Mi lema es no comprometerse con SVN después de las 3 p.m. de esa manera, siempre puede corregir sus propios errores de compilación.

Si no arregla su falla de construcción, entonces la construcción de todos los demás también fallará. Lo arreglaría para ahorrar tiempo a largo plazo, pero asegúrese de que sepan que tuvo que arreglarlo.

¡Tener algún tipo de guión de 'señalar con el dedo de la culpa' es una buena manera de hacer esto, o hacer que la persona que rompe la construcción compre donas!


2
Nuestra herramienta CI tiene una opción para enviar un correo electrónico al desarrollador que rompió la compilación (además del resto del equipo).
TMN

2

Alguien necesita arreglarlo y el primer programador no debería haberse ido a casa sin asegurarse primero de que no había roto la compilación. Sin embargo, para un problema tan fácil de solucionar, llamarlo nuevamente para que lo solucione sería extremo.

Estoy de acuerdo con la sugerencia de Luke Graham de enviar un correo electrónico explicativo, aunque diría que es más que cortés, es una comunicación básica.


Debido a que las compilaciones de integración a veces demoran una hora o más, dependiendo de la complejidad de su sistema, tendría que implementar un "corte de compromiso" todos los días para asegurarse de que la última compilación del día ocurrirá mientras todos estén presentes. Incluso entonces, las personas tienen citas con el médico, práctica de fútbol para niños, etc. y necesitan retirarse de inmediato, independientemente del estado de construcción. Agile dice que el trabajo debe ser a un ritmo sostenible y no debe ser una carga para los trabajadores. Mantenerlos allí hasta las 8:00 para ver una construcción exitosa es contrario a eso.
KeithS

@KeithS: cierto. Pero he descubierto que, independientemente de cuándo me vaya, el momento más probable para que rompa la construcción es cuando tengo prisa: justo antes del almuerzo, justo antes de una reunión, justo antes del final del día. Por lo tanto, creo que es una "mejor práctica personal" no cometer nada cuando no hay tiempo suficiente para ver y arreglar la compilación después.
Daniel Pryden

2

¡Si si si! Fomenta la propiedad del código colectivo y establece una especie de saludable presión de grupo en el equipo para mantener un alto estándar y no permitir que se desarrolle un escenario de ventana rota. Un poco de comunicación para que el otro desarrollador sepa es una buena idea.


2

Creo que está bien arreglar cosas obvias, es decir, si está 100% seguro de que el tipo cuyo código está arreglando haría la misma solución, o sustancialmente la misma. Si la solución es más compleja, por lo general es cortés hablar con la persona cuyo código está arreglando; puede ser que haya entendido mal la intención o que la razón de la ruptura no sea lo que pensaba, o tal vez haya intentado otra solución pero por alguna razón no pude cometerlo todavía (la vida pasa, ya sabes :).

En general, la regla generalmente es: se rompe la compilación: se repara la compilación, pero hay excepciones, especialmente si la solución es obvia y / o la persona responsable es inalcanzable.

Por supuesto, si tiene el caso de un interruptor de compilación en serie, especialmente con el patrón "registrado, se fue a casa, la estructura se rompió durante días", la persona responsable necesita hablar sobre por qué existen los sistemas y pruebas de CI y cómo se debe verifique antes de registrarse :)


1

Las cosas pasan. La falla al agregar un nuevo archivo de código (ya sea fuente o compilado) a Subversion es probablemente la causa más común de compilaciones rotas, suponiendo que funcionó en la computadora del desarrollador. En mi último trabajo con un entorno de CI, incluso los hombres más veteranos a veces se olvidaban.

Creo que si otra persona pudo arreglar la construcción y así mantener al equipo tarareando, está bien. Creo que el programador que se fue a casa necesita al menos un correo electrónico amigable que indique lo que sucedió, y para recordarle que se asegure de que se agregue un nuevo código antes de las confirmaciones. Si sucede con frecuencia, tal vez haga que sea un delito menor que se castiga con la "danza de la vergüenza", para ayudar a reducir las ocurrencias (y aligerar el estado de ánimo).


1

Depende de la dinámica del equipo, pero en un mundo ideal, todos en el equipo "poseerían" todo el proyecto, todo el código y, en consecuencia, todos los errores conjuntamente. Entonces, si encuentra un problema, lo soluciona y se comunica con el creador del error solo si hay algún valor agregado específico al código al hacerlo.


0

Está bien arreglarlo, a menos que sea algo habitual, en cuyo caso el jefe lo llamaría y lo haría regresar y arreglarlo él mismo.


0

Depende, depende ...

Como programadores, nuestro trabajo es hacer que las cosas funcionen, no juzgar a las personas. Entonces, diría que lo mejor que puede hacer es arreglarlo, o si no es obvio, simplemente retroceda los cambios y avísele al primer programador para que pueda arreglarlo más tarde.

De todos modos, tener al último hombre que rompió la construcción para usar un sombrero extraño es suficiente para prestar más atención la próxima vez ^ _ ^


0

En algunos entornos, esto es muy grosero, y por buenas razones. En otros entornos, se espera, y por buenas razones.

En otros entornos, es muy grosero o esperado por muy malas razones.

Depende en gran medida de la importancia de una compilación rota en comparación con la importancia de una compilación correcta verificada. Y hasta cierto punto, depende de cuán obvio sea que la solución fue la correcta y la única necesaria.


0

Primero, "fue a casa" es un anacronismo. Los programadores ya no se van a casa, solo están conectados o desconectados. Podrías hacer ping y esperar.

Más en serio, en realidad hay dos partes en la pregunta. 'mirar a través de los cambios de código' está bien; descansar puede no ser lo correcto. ¿Qué pasa si su juicio de una biblioteca perdida era incorrecto?

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.