Flujo de trabajo, edición de cosas que no están en su tarea actual

12

Por lo general, cuando programo, tengo una tarea clara por delante, pero encuentro cosas molestas que me gustaría limpiar a medida que avanzo.

Aquí veo tres opciones:

  • Hágalo más tarde (puede haber olvidado / tener que pasar tiempo agregando un boleto)
  • Hazlo ahora y compromételo junto con mi trabajo actual (poco claro)
  • Hágalo ahora y confírmelo por separado (tiene que encontrarlo, podría cometer un error e ir a la opción # 2 sin querer)

Esto es probablemente bastante básico, pero ¿cuáles son algunas formas de evitar esto usando svn / git / other?

Nattfrosten
fuente
Normalmente voy con la segunda opción. Pero si he refactorizado mucho, hago dos commits separados. 1 para mi tarea específica y otra simplemente etiquetada como "Refactorización" que yo en rebaselugar de merge.
Alternatex

Respuestas:

7

Personalmente, creo que depende :-).

  • Para pequeñas correcciones , la opción tres (ahora, en una confirmación separada) es la mejor, porque la sobrecarga de hacerlo más tarde no vale la pena. En ese caso, simplemente crea una confirmación por separado. Cómo hacerlo depende del VCS que use, y es una pregunta separada :-).

  • Si es una solución más grande , crea un ticket. De lo contrario, corre el riesgo de que se descarrile constantemente de su tarea principal ("Oh, mira, otra oportunidad para refactorizar, oh, hay otra, y allí, y allí ...").

sleske
fuente
Para su primera viñeta, pequeñas correcciones, confirmar la edición de inmediato parece ser la mejor opción. No tengo idea de por qué no había pensado en eso, supongo que son malos hábitos. Tiendo a meterme un poco en la parte de codificación de la programación, a diferencia de la parte de gestión de código :)
Nattfrosten
@Nattfrosten: Sí, eso es natural y no está mal; después de todo, el enfoque generalmente debería centrarse en la codificación. La gestión del código es solo para facilitar la codificación.
sleske
5

Considera esto. Cuando "encuentra cosas molestas (...) que limpiar" y toma una decisión ejecutiva para hacerlo, está excluyendo al resto de su equipo de una discusión y decisión de prioridades. Estás dejando que tu agenda triunfe sobre todos los demás debido a tu relación privilegiada con el código. No creo que sea lindo. Por experiencia, también genera resentimientos entre el equipo y los accionistas.

En su lugar, cree un problema / tarea para la limpieza / refactorización. Si bien está fresco en su mente, enumere las razones por las que es importante: estimaciones de mayor estabilidad, facilidad de mantenimiento, ese tipo de cosas. Tal vez incluya una estimación del esfuerzo dependiendo de cómo trabaje su equipo. Luego, en su próxima reunión de selección / asignación / prioridades de tareas, presente su tarea de refactorización y colóquela frente a otras tareas. Como equipo, decida cuándo debe completarse.

Por favor, no creas que te estoy diciendo que deseches el sentido común en nombre de los principios. Usa tu cabeza. Si hay algo feo en la función que está editando, no es una nueva tarea de refactorización. Arregle y verifique todo. Si renombrar la propiedad con la que está trabajando a algo más sensible afecta un par de archivos fuente adicionales, no es una nueva tarea de refactorización. Arregla y revisa todo. Si, por otro lado, no te gusta la forma en que otro desarrollador (Mitch, odio a ese tipo) hizo algo en una función que no estás editando y dicha función parece estar funcionando bien, déjalo solo por ahora. Cree una tarea de refactorización y presente su caso a su equipo.

Si su equipo siempre rechaza la refactorización a favor de las nuevas funciones, comience a buscar otro trabajo. Es más fácil encontrar trabajo cuando ya lo tienes.

Roger escaso
fuente
1
Muchas gracias por esta respuesta, hasta ahora he estado involucrado principalmente en proyectos en solitario, así que de ahí vino mi perspectiva. Tendré que cambiar muchos hábitos para encajar mejor en un equipo más adelante, y este tipo de cosas es justo lo que necesitaba.
Nattfrosten
La misma conclusión, pero a menudo son los jefes los que deciden optar por nuevas funciones y no por refactorizar: - |
Mark Hurd el