Hello,


J'aimerais avoir quelques avis sur l'organisation d'un projet, pour éviter un maximum de problèmes lorsque deux équipes distinctes travaillent sur le même code.

En effet, nous avons actuellement une équipe qui travaille sur le la correction à long terme et des évolutions techniques, et l'autre qui travaille sur de petites évolutions en fonction des besoins métier.
Le gros point noir de notre fonctionnement est la période de VNR (pour éviter toute régression) que la première équipe doit effectuer systématiquement avant toute mise en prod.

La structure actuelle de notre repository :
|--- trunk
|--- correctifProd
|--- branches/mep15062015
|--- branches/mep15062015-equipe1
|--- correctif1
|--- correctif2
|--- evol
|--- branches/mep15062015-equipe2
|--- evol1
|--- evol2
|--- evol3

Les gros problèmes que cette structure engendre :
- Si une équipe livre en retard (sur la branche commune, donc), ça ralentit tout le monde
- Tant que la VNR n'est pas terminée sur la branche commune, les devs ne sont pas redescendus sur le trunk, donc l'équipe 2 ne peux pas démarrer de nouvelle branche depuis le trunk pour continuer de développer des évolutions
- Le merge des branches des deux équipes est très complexe à gérer, surtout que souvent les deux équipes doivent finir à peu près en même temps leurs développements pour la mise en prod à une date donnée

Je pensais proposer les changements suivants, basés sur le fait que le trunk n'est plus une image de la prod (les tags le sont, alors pourquoi se faire chier ?)
- Faire sauter un niveau, à savoir la branche "mep15062015"
- Chaque équipe, une fois ses développements terminés, fusionne avec le trunk
- la VNR s'effectue depuis le trunk
- Chaque équipe peut ainsi démarrer une nouvelle branche depuis le trunk pour continuer des évolutions
- Un tag est créé depuis le trunk quand la VNR est ok
- Toute correction de prod est effectuée depuis le dernier tag, et reprise sur le trunk

Qu'en pensez-vous ?

Autre question : si le développement d'une évolution prévue par exemple pour la mise en prod de fin octobre n'est pas terminé, que cette évolution est reportée dans la mise en prod suivante, comment déplacer "proprement" ce développement qui dépend de la branche qui a été redescendue sur le trunk (via reintegrate) vers la branche dédiée à la future mise en prod ?
|--- trunk
|--- branches/mep15062015-equipe2
|--- evol1
|--- evol2 pas terminée
|--- evol3
vers
|--- branches/mep02082015-equipe2
|--- evol2 reportée


Je ne suis peut-être pas bien clair, donc n'hésitez pas à me demander de reformuler.
Et, merci d'avance pour qui aura l'envie de répondre ^^