Proceso de implementación para el sitio mantenido por 2 compañías

Trabajo para una agencia que ha sido responsable de mantener el website .net 3.5 de un cliente durante varios años junto con otra agencia. El trabajo se lleva a cabo por el cliente a ambas agencias en una base bastante ad-hoc.

El sitio es bastante viejo y tiene una estructura y un process de implementación para que coincida. El sitio está configurado para que los desarrolladores tengan copys locales de los sitios. Hay un entorno intermedio, donde se produce la retroalimentación y aprobación del cliente, seguido del entorno en vivo. Hay una serie de escenarios en los que el trabajo de una agencia estará en el entorno de ensayo esperando su aprobación, y los cambios de la otra agencia deben pasar por etapas, aprobarse e implementarse en vivo sin que se vean afectados los cambios originales. La mayoría de las veces nos salimos con la suya, pero está lejos de ser ideal ya que no todos los conflictos se pueden resolver.

Hasta hace poco todavía habíamos estado en Sourcesafe, pero nos hemos trasladado a Subversion y nos encontramos con muchos más escenarios donde se sobrescribe el trabajo. Obviamente, esto no es un error de subversión, sino que el locking de proyectos y files en Sourcesafe sirvió como un buen indicador para los desarrolladores de ambas agencias de que alguien estaba trabajando en ese proyecto o file. Anteriormente, el process consistía en comprobar un file de sourcesafe y mantenerlo revisado hasta que los cambios se activaran (reconozca que se trata de un process de eliminación de datos y, por lo tanto, del deseo de alejarse de sourcesafe y de dicho model)

El problema es que, aunque sabemos que la forma en que lo hacemos ahora es mala, estoy un poco perdido en cuanto a cómo reestructurar el sitio general y el process de implementación para hacerlo "mejor". Algunas ideas que consideramos son:

  • Separa las twigs de desarrollo, testing y en vivo en subversión, por lo que debemos comprometernos y crear la twig adecuada antes de implementarla (no estamos seguros de cómo hacer ese trabajo)
  • Repositorio único para ambas agencias, pero un entorno de ensayo separado para cada una. El entorno de ensayo podría reflejar los cambios asignados a cada agencia
  • Una instancia separada del sitio de ensayo para cada twig

¡Cualquier sugerencia de próximos pasos o ejemplos de situaciones y soluciones similares de la comunidad SO sería muy apreciada!

Gracias

Joel

Yo recomendaría:

  • Use git, es realmente muy bueno para resolver cómo fusionar los cambios.
  • Disponer de entornos de preparación separados para cada empresa, luego, una vez que se aprueben los cambios, fusionar (carfully) en un entorno de estadificación final que solo existe para ayudar a resolver nuestros problemas de fusión allí, y luego presionar para vivir.
  • También asegúrese de que ambas agencias sepan quién está trabajando en qué y trate de esperar a que la otra agencia termine de trabajar en la parte X de la aplicación hasta que la otra termine, al final esta es la mejor solución, un poco de comunicación.