TFS et Scrum - configuration des meilleures pratiques pour les zones, les itérations, l'itération des arriérés, l'itération sprint

cette série de questions tente d'obtenir une réponse de meilleure pratique sur la façon de configurer les zones TFS 2012 et les itérations avec Scrum 2.

Contexte: Nous utilisons le système Team depuis TFS 2005 et avons d'abord créé un projet D'équipe pour chaque produit que nous avons, puis utilisé le modèle de processus MSF 4.2 que nous avons finalement légèrement modifié (seulement quelques champs ajoutés à certains types d'items de travail).

rouleau en avant pour aujourd'hui et nous exécutons maintenant TFS 2012 et VS 2012. En tenant compte des expériences passées et des commentaires de la communauté, nous passerons à un projet D'équipe unique et à Scrum 2.1, puis nous utiliserons des zones pour séparer les produits et les équipes. Les liens suivants donnent une bonne lecture de cette approche:

  • http://blog.hinshelwood.com/when-should-i-use-areas-in-tfs-instead-of-team-projects-in-team-foundation-server-2010/
  • TSF Domaines, l'optimisation de la Définition et de la Configuration
  • Team Foundation Server-Area / Itération

un tracé typique que nous prévoyons appliquer pour les zones serait le suivant:

-> Team Project (Area root)
 |--> Client A (This is also out team boundary - ie. we have a TFS Team for Client A)
    |---> Product A
    |   |---> Feature Area 1
    |   |---> Feature Area 2
    |   |---> Feature Area 3
    |
    |---> Product B
    |   |---> Feature Area 1
    |   |---> Feature Area 2
    |
    | (ETC)

 |--> Client B (This is also out team boundary - ie. we have another TFS Team for Client B)
    |---> Product C
    |   |---> Feature Area 1
    |   |---> Feature Area 2
    |
    | (ETC)

conceptuellement, nous sommes assez satisfaits de ce qui précède car il est logique pour notre environnement. Selon ce qui précède, nous aurait équipes comme suit: * "Équipe Client A" * "Client Équipe B "

Question 1) nous avons pensé que parce que nos équipes ne sont pas si grandes et pour rendre l'administration plus gérable, nous ne voulions pas définir des équipes par produit puisque nous avons physiquement des équipes par client et ils supervisent tous les produits pour ce client. Est-ce une erreur, ou est-ce OK?

Question 2) en supposant que la configuration de l'équipe ci-dessus est OK, est-ce que nous corrigeons alors à "mapper" chacun des les zones ci-dessus pour chaque équipe, c.-à-d. pour l'équipe "Client une équipe", précisez la zone "Client A" (et toutes les sous-zones) comme étant les zones qui appartiendront à cette équipe. Que penser de la zone par défaut, est-il ok pour définir la racine du "Client" de la zone par défaut pour l'équipe?

quant à la disposition des itérations, nous prévoyons quelque chose de similaire, comme ceci:

-> Team Project (iteration root)
 |--> Client A (This is also out team boundary - ie. we have a TFS Team for Client A)
    |---> Product A
    |   |---> Release 1
    |   |   |---> Sprint 1
    |   |   |---> Sprint 2
    |   |   |---> Sprint 3
    |   |
    |   |---> Release 2
    |   |   |---> Sprint 1
    |   |   |---> Sprint 2
    |   |   |---> Sprint 3
    |   |
    |   |---> Release 3
    |
    |---> Product B
    |   |---> Release 1
    |   |   |---> Sprint 1
    |   |   |---> Sprint 2
    |   | 
    |   |---> Release 2
    |   |   |---> Sprint 1
    |   |   |---> Sprint 2
    |
    | (ETC)

 |--> Client B (This is also out team boundary - ie. we have another TFS Team for Client B)
    |---> Product C
    |   |---> Release 1
    |   |   |---> Sprint 1
    |   |   |---> Sprint 2
    |   |
    |   |---> Release 2
    |   |   |---> Sprint 1
    |   |   |---> Sprint 2
    |
    | (ETC)

Question 3) cela semble plus délicat d'obtenir les bonnes itérations, surtout lorsqu'il s'agit de vient à TFS montrant l'arriéré. Plus précisément, pour la configuration de L'itération TFS Scrum 2, il semble que je devrais sélectionner (cocher la case) seulement les itérations au niveau de la feuille qui sont pour la planification et le développement ultérieur. Donc, en prolongeant l'exemple ci-dessus, nous pourrions avoir que l ' "équipe Client A" sera disponible pour commencer à travailler sur un nouveau produit B pour les 4 prochaines semaines (supposons 2 semaines de sprints). Est-ce que nous choisirions seulement (case à cocher) "Sprint 1" et "Sprint 2" à partir de la version 1? Suis-Je comprendre/utiliser correctement?

Question 4) sélection de L'itération de L'arriéré de L'équipe - cela pourrait être problématique en raison de notre concept qui consiste à avoir des équipes par client et non des équipes par produit, mais peut-être que je le comprends mal. Dans la configuration des zones TFS, vous spécifiez quelle itération est la "itération de L'arriéré pour l'équipe". Mon problème est que notre IBP (Product Backlog Items) sera spécifique au produit et ne veut pas les mélanger avec des PBI d'un autre produit. Si ce que je ne comprends pas encore, c'est ce que sera l'impact si nous choisissons la zone "Client A" comme "itération de L'arriéré pour l'équipe" plutôt que peut-être "produit B". Je pense que je m'embrouille moi - même ici-ce serait un choix raisonnable?

les questions ci-dessus résument mon manque de compréhension de l'impact de ces sélections pour les itérations, les secteurs, les itérations de l'arriéré de l'équipe, et les secteurs par défaut aura pour chaque équipe TFS 2012 défini. Certains problèmes que j'ai avec cette configuration est pour TFS identifier correctement le retard produit et sprint pour une équipe.

Je ne sais pas si le fait d'avoir un projet d'équipe et de multiples domaines pour les produits (comme c'est généralement recommandé) complique la question.

la Question 5) TSF Accès Web site - Pour toute l'équipe sous "TRAVAIL | articles | Requêtes Partagées" il y a des requêtes prédéfinies dans un dossier intitulé "Sprint" (Bloqué Tâches; Sprint Backlog, etc), mais il il semble que ces requêtes soient codées en dur avec "Root ProjectRelease 1Sprint 1" - ne devraient-elles pas automatiquement découvrir quel est le sprint actuel étant donné les dates définies par rapport aux itérations? Dans la négative, Quelle est la meilleure pratique pour maintenir ces requêtes?

Connaissez-vous des formations spécifiques et des tutoriels de qualité TFS 2012 et Scrum 2 qui pourraient aider à répondre à ces questions, ou donner quelques conseils pour une configuration de Scrum 2 TFS réussie?

26
demandé sur Vadim Kotov 2012-11-30 08:12:50

2 réponses

j'espère que vous avez trouvé l'utilisation de mon poste, et je voudrais également vous recommander de prendre un coup d'oeil à un projet D'équipe pour les diriger tous et TFS vNext: configuration de votre projet pour avoir un carnet principal et des sous-équipes .

Voici mon meilleur effort pour répondre à vos questions:

Question 1) nous avons pensé que parce que nos équipes ne sont pas si grandes et de faire de l'administration plus gérable, que nous ne voulions pas définir des équipes par produit car nous avons physiquement des équipes par client et ils supervisent tous les produits pour ce client. Est-ce une erreur, ou est-ce OK?

C'est très bien et vous permettra de grandir avec vos équipes. Si les membres de votre équipe travaillent avec plusieurs Clients, vous pouvez rencontrer des problèmes de priorisation et de changement de contexte que vous pouvez minimiser en poussant votre équipe vers le haut d'un niveau, ou en ayant un seul un arriéré unifié et des sous-équipes distinctes, mais toujours axées sur le travail du client et non sur le travail du produit. Je recommande en effet cette approche pour la mise en page que vous avez.

Question 2) en supposant que la configuration de l'équipe ci-dessus est correcte, est-ce que nous devons "cartographier" chacune des zones ci-dessus pour chaque équipe, c.-à-d. pour l'équipe "Client une équipe" préciser la zone "Client A" (et toutes les sous-zones) comme les zones qui seront la propriété de cette équipe. Quel est le défaut de la zone de, est-il ok pour définir la racine du "Client" de la zone par défaut pour l'équipe?

qui est en effet correcte et devrait avoir pour résultat que tous vos éléments de travail soient créés lorsque cette équipe est sélectionnée avec ces valeurs par défaut. De nombreuses organisations créent également un carnet parent ou maître où les articles divers sont créés, commandés et ensuite divisés en un carnet d'équipe approprié comme Greg Boer, propriétaire de produit pour les outils de planification Agile de TFS blogué sur son post TFS vNext: configuration de votre projet pour avoir un Master backlog et des sous-équipes .

votre mise en page pour itérations est en effet à l'air bon tant que vos équipes ne franchissent pas la frontière entre les clients ou vous allez commencer à entrer dans les zones de cartographie difficile et itérations pour les équipes. Si vous pensez que vous pourriez avoir besoin d'une seule équipe ou d'un seul groupe d'équipes pour plus d'un client, alors vous pourriez avoir besoin de quelque chose de plus semblable:

-> Team Project (Iteration root)
 |—> Team Boundary (This could be one or more teams)
    |--> Client A (This is also out team boundary - ie. we have a TFS Team for Client A)
        |---> Product A
        |   |---> Release 1
        |   |---> Release 2
        |   |---> Release 3
        |
        |---> Product B
        |   |---> Release 1
        |   |---> Release 2
        |
        | (ETC)

    |--> Client B (This is also out team boundary - ie. we have another TFS Team for Client B)
        |---> Product C
        |   |---> Release 1
        |   |---> Release 2
        |
        | (ETC)

même s'il n'est pas encore dynamique, cela permettrait ce scénario. Je conserverais cependant ma structure de contrôle source $\TeamProject\Client a \ ProductA et ne filtrerais pas cela. Il s'agit simplement d'une compartimentalisation du processus de planification et ne doit pas nécessairement déborder sur les autres parties de votre Solution de Gap.

Question 3) ceci semble être plus délicat pour obtenir les bonnes itérations, surtout quand il s'agit de TFS montrant la arriéré. Plus précisément, pour la configuration de L'itération TFS Scrum 2, il semble que je devrais sélectionner (cocher la case) seulement les itérations au niveau de la feuille qui sont pour la planification et le développement ultérieur. Donc, en prolongeant l'exemple ci-dessus, nous pourrions avoir que l ' "équipe Client A" sera disponible pour commencer à travailler sur un nouveau produit B pour les 4 prochaines semaines (supposons 2 semaines de sprints). Choisirions-nous seulement (case à cocher) "Sprint 1" et "Sprint 2" à partir de la version 1? Suis-je comprendre/utiliser correctement?

vous êtes, mais vous êtes vraiment à la recherche de 3 Sprints pour avoir un arriéré pouvant donner lieu à une action dans le cadre du processus de mêlée. Je recommande de numéroter vos sprints de façon séquentielle afin que dans L'interface utilisateur, vous ne soyez pas confus sur Sprint 2 lorsque vous cochez également Sprint 4 si cela s'appelle Sprint 1. Il est également agréable de conserver un contrôle du niveau d'expérience de l'équipe actuelle.

-> Team Project (Iteration root)
 |—> Team Boundary (This could be one or more teams)
    |--> Client A (This is also out team boundary - ie. we have a TFS Team for Client A)
        |---> Product A
        |   |---> Release 1
        |   |   |---> Sprint 1
        |   |   |---> Sprint 2
        |   |   |---> Sprint 3
        |   |---> Release 2
        |   |   |---> Sprint 4
        |   |   |---> Sprint 5
        |   |   |---> Sprint 6
        |   |---> Release 3
        |   |   |---> Sprint 7
        |   |   |---> Sprint 8
        |   |   |---> Sprint 9
        |
        | (ETC)

mais vous avez fondamentalement raison sur le le processus technique impliqué et le résultat qu'il permettra d'atteindre.

Question 4) Sélection des itérations de L'arriéré de L'équipe - cela pourrait être problématique en raison de notre concept d'équipes par client et non d'équipes par produit, mais peut-être que je le comprends mal. Dans TFS Areas setup, vous spécifiez les itérations de l ' "itération de L'arriéré pour l'équipe". Mon problème est que notre PBI (produits en carnet) sera spécifique au produit et ne souhaite pas les mélanger. avec PBIs à partir d'un autre produit. Donc, ce que je ne peux pas encore comprendre, c'est ce que sera l'impact si nous choisissons la zone "Client A" comme "itération de L'arriéré pour l'équipe" plutôt que peut-être "produit B". Je pense que je m'embrouille moi - même ici-ce serait un choix raisonnable?

vous n'êtes pas confus vous-même et la personne entrant quelque chose dans l'arriéré de l'équipe devra changer la valeur par défaut pour être l'itération/la zone du produit qui ils veulent le changement. Au moins par défaut, vous obtenez la bonne équipe et cela devrait être une chose facile pour la personne qui entre l'article, le propriétaire du produit ou un membre de L'équipe de catégories ce correctement.

Tout ce que vous spécifiez comme Zone par défaut de L'équipe est par défaut inclus dans les éléments que vous voyez. Vous pouvez "clic droit" sur votre zone par défaut pour une équipe et désélectionner "Include sub-areas" de sorte que vous ne voyez que le niveau supérieur et c'est le technique qui est utilisée pour le carnet principal de Greg. Je suggère toutefois que vous mainteniez un cadre de "sous-secteurs D'inclusion" pour la visibilité et la transparence au sein de votre équipe.

Je ne sais pas si le fait d'avoir un projet d'équipe et de multiples domaines pour les produits (comme c'est généralement recommandé) complique la question.

il peut. Certaines organisations préfèrent ajouter une liste déroulante pour "Équipe" à leurs éléments de travail (comme le modèle Conchango/EMC) et utiliser que comme leur désignation d'équipe qui peut être configuré dans la configuration des outils de planification Agile comme un défaut. De cette façon, vous n'avez pas besoin d'une désignation D'équipe dans la zone ou L'itération si vous êtes frapper contre cela. Je n'ai aucune recommandation à formuler dans les deux cas sans plus d'informations sur la configuration de votre organisation.

Question 5) accès au site Web de TFS - pour tout équipe sous "travaux | tâches / requêtes partagées" il y a des requêtes prédéfinies sous un dossier appelé "Sprint courant" (tâches bloquées, Sprint arriéré, etc.), mais il semble que ces requêtes soient codées en dur avec "projet racine\Version 1\Sprint 1" - ne devraient-elles pas automatiquement découvrir quel est le sprint actuel compte tenu des dates définies par rapport aux itérations? Dans la négative, Quelle est la meilleure pratique pour maintenir ces requêtes?

Option 1: Chaque Sprint passer les 2 minutes qu'il faut pour changer les requêtes

Option 2: Créer un outil pour faire cela pour vous

Option 3: avoir un noeud d'itération "courant" supplémentaire dans votre version et déplacer l'itération actuellement active en dessous de ce noeud. Définissez ensuite les requêtes de point de "Vertu" que "le Client A\Produit \1\Actuelle". Alors qu'il est plus rapide de changer le imbriquée itération une fois et toutes les requêtes. Il suffit alors de changer la mais une fois par Libération.

Connaissez-vous des formations spécifiques et des tutoriels de qualité TFS 2012 et Scrum 2 qui pourraient aider à répondre à ces questions, ou donner quelques conseils pour une configuration de Scrum 2 TFS réussie?

je recommande la formation professionnelle Scrum développeur de Scrum.org or / and engaging with an ALM Consultant.

25
répondu MrHinsh - Martin Hinshelwood 2012-12-05 19:45:14

en lien avec cette question et tout ce qui concerne la structuration, les projets et les équipes de TFS, @MrHinsh a le billet de blog suivant sur l'utilisation des équipes de TFS sans les allouer à une zone. Il n'est pas sans précaution.

plus sur son blog: http://nakedalm.com/team-foundation-server-2012-teams-without-areas /

1
répondu Jaans 2013-11-01 13:32:22