¿Estrategia de ramificación para trabajar con equipo subcontratado?

Estoy planeando administrar un equipo de desarrollo subcontratado que trabaje en mi base de código al hacer que ese equipo trabaje en las ramas de funciones para todo el trabajo que se les ha asignado. Serían responsables de fusionar los cambios del tronco semanalmente. Mi propio equipo también continuaría usando la ramificación de funciones según sea necesario.

¿Alguien tiene algún consejo basado en la experiencia en la integración de trabajo subcontratado utilizando una estrategia de ramificación en particular?

preguntado el 16 de mayo de 11 a las 17:05

1 Respuestas

Según mi experiencia, cuando se trabaja con equipos de desarrollo subcontratados, es mejor evitar los procesos de desarrollo que implican demasiados pasos manuales. Si hay confusión sobre cómo resolver un problema de fusión, entonces tendrán que comunicárselo a usted oa un miembro de su equipo interno y eso ralentizará a todos.

La mayoría de los equipos subcontratados con los que he tratado estaban en la India, por lo que tiene la diferencia de zona horaria como un desafío, su día de trabajo generalmente termina cuando comienza el suyo, a menos que tenga un equipo costoso que trabaje en horario EST, central, pacífico montañoso. Los problemas de comunicación son simplemente asesinos y la mayoría de las veces venía al día siguiente para encontrar que no lograron nada porque no podían resolver algo sin mi ayuda directa.

La fusión generalmente está mal vista, pero personalmente solo la he visto funcionar en equipos muy unidos con desarrolladores de nivel intermedio a senior.

contestado el 16 de mayo de 11 a las 22:05

Entonces, ¿cuál es su estrategia para evitar fusionarse? ¿Seguramente sería peor tener a todos trabajando en la misma rama? - Don Zacharias

No, eso no estaría mal. Solo bifurco el código por lanzamiento, o cuando se realiza un cambio masivo en la aplicación que llevará mucho tiempo completar, solo lo fusiono después de estar seguro de que no afectará otros esfuerzos de desarrollo, pero esta es una excepción caso. Todos deberían trabajar juntos en la misma rama, pero usted mitiga la volatilidad siguiendo los estándares de integración continua. martinfowler.com/articles/continuousIntegration.html - arce_shaft

Nos estamos moviendo hacia Agile, por lo que técnicamente deberíamos poder ramificarnos por lanzamiento, ya que estaríamos buscando lanzamientos predecibles. Pero puedo ver que las fechas se escapan ya que estarán a muchas zonas horarias de distancia. El proyecto es una versión personalizada de una aplicación web ASP clásica proporcionada por el proveedor, por lo que la CI real será difícil. O al menos eso parece cuando trato de entenderlo. :) - Don Zacharias

(cont) Puede utilizar la integración continua configurando un entorno de desarrollo común que tenga el último código implementado cada mañana para que el equipo pueda probar la integración de sus funciones. Si la construcción falla, debe ser reparada por la persona que rompió la construcción. Si el código de un desarrollador funciona en su estación de trabajo de desarrollo pero no en el entorno de integración, entonces ha reducido un error de integración y puede comenzar a solucionarlo. Hay muchos beneficios para CI y, si bien suena pesado, no puedo imaginar un proyecto subcontratado sin seguir estos estándares. - arce_shaft

Ahhh, me encantan esas famosas palabras, "Nos estamos moviendo hacia Agile" :) Cada vez que escucho esto, siempre es una organización que no entiende los beneficios de Agile, o una en la que la gerencia tiene una aversión directa a ella contraria a las opiniones de la desarrolladores. Aprecio tu situación porque he estado en ella antes. Permítanme ponerlo de esta manera, olvidar las fechas, olvidar las zonas horarias, nunca he visto un proyecto conjunto externo subcontratado tener éxito sin un compromiso total con Agile y CI. Los proyectos en los que la organización se resistió a esto en los que trabajé finalmente me obligaron a rehacer el trabajo en equipo offshore. - arce_shaft

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.