web-dev-qa-db-fra.com

Dans Scrum, si des tâches telles que la configuration de l'environnement de développement et le développement de capacités sont gérées comme sous-tâches dans des histoires d'utilisateurs réelles?

Parfois, dans les projets, nous devons passer du temps sur des tâches telles que:

  1. explorer des cadres et des outils alternatifs
  2. apprendre le cadre et les outils sélectionnés pour le projet
  3. configuration des serveurs et de l'infrastructure de projet (contrôle de version, environnements de construction, bases de données, etc.)

Si nous utilisons des histoires d'utilisateurs, où tout ce travail devrait-il aller?

Une option est de faire tout cela partie de la première histoire d'utilisateur (par exemple, faites la page d'accueil pour l'application). Une autre option est de faire une pointe pour ces tâches. Une troisième option consiste à effectuer une partie de tâche d'un problème / impédent (E.G. Environnement de développement non sélectionné) plutôt qu'une histoire d'utilisateur.

23
Asim Ghaffar

Nous avons beaucoup pensé à ce problème au cours de la dernière année.

Bien que je conviens qu'un cadre de base devrait exister avant que le projet ne commence, il est possible de faire partie du projet lui-même. Donc, vous devez gérer en quelque sorte.

Tout en mélangeant que la configuration du projet avec des histoires d'utilisateurs peut avoir du sens, nous nous sommes parfois installés sur des tâches simples tâches pouvant être ajoutés au carnet de produits et obtenez la même attention que les histoires d'utilisateurs. Nous savons que ces tâches techniques sont parfois nécessaires, mais elles doivent être justifiées dans tous les cas. Si l'équipe pense qu'ils sont absolument nécessaires pour atteindre un certain objectif, ils feront partie d'un sprint.

Il est difficile de dire ce qui fonctionne le mieux pour vous, alors expérimentez! Une pointe pourrait suffire pour le moment, mais je pense que vous vous retrouverez avec le même problème plus tard, alors planifiez à l'avance. Faire tâches qui sont un espace réservé pour de telles activités. Pour séparer les tâches des histoires deux, je les comparerai rapidement en fonction de mon expérience avec eux.

Tâche : Une tâche est une nécessité technique. Il peut s'agir de choses pour la gestion de la configuration ou la configuration générale du projet, comme la configuration d'un référentiel pour les engagements ou l'ajout de l'outil de révision du code le plus chaud que vous ayez jamais vu au processus de développement. Les tâches doivent être prises en compte dans la planification, identique à une histoire d'utilisation. Si l'équipe peut convaincre le propriétaire du produit que l'outil de révision de code le plus récent et le plus grand et augmente la communication de l'équipe de performance et de l'UPS en éliminant les sessions de programmation de paires longues ou les avis de code en personne, alors cela obtiendra l'attention du propriétaire du produit.

histoires: axé sur la perspective des entreprises uniquement, des histoires produisent toujours une valeur visible au client. La qualité interne est quelque chose qui va de la valeur de la production.

Nous attribuons même des points d'histoire aux tâches et nous travaillons parfois avec eux la même chose que nous ferons avec des histoires.

En fin de compte, j'irais pour cette solution Dans votre cas (qui pourrait être appliqué en général aussi):

  1. Séparez les "configurations" et techniques dans des tâches (substances qui ne produisent pas directement de valeur commerciale pour le propriétaire du produit).
  2. Peut-être faire une pointe avant la configuration du projet pour obtenir les outils les plus importants en place (SCM, Dev Outils, défaut de traitement, Normes de codage, etc.)
  3. Acceptez que ces tâches apparaissent sur la durée du projet et planifiez cela en ayant un "type" distinct d'activités autres que des histoires.
12
malte

Faites tout ce qui est le plus sens dans votre entreprise. Ne laissez jamais la façon dont les autres personnes font des choses être un obstacle au bon sens.

Mais je dirai que toutes ces tâches sonnent comme quelque chose qui devrait arriver longtemps avant de commencer le développement. Je me demande donc si Scrum est même pertinent pour ces tâches. Il y a un entretien continu et tel que le contrôle des sources et les bases de données, mais ceux-ci ne devraient pas être programmés, ils devraient simplement être des choses qui se produisent et affectent votre vitesse.

Il y aura des moments où vous devez sélectionner un cadre ou tout autre lors d'un projet, mais quand je dis que je veux dire un cadre comme NHibernate, pas un cadre comme .NET. Dans ces cas, la recherche devrait être épicée et temporelle, sans oublier assez courte. Essayez de le gérer comme si vous aviez un développeur malade pendant quelques jours.

Le transfert de connaissances est un autre processus en cours qui devrait être géré en dehors de la vitesse de développement général.

4
pdr

Il y a un nom pour faire autant de décisions de conception que possible avant le début de votre projet "officiel". Ça s'appelle la cascade. Il n'y a rien de mal avec des histoires d'utilisateurs, "en tant que développeur, je dois sélectionner un cadre, nous avons donc un point de départ pour le site Web". Si c'est trop gros pour s'adapter à une itération, essayez de le casser comme: "En tant que développeur, je dois mettre en œuvre une page d'accueil de base à Drupal, nous saurons donc si cela correspond à nos besoins."

2
Karl Bielefeldt

Une option est de faire tout cela partie de la première conte d'utilisateurs par exemple. faire la page d'accueil pour l'application.

Casse "histoire d'utilisation" comme concept. Quel utilisateur participe à cela? Rien. C'est le travail que vous auriez déjà dû faire.

Une autre option est de faire une pointe pour cela.

Pas mal.

La troisième option consiste à effectuer une partie de la tâche d'un problème (par exemple, l'environnement de développement n'est pas encore sélectionné) plutôt qu'une histoire d'utilisation.

À peu près la même chose qu'une picture en ce qui concerne la planification et les frais généraux.

La configuration est non une histoire d'utilisateur.

C'est ce que vous devrait avoir en place avant même de commencer ce projet.

Vous ne pouvez pas vraiment démarrer le projet à moins que vous n'ayez la configuration du cadre/des outils et des serveurs et prêts à partir.

Je suis bien conscient que de nombreuses organisations n'existent pas vraiment avant après le contrat est signé. Je suis également bien conscient que de nombreuses organisations ne choisissent pas de technologie avant après le contrat est signé. Ce sont toutes des choses inefficaces qui sont en dehors des histoires d'utilisateurs.

1
S.Lott

Au travail, nous utilisons une tâche pour préparer l'environnement. Cela pourrait être déroutant pour certaines personnes, mais la tâche que nous utilisons est très la même tâche que la tâche d'une histoire d'utilisation. La tâche n'appartient pas à une histoire d'utilisation mais est estimée en heures et doit être convenu par le propriétaire du produit à compléter dans un sprint particulier.

Nous utilisons également la tâche de travail architectural qui n'a pas de valeur commerciale "apparente", mais qui ajoute la qualité au produit, en particulier pour un produit existant avec une base de code importante.

Celles-ci pourraient ne pas s'appliquer dans votre environnement de travail, mais cela a bien fonctionné pour nous.

1
Chris Chou

sur l'exploration du cadre/outil alternatif 2-3

Parfois, cela peut arriver si vous avez une exigence particulière, vous devez faire un POC pour choisir le meilleur outil pour résoudre les exigences. C'est ce que Spike est car sans savoir quel cadre vous utiliserez probablement que vous ne pouvez probablement pas estimer l'histoire et le magasin sans estimation ne peut être planifié et divisé en tâches.

puis sur l'apprentissage du cadre que nous sélectionnons pour le projet

Bien. C'est assez dangereux. Lorsque le client vous paye pour un SB, il s'attend à ce que vous soyez professionnel qui sait déjà utiliser ses outils. Le client ne vous paie pas pour l'apprentissage ou l'approche de développement d'essais/échouant. C'est la responsabilité de développeur d'apprendre de nouveaux outils dans son temps libre ou dans le temps alloué spécial payé par son employé Pas par le client. Dépenser l'argent des clients pour apprendre sans informer le client n'est pas professionnel.

Si vous devez vraiment utiliser quelque chose de spécial (par exemple, certains clients de l'API ou de l'outil de client sélectionné) que vous n'avez jamais utilisé avant de devoir informer le client que le prix sera augmenté de temps nécessaire pour apprendre à utiliser l'API. Peut-être que le client va changer d'avis si l'augmentation de prix sera trop grande.

Bien sûr, je ne veux pas dire la situation où vous devez rechercher un nouveau problème particulier dans le cadre que vous avez utilisé plusieurs fois. Je veux dire la situation dans laquelle vous commencez à utiliser une nouvelle API ou un nouveau cadre sans dépenser de temps significatif (en dehors du projet) pour apprendre.

Si vous violez cela, ce sera visible dans votre vitesse de toute façon parce que vous allez fournir une très petite quantité de valeur commerciale par itération. Si le client n'est pas au courant de la raison, il annulera probablement le projet.

Ceci est toujours valable en cas de projets internes - vous devez informer votre responsable/entreprise de temps nécessaire pour apprendre une nouvelle API ou un nouvel outil. Il a généralement de très mauvaises conséquences si le responsable compte avec votre productivité normale et que votre productivité n'est que la fraction en raison de la nouvelle API que vous essayez d'apprendre pendant vos tâches. C'est évidemment encore pire si certaines personnes de vente sont calculées avec une productivité normale lorsqu'ils ont signé un contrat avec le client.

sur la configuration des serveurs (SVN, bases de données, etc.)

C'est votre infrastructure et vos coûts internes. Lorsque vous démarrez le projet, vous devriez avoir votre infrastructure préparée. La mise en place de votre environnement de développement n'a aucune valeur pour le client et ne doit pas faire partie d'indicateurs connexes du projet - par exemple la vitesse de Scrum. J'ai vu cela mis en œuvre comme une itération spéciale de pré-projet utilisé uniquement pour configurer l'environnement, créer une infrastructure de base, etc.

0
Ladislav Mrnka