2011-04-14 2 views
2

Cette question mélange un peu de gestion de projet et de développement. Je comprends le [majeur]. [Mineur]. [Patch] intriguer pour la numérotation des versions d'un projet. Avec les projets de mes clients, j'utilise ces numérotations principalement à des fins internes, donc au lieu de faire référence à un projet par les fonctionnalités impliquées, l'équipe peut dire "quelle est la progression de la version 1.3.2?".Numérotation de version simultanée

Cependant, parfois, nos clients ont plusieurs versions mineures à la fois. Chaque version mineure contient un ensemble de fonctionnalités indépendantes (fonctionnant avec différents départements de la société cliente), mais les deux peuvent être lancées à des moments différents. Donc, si nous les étiquetons comme v1.3.3 et v1.3.4, la version v1.3.4 pourrait sortir plus tôt que v1.3.3 et alors le schéma de nommage entier est invalide.

Comment vous référez-vous en interne à ces différentes versions si vous ne savez pas ce qui sera publié en premier (en raison de l'attente de l'approbation du client ou d'autres conflits de programmation externes)?

Merci!

Répondre

1

Assez simple - nous n'attribuez pas de numéros de version tant que nous n'avons pas libéré. Problème résolu!

Cela peut sembler désinvolte, mais c'est la vérité. Bien sûr, nous aurions des projets internes doublés par exemple. "v5.5", mais ceux-ci étaient distincts et indépendants du travail en cours à l'itération suivante de la version 5.4.x, qui recevrait la prochaine valeur de 'x' seulement à la fin et la libération. Lorsque la version 5.5 est prête, le travail sur 5.4 cesse, nous fusionnons toutes les modifications apportées à 5.4 en 5.5, puis nous lançons 5.5.0.

Si vous avez des versions distinctes pour différents clients (départements dans votre cas), vous pouvez utiliser un schéma de version modifié. Nous avons utilisé [majeur]. [Mineur]. [Client]. [Correctif], par ex. 5.4.client1.4. Le [patch] serait indépendant et significatif uniquement pour ce client particulier, alors que [major]. [Minor] correspondrait à la version [majeure]. [Minor] de la base de code principale dont nous avons parlé. Par exemple, nous pourrions avoir un travail simultané sur 5.5, 5.4.x et 5.4.client1.x. Lorsque 5.5 est prêt, 5.4.x fusionne dans celui-ci, puis les deux projets se replient dans 5.5.x, mais le projet client n'est peut-être pas prêt à fusionner tous ces changements et il restera donc 5.4.client1.x jusqu'à ce qu'il soit mis en place -à-jour avec 5.5, devenant 5.5.client1.x.

Cela peut sembler déroutant, mais cela a très bien fonctionné pour nous. Nous avons précédemment utilisé une variante de ce schéma, où le nom du client était ajouté au numéro de version complet, c'est-à-dire [majeur]. [Mineur]. [Correctif] _ [client]; encore une fois, [majeur]. [mineur] correspond au "noyau" [majeur]. [mineur] d'où il a été fourchu/fusionné en dernier, et le [patch] est complètement indépendant des autres versions et seulement significatif à cette client (c'est pourquoi nous avons échangé plus tard les positions relatives de [client] et [patch], pour préciser que par exemple 5.4.7 pourrait effectivement avoir plus de corrections/être plus "courant" que 5.4.12.client1, et mieux Lorsqu'un projet spécifique à un client est réintégré, bien sûr, vous le déposez et l'incrémentez vers le prochain [patch], ou vous le faites passer à la prochaine version [mineure] ou même [majeure] , en fonction de la nature du travail, ce qui entraîne parfois une confusion temporaire lorsqu'un projet client fusionne avec le projet 5.4.x, puis nous libérons cette version 6.0, puis nous rappelons de renommer le projet 5.5 interne en version 6.1, mais travaillé nonethel ess.

En tant qu'alternative pour votre environnement, reportez-vous en interne à vos projets en cours simplement par nom de client (département), par ex. le projet Comptabilité, le projet RH, etc. N'utilisez pas les numéros de version en interne pour ce genre de chose, car comme vous le voyez, cela crée une confusion comme la version 5.4.6 qui sort après 5.4.7 mais avant 5.4.9; Quant à 5.4.8, il n'est jamais libéré parce qu'il a été annulé. C'est juste un gâchis, alors restez loin de ça.Appelez simplement vos projets par nom de client, et attribuez le numéro suivant

+0

Wow, que vous pour la réponse en profondeur! C'était très utile. Après quelques discussions, nous allons utiliser une version légèrement modifiée de ces recommandations qui fonctionnent avec notre flux de travail interne, en utilisant le numéro de projet au lieu du nom du client (notre numéro de projet nous permet de retracer notre système). Convention différente mais même concept. J'espère que d'autres sont capables d'apprendre de cela aussi .. il n'y a pas beaucoup sur ce sujet de ce que je pourrais trouver en ligne. – jkriddle