Sé que Subversion (lo que estamos usando en el trabajo) se puede configurar para requerir comentarios en las confirmaciones, sin embargo, no estoy en una posición de poder para simplemente activar esto. Sé que mi razón para comentar mis confirmaciones es porque es útil, aunque solo sea como un recordatorio de memoria, para comprender rápidamente la razón detrás de la confirmación. Sin embargo, esto no parece ser suficiente para combatir las dos respuestas que siempre obtengo:
- Tarda demasiado y solo quiero que mis cambios entren en el repositorio.
- Es bastante fácil solo mirar las diferencias.
Incluso les muestro el valor de simplemente poner un ID de problema de JIRA y cómo se vincula automáticamente con el problema, pero aún no hay dados con ellos.
Lo peor de todo es que la persona que puede hacer la llamada está en el mismo campamento: no quiere molestarse y está bien con mirar los diferenciales.
Sé que es lo correcto, pero ¿cómo puedo hacer que vean la luz? Incluso si no puedo convencer a mis colegas desarrolladores, ¿cómo puedo convencer a la gerencia de que es lo correcto para el negocio?
fuente
#10291
. La referencia será evidente de inmediato, y todos los detalles relevantes ya deberían estar en el sistema de seguimiento de errores.Respuestas:
Centrarse en "por qué". Todo está muy bien mirando las diferencias y viendo que alguien cambió el flujo lógico de una sección de código o algo así, pero ¿por qué lo cambiaron? El por qué generalmente está en el boleto asociado (JIRA para usted).
Pueden preguntarse por qué el "Por qué" es importante, pero dentro de 2 años cuando haya detectado algún error que sea un efecto secundario de ese cambio, saber por qué se hizo es increíblemente importante no solo para solucionar su nuevo error, sino también para asegurarse no haces que el viejo error vuelva a aparecer.
También está el motivo de la auditoría. Las confirmaciones de enlace y las identificaciones de tickets hacen que sea realmente fácil decir ok, estamos lanzando la Versión 2, esto corrige los defectos 23, 25, 26 y 27, pero no hay confirmaciones contra el defecto 24, por lo que aún está pendiente.
fuente
why
un check-in es precisamente lo que buscas: dar a los desarrolladores una buena razón (también conocida como motivación) por la que deberían usar comentarios de check-in (significativos).Haz que hagan las fusiones y lidien con el apoyo. De nuevo, tal vez no esté en condiciones de hacer esto, pero si se encuentra a sí mismo siendo el que resuelve un problema de un compromiso anterior, envíelo cortésmente y dígalo. No puedo decir lo que hiciste porque no hay comentarios de confirmación, hiciste estos cambios que necesitas para resolverlo.
También para fusionar ramas. No estoy seguro de si eso recae sobre usted o no, pero esa es un área que encontré útiles los comentarios.
Una vez más, no en su barco, pero cuando gestioné un equipo de software, les dije que si hacían buenos comentarios de compromiso, los usaría en un informe de estado semanal. Obtuve excelentes compromisos después de eso y también fue más fácil para mí hacer un seguimiento de lo que estaba sucediendo como gerente.
fuente
Necesitamos comentarios de check-in por la misma razón por la que necesitamos saltos de línea y espacios en nuestro código. Para hacer que las cosas sean más fáciles de rastrear, comprende leer y comprender.
A veces necesitas comparar, pero a menudo no. Obligar a los desarrolladores a comparar cuando todo lo que necesitaban era leer 2-3 oraciones es una pérdida total de tiempo. Me pregunto por qué no ven el valor del tiempo del desarrollador.
fuente
No tengas miedo de ser la rueda chirriante. Combatir los malos hábitos de otras personas es a menudo una guerra de desgaste.
fuente
Esta tiene que ser una de las preguntas más extrañas que he escuchado. ¿La gente pasa horas o incluso días arreglando algo y 2 segundos adicionales para escribir un mensaje de confirmación es demasiado largo? Tengo que decir que me preocuparía trabajar con personas tan miopes. Obviamente, no están utilizando sus herramientas para acercarse a su máximo potencial.
Aquí hay un ejemplo de una revisión de código en la que participé la semana pasada. Nuestro software de control de versiones no conserva el historial de las fusiones, por lo que para los cambios más antiguos debe encontrar la rama exacta en la que se realizó, de lo contrario, el mensaje de confirmación solo muestra algo como "fusionado de la rama Y". La rama Y podría mostrar "fusionada de la rama Z", y una rama de unos niveles de anidamiento más profundos en realidad tiene el mensaje de confirmación real.
Un nuevo empleado no sabía cómo rastrear el historial correctamente, lo que significa que estaba trabajando esencialmente solo con los diferenciales. Vio un código comentado relacionado con el error que estaba rastreando. Cuando descomentó el código, su error desapareció. Asumió que alguien había comentado el código durante la depuración y lo registró por error.
Eso no nos pareció bien a algunos de nosotros durante la revisión del código, así que rastreé el mensaje de confirmación real y descubrí que había una razón válida para eliminar ese código hace un año. El nuevo empleado pudo corregir su código para corregir el error recién descubierto sin reintroducir el antiguo.
Hay mejores maneras de evitar la introducción de ese tipo de regresiones, como pruebas unitarias exhaustivas, pero de alguna manera no veo personas que no puedan molestarse con un mensaje de confirmación de 2 segundos que "pierde" el tiempo en las pruebas unitarias.
fuente
Tuve exactamente el mismo problema aquí, así que agregué un enlace de preconfirmación a Subversion para que no aceptara ninguna confirmación que no comenzara con el número de Historia del usuario (alguna coincidencia de patrón básico para un formato esperado).
No hay nada que los detenga entrando 000-0000, pero una vez solo un idiota disruptivo inventará un número cuando tenga un número perfectamente aceptable allí.
Hice esto después de pasar días tratando de encontrar en qué compilaciones entró un conjunto de historias de usuarios. Sí, era para lidiar con una falla del proceso en otro lugar, pero aún así es una información increíblemente valiosa para rastrear.
fuente
Los buenos comentarios de confirmación son como cualquier buena documentación, una memoria caché para su cerebro lento y desaparecido o una memoria caché del resultado de una larga depuración / análisis de problemas / investigación.
Por ejemplo, cada vez que pasa tiempo descubriendo algo, como depurar, analizar registros o lo que sea, sus hallazgos y resultados son preciosos. Por supuesto, la mayoría de las tareas pueden repetirse, pero puede llevar tiempo. Por lo tanto, siempre debe documentar sus resultados.
Aún así, la documentación lleva tiempo y, a veces, se considera innecesaria, como "solo tuvimos que hacer esto una vez, entonces, ¿por qué escribirla?". Está bien, pero tan pronto como haga lo mismo una segunda vez porque no documentó los resultados la primera vez, entonces, por supuesto, es inteligente documentar los resultados.
Entonces, si sus colegas sienten que es demasiado trabajo agregar comentarios de compromiso, por ejemplo, al menos señalar el caso / Ticket Jira que estaban resolviendo, entonces, podrían estar motivados por la presión de responder constantemente a las preguntas sobre el motivo de cada uno conjunto de cambios
En mi opinión, la documentación debe ser producida en función de la información solicitada. Por ejemplo, la correspondencia por correo es un sistema de documentación bastante bueno. Las preguntas reciben respuestas que luego se pueden recuperar, así es como las listas de correo y los foros funcionan en la práctica como bases de conocimiento.
Desafortunadamente, donde trabajo, el correo se elimina automáticamente después de 3 meses, por lo que no siempre funciona en la práctica.
fuente
Busque el perdón, no el permiso.
Aunque fue duro, hice exactamente esto. Tenía una división de 50/50 entre las personas que apoyaban y las que se oponían, la mayoría de las cuales tenían el mismo nivel que yo en el grupo. Los argumentos fueron "No puedo ser molestado" y "¿Cuál es el punto?". (Ambos indican apatía y pereza, no preocupaciones genuinas).
Agregué un gancho previo al compromiso que simplemente midió la longitud de la cadena y le di un mensaje ligeramente humorístico antes de rechazarlo. Puse mi nombre en el mensaje para que la responsabilidad de "este ultraje" fuera clara. Por supuesto, "la oposición" podría eliminarlo fácilmente, ¡pero profundizar en los guiones requeriría más esfuerzo que agregar un comentario más!
Durante una semana recibí mensajes agregados como * * (improperio eliminado) o kjhfkwhkfjhw. Después de eso, comenzaron a aparecer mensajes básicos.
Un año después, los escépticos usan comentarios significativos y realmente admiten cuán miopes eran. Nunca podría haber llegado a un consenso, pero ciertamente obtuve perdones y tal vez credibilidad. Funciona, la gente lo usa.
Si quisieras ser más amable (o sentir que te meterías en problemas), pide permiso para agregar un enlace de compromiso durante un período de prueba. Digamos que si a la gente no le gusta en 2 o 4 semanas, lo sacará. Lo más probable es que pierdan interés ... o que les guste.
fuente
Por lo general, convenzo a las personas a través de:
Si quisiera que nuestro equipo hiciera algo lo suficientemente malo, seguiría molestando hasta que me salga con la mía. Intento molestar durante esos momentos en los que puedo señalar que podríamos haber ahorrado tiempo / dinero si ya hubiéramos estado haciendo X.
Otras buenas razones para cometer comentarios:
fuente
fuente
¿Cómo haces que quieran agregar buenos comentarios?
De una experiencia con un colega que acabo de tener. Al final de un proyecto, tuvimos que escribir un documento resumen de todos los cambios realizados a lo largo del proyecto. Al no haber tomado buenas notas de confirmación, mi colega encontró esta tarea bastante lenta, y ahora ha cambiado a hacer comentarios bastante largos con cada confirmación.
Entonces, la conclusión: una solución podría ser que los desarrolladores escriban documentos de resumen al final del proyecto que detallen qué cambios se hicieron a qué archivos, qué archivos se agregaron / eliminaron y por qué.
fuente
Proponga esto a la gerencia a puerta cerrada:
El peor de los casos sucede: todos los desarrolladores de nivel superior salen por la puerta.
A medida que la empresa se esfuerza por llenar los puestos de desarrolladores vacíos, el equipo de gestión tiene la tarea de comunicar el estado del sistema al cliente.
Pregúnteles qué creen que facilitaría su trabajo al reconstruir el historial de la aplicación:
¿Lees confirmaciones simples en inglés que describen claramente el estado cambiante del sistema?
¿O preferirían mirar las diferencias de código y resolverlo ellos mismos?
fuente
Supongo que una forma de convencerlos sería experimentar realmente el dolor que estás sintiendo.
Por ejemplo, supongamos que están trabajando en el siguiente problema: tienen un error que, de alguna manera, apareció cuando se implementó otra corrección de error para el mismo código (oh, la ironía). Sería genial poder buscar esto simplemente buscando a través de los mensajes de confirmación (y así descubrir quién lo escribió).
Otra forma sería explicarles que el mensaje de confirmación podría ser útil para dar una pista de por qué algo se implementó de cierta manera. Incluso si el mensaje de confirmación solo dice "característica X", aún puede obtener una pista de quién lo implementó, para saber con quién hablar.
fuente
¿Has intentado lanzar un desafío a tus compañeros desarrolladores para que obtengan algún otro beneficio al hacer comentarios? Uno podría ver esto desde cualquiera de un par de ángulos diferentes:
Algo más a tener en cuenta es ¿qué tan bien sabe qué gestionan sus compañeros desarrolladores donde trabaja? Si intentan hacer 10 cosas ayer, podría entender que tal vez no quieran cambiar lo que ven como algo que ya funciona. ¿Estás tratando de decirles, "No, esto no funciona?" Si es así, entonces puedo ver cómo pueden ser un poco defensivos o combativos en esto. Si está tratando de decirles: "Si bien esto puede funcionar, hay una alternativa que puede ser mejor ...", entonces puede tener una oportunidad. Tener una actitud de "Más santo que tú" aquí no te va a ayudar, OMI.
fuente
Otra forma de ver esto es como una forma para que los desarrolladores involucrados hagan crecer sus carreras: deben poseer la documentación de su trabajo.
Además de otros puntos planteados en el artículo mencionado anteriormente, existe la posibilidad de poder revisar los cambios en el código para averiguar dónde / cuándo / por qué se realizó un cambio. Eso podría ser vital al rastrear un error esquivo.
fuente
Después de haberlos convencido de que es importante comentar sus confirmaciones, puede crear un script que fuerce los comentarios sobre las confirmaciones, de lo contrario fallará. Incluso puede especificar un mínimo de caracteres para asegurarse de que sea un comentario significativo. Esto les ayudará a "recordar".
Sin embargo, es importante que entiendan el Por qué, como dijo @Kevin, o de lo contrario simplemente agregarán cualquier comentario al azar.
fuente
¿Tienes revisiones de código? Una cosa que puede ayudar es instituir una regla que indique que cualquier compromiso o fusión debe ser examinado y aprobado por otro desarrollador. Luego, si usted es el revisor, tendría que pedirle al desarrollador que se compromete que le explique lo que hizo. Una vez que lo haga, debe pedirle que escriba en el comentario lo que acaba de decirle. A menudo, cuando no se puede explicar coherentemente los cambios que se hicieron, significa que esos cambios no deberían haberse realizado en primer lugar.
Sin embargo, debo decir, ¿cómo pueden las personas objetar algo tan obviamente útil como enviar comentarios? No toma mucho tiempo, y es un tiempo bien empleado. Escribir un comentario te obliga a pensar en lo que acabas de hacer. Incluso puede hacer que mire las diferencias para asegurarse de que realmente ha hecho lo que cree que ha hecho, y que no ha hecho nada estúpido.
Cuando no escribe los comentarios, está siendo descuidado e indisciplinado. Y si insiste en que no se le debe pedir que escriba los comentarios, entonces está siendo negligente deliberadamente.
fuente
Dígales que es la única forma de tener la oportunidad de mantener su desorden procesal de 50,000 métodos de línea, luego considere escribir un código mejor y más explícito en el futuro para que no tenga que lidiar con un montón de comentarios sin sentido que hinchan su base de código.
fuente
Este es un elemento de cambio de proceso: haga que un gerente asigne el código desarrollado por "x" a "Y" para las comprobaciones de garantía de calidad solo en el código, incluido el control de calidad de los comentarios.
En mi propia organización, los desarrolladores no tienen permitido realizar el control de calidad final de su propio código y registrarlo, esto debe hacerlo otro desarrollador. Parte de la verificación de control de calidad son comentarios, por lo que no hay comentarios ni registros. Realizamos una gran cantidad de trabajo por contrato donde nuestro "arte" es en realidad la propiedad intelectual contractual de otra persona, por lo que otros deben ser capaces de comprender y aprovechar nuestro código. Además, hay ocasiones en que los proyectos regresan a nosotros después de un largo paréntesis y necesitamos poder recoger el código entre 18 y 24 meses después y entender el por qué, dónde y cómo llegamos al artefacto del código que tenemos frente a nosotros. Esto proporciona una motivación egoísta para escribir comentarios de compromiso.
fuente
Solicite y haga que sus colegas desarrolladores realicen algunas fusiones y busquen el historial y comparen algunos archivos del historial.
Lo más probable es que le pidan que haga comentarios al día siguiente.
fuente
Aquí hay algunos consejos:
fuente
Si el control de su fuente lo proporciona, active los comentarios obligatorios para evitar cualquier comunicación no comentada. Suficientemente simple y todos pronto se darán cuenta de que 5 segundos de escribir un comentario es indoloro.
Pero los commits no comentados son uno de los aspectos negativos más pequeños que existen. He sido parte de muchos proyectos exitosos en los que no se ha comentado ni una sola confirmación. No te pongas las bragas por encima.
fuente