Scrum est-il possible sans développement piloté par les tests?
J'ai maintenant vu deux entreprises à passer à développement agile avec Scrum.
Dans les deux cas, la norme de codage a été assez bon quand chaque partie de l'application est seulement en train de travailler sur un ou deux développeurs avec les développeurs de dépenses d'un montant raisonnable de temps de travail sur une partie de l'application avant de passer à la tâche suivante. Les taux de défaut ont été aussi raisonnable.
Cependant, avec de la Mêlée, les développeurs sont attendus:
- à tous d'être en mesure de travailler sur tous les bits de l'application.
- de ne travailler que sur une seule zone de l'application pour quelques jours tout au plus avant de passer à la zone suivante
- pour la plupart, travaillent sur le code n'a pas l'écrire
Code qualités, est devenue une question à la fois de la Mêlée projets.
Donc, il y a un moyen de faire du Scrum qui ne conduit pas à ces problèmes, sans d'abord obtenir tous les développeurs pour faire le test driven development?
Avez-vous vu Mêlée de bien travailler sur un projet d'envergure, sans développement piloté par les tests? (Si oui, comment?)
source d'informationauteur Ian Ringrose
Vous devez vous connecter pour publier un commentaire.
Regarless de l'utilisation de Scrum, ce que vous avez été voir un changement à partir d'un code de la propriété à une approche communautaire approche de code. Pour que cela fonctionne, il faut un processus de changement qui la soutient. Une telle possibilité est TDD. Il en existe d'autres (des tests unitaires Automatisés, même si n'a pas de lecteur de design couplés avec des Revues de Code, design de communication, plus de la conception jusqu'à l'avant, de ne pas élaborer sur le code sans premier couplage avec l'auteur sur le code, et en plus je suis sûr que vous pourriez le penser).
Communal approches de travail dans les petites collectivités (en gros il peut dégénérer en tragédie des communs) avec un sens élevé de la cohésion entre les membres.
J'aimerais étendre sur ce que Dan a dit.
C'est une idée fausse très répandue que Scrum /Agile dicte les principes du génie logiciel. C'est une erreur pour plusieurs raisons. Comme mentionné Dan, Scrum est un logiciel gestion processus, non PAS un processus du génie logiciel. Cela étant dit, très souvent, vous allez voir beaucoup de principes d'ingénierie associés avec Scrum; des méthodes telles que l'ATS, XP, etc, ont tendance à compléter la méthodologie de gestion qui favorise la Mêlée, mais ne sont pas nécessaires.
La raison que CI, TDD, et d'autres pratiques d'ingénierie sont souvent trouvés à la main dans la main avec Scrum est que, en général, nombreux sont les bonnes pratiques à suivre n'importe quelle méthode de gestion est utilisé.
Je voudrais aborder quelques autres erreurs dans votre OP:
Comme mentionné ci-dessus, Scrum n'est pas dicter ce type ou le genre de travail d'un développeur travaille sur. Les développeurs eux-mêmes décider de ce travail de commettre eux-mêmes; si une base de données-lourds dev veut seulement travailler sur le DAL et associés histoires, il n'y a pas de raison qu'ils ne le peuvent pas.
Encore une fois, la Mêlée n'est pas de dicter quoi que ce soit sur la façon de construire l'application, de sorte que votre deuxième point est discutable (voir point 1).
C'est une erreur, car il n'y a rien qui dit qu'un développeur ne doit travailler sur du code qui n'est pas le leur, ou quoi que ce soit à propos de la façon dont un développeur devrait se développer. Si un développeur sur une Mêlée de l'équipe trouve son/elle seul à travailler sur le code d'autres, ce serait une coïncidence, non pas en raison de la mêlée du processus lui-même.
Voir cette question/réponse pour plus d'informations sur les qualités que l'on attend généralement à un développeur de travail Scrum.
Oui, Scrum décrit le logiciel de gestion de l'approche. Le programme de gestion de projet et de paradigme ne doit pas dicter si vous n'utilisez développement piloté par les tests.
TDD est un logiciel de développement de la pratique ou de la technique et bien que cela fonctionne bien avec Scrum, je ne pense pas qu'il va faire ou défaire votre succès avec la pratique.
Personnellement, j'ai vu Mêlée de bien travailler sur des projets d'envergure moyenne, sans un test d'une approche basée sur le développement. Cela ne veut pas dire que nous n'avons pas écrire des tests automatisés, ils n'étaient tout simplement pas toujours le premier.
Nous faire du Scrum au travail, mais nous n'avons pas pratique du TDD. Rien dans la Mêlée des "lignes directrices" qui vous dit que vous devez utiliser TDD. En fait, la plupart des pratiques agiles sont simplement une recommandation dans la mesure où ils ont fait leurs preuves pour bien fonctionner dans des environnements agile (ou même non-agile) sans être un must si vous souhaitez mettre en place Scrum.
Nous faire écrire des tas et des tas de tests unitaires et d'intégration pour éviter de longs tests manuels et veiller à ce que, plus tard, des changements dans le code ne conduit pas à effets secondaires imprévisibles. Mais ce n'est pas de TDD. C'est surtout une approche raisonnable pour s'assurer du bon code et de la qualité des logiciels.
Veuillez noter que la mise en œuvre de TDD n'était pas un "actif" de la décision, c'est juste arrivé. Nous sommes encouragés à "écrire des tests d'abord", par exemple, lors de la fixation d'un bug, si c'est le genre de volontaire situation-non-obligatoire façon d'obtenir une sensation pour le TDD en l'appliquant sur une base régulière, mais il n'est pas obligatoire.
Comme d'autres ont dit: Scrum est un cadre qui peut tenir quelles que soient les pratiques que vous souhaitez appliquer à votre équipe de développement. Certaines pratiques agiles viennent naturellement, parce qu'ils sont généralement faire sens, mais ceux que vous souhaitez utiliser, et ceux dont vous ne voulez pas vous.
Oui, Scrum est tout à fait possible et dans la plupart des cas, mis en œuvre sans l'utilisation d'une approche TDD.
Cependant, la marge de manoeuvre TDD offre est certainement quelque chose que la méthodologie Scrum peuvent bénéficier.
Le principal projet sur lequel je travail utilise sur une Mêlée approche, mais intégré à la nature de notre projet, développement piloté par les tests (de la même façon que la plupart des gens le font) pas pratique.
Je pense que le problème que vous avez rencontré, c'est que les attentes de la part des programmeurs a changé, pas que le processus de gestion est allé à une Mêlée système de style. Si les programmeurs sont constamment battues autour de parties de code qu'ils ne sont pas familier avec, d'enquêter sur le processus de la façon dont les tâches sont déléguées par rapport à l'ancienne méthode. Sont les tâches assignées par le développeur qui sait ce domaine, le meilleur ou vont-ils le développeur avec la plus courte liste de choses à faire? Est-il un long carnet de commandes de la liste de choses à faire pour une partie du code et de la rareté de l'objet à faire pour une autre partie? Si vous souhaitez conserver aux développeurs de se concentrer sur les zones où elles excel, puis la gestion de projet souhaitez régler le sprint des longueurs et des priorités des tâches pour s'assurer que la charge de travail peut être distribué en tant désiré et toujours être possible, compte tenu des contraintes de temps du sprint.
La Mêlée cadre est assez petit, il définit à quelques réunions, idéal longueurs d'itération, les responsabilités de product owner, scrum master... et peut-être un peu plus.
Cependant, une fois que nous avons commencé notre itération il n'y a rien dans la Mêlée qui dicte comment et quand un développeur(s) doit développer quelque chose. Il y a seulement de l'engagement, il sera "terminé" à la fin du sprint.
Scrum est sur l'équipe s'engageant à produire des résultats, et l'équipe est habilitée à décider de la façon de le faire. Si cela signifie que 1 dev par l'utilisateur de l'histoire, la grande. Si cela signifie que 3 devs par l'utilisateur de l'histoire des thats fine aussi. Quelle que soit la façon la mêlée de l'équipe croient être la meilleure façon de faire le travail est ce qui doit arriver.
Pour répondre à la question, oui Scrum est possible sans développement piloté par les tests.
TDD est utile/pratique recommandée, mais les résultats varient en fonction de l'équipe/le contexte. Par exemple, a été TDD en place au début d'un projet, ou vous essayez d'injecter de la méthodologie à une date ultérieure.
Il y a une certaine confusion à propos de la Mêlée ici.
Mêlée en soi ne vous dit pas comment et quand le faire technique des choses comme le TDD (qui est toujours en déplacement de la cible). Scrum vous indique comment/quand à gérer la personnes des choses qui arrivent sur un projet. C'est un gestion globale du projet technique, pas un de gestion de la construction technique.
Si votre manager souhaite faire les trois choses énumérées ci-dessus lors de vos sprints, c'est très bien, mais qui ne fait pas partie du cadre de Scrum. Ceux-ci sont pour la gestion de la construction, ce qui n'est pas Mêlée. Il peut être utilisé dans votre Scrum-cadre délimité projet, mais il n'est pas dans l'officiel de la Mêlée cadre.
Je pense que c'est facile de se tromper à ce sujet, cependant. Des techniques agiles comme Scrum sont généralement évangélisés par les gens sur le net qui sont tous de repousser les mots à la mode et "happy brillant" les choses, et en tant que tel ne comprends pas toujours tout/bien communiquer. Au moins, c'est comment des techniques Agiles ont été introduites pour moi, par un Agile apologiste. Il m'a bien fallu 6 mois avant je suis passé du hype /confusion terminologique et compris de quoi ils parlaient.
Alors qu'il y a des parties je suis d'accord ci-dessus, je crois vraiment que vous ne pouvez pas offrir de petits incréments de Code (Scrum pour les logiciels) sans période d'Essai.
Comment savez-vous votre sprint ne rompt pas le dernier 4? Comment pouvez-vous garantir des livrables si vous ne savez pas que vous n'avez pas de casser quelque chose dans le passé.
Alors que je suis d'accord SCRUM est un processus de gestion et que le DRT est un logiciel de processus. Vous devez disposer d'un moyen d'être en mesure de vérifier que vous n'avez pas de revenir en arrière.
SCRUM vous enseigne que le quotidien de livrables et de toujours aller de l'avant au détriment de la vitesse.
Quand quelqu'un dit je veux faire CI ou Agile ou Scrum, pour moi, cela signifie automatiquement il doit y avoir unité de test (pas de tests d'intégration comme mentionné ci-dessus), mais plutôt de chaque partie mobile dispose de sa propre unité testée.
Si vous faites un test d'intégration vous n'êtes pas tester chaque partie dans un autonome. Par conséquent, tous vous le prouver, c'est que la méthode appelée dans un flux de travaux, plutôt que chaque branche que vous voulez voir dans le MSIL