C'est une question sur la façon de travailler en équipe.
Récemment, j'ai travaillé sur mon premier projet de programmation plus important (~ 80 classes, Java) avec une équipe de 6 personnes, bien que seulement 4 d'entre nous travaillions continuellement sur le code. Nous avons distribué le travail à faire très tôt et, à un moment donné, j'ai dû appeler une méthode qui n'avait pas encore été mise en œuvre par l'un de mes co-programmeurs. Comment est la façon recommandée de traiter avec cela?
Les options que j'ai vues, bien que je n'aime pas vraiment l'une d'entre elles:
Ecrire moi-même
//TODO
et revoir cette ligne de code ultérieurement pour vérifier si la méthode a été implémentée entre-temps.Demander au membre de l'équipe correspondant de le mettre en œuvre maintenant .
Lancer une exception personnalisée runtimeException avec une description claire de ce qui n'a pas encore été implémenté. (Au moins, nous n'avons pas à chercher longtemps pour savoir ce qui manque.)
En ajoutant la méthode nécessaire à leur classe et en leur écrivant un
//TODO
dans le corps du message, vous pouvez également leur envoyer un message rapide à propos de cette modification. (Maintenant ce n'est plus mon problème, mais cela peut causer des conflits de fusion gênants s'ils travaillaient sur cette méthode entre-temps)Définir des classes abstraites ou des interfaces pour tout avant d'écrire le code qui fait le travail. (Cela ne fonctionnait pas très bien car ces interfaces étaient souvent changées)
Réponses:
C'est une question intéressante et la réponse pourrait être plus facile que vous ne le pensez.
En termes simples, écrivez des tests qui valident vos hypothèses. Peu importe que vous réalisiez l’implémentation ou que vos collègues programmeurs
La longue réponse.
Chacune des options que vous avez répertoriées est quelque peu passive et vous oblige à revenir au code le cas échéant (le cas échéant) tôt ou tard.
Pour atteindre un niveau de test suffisant, je vous suggère d’examiner deux disciplines.
TDD - développement piloté par les tests - cela vous permettra de décrire votre intention et de la tester suffisamment. Il vous donne également la possibilité de simuler ou de simuler des méthodes et des classes (également en utilisant des interfaces) qui ne sont pas encore implémentées. Le code et les tests seront toujours compilés et vous permettront de tester votre propre code indépendamment du code de vos collègues programmeurs. (voir: https://en.wikipedia.org/wiki/Test-driven_development )
ATDD - développement basé sur des tests d'acceptation - ceci créera une boucle externe (autour de la boucle TDD) qui vous aidera à tester la fonctionnalité dans son ensemble. Ces tests ne vireront au vert que lorsque l'ensemble de la fonctionnalité sera mise en œuvre, vous donnant ainsi un indicateur automatique lorsque vos collègues auront terminé leur travail. Très chouette si vous me demandez.
Mise en garde: Dans votre cas, je n’écrirais que des tests d’acceptation simples et je n’essaierais pas d’intégrer trop le côté commercial, car ce serait trop pour commencer. Rédigez des tests d'intégration simples qui rassemblent toutes les parties du système requises par la fonctionnalité. C'est tout ce qui est requis
Cela vous permettra de placer votre code dans un pipeline d'intégration continue et de produire une implémentation extrêmement fiable.
Si vous souhaitez approfondir ce sujet, consultez les liens suivants:
la source
Demandez des talons.
Ou écrivez-les vous-même. Dans les deux cas, vous et vos collègues devez vous mettre d'accord sur les interfaces et sur la manière dont elles sont destinées à être utilisées. Cet accord doit être relativement solidifié pour que vous puissiez développer contre les talons - pour ne pas dire, afin que vous puissiez créer vos propres simulacres pour vos tests unitaires ...
la source
Dans votre cas, je parlerais au membre de l'équipe responsable de cette fonction. Il se peut qu’ils soient en mesure de donner la priorité au développement de cette fonction afin que vous puissiez commencer à l’utiliser plus tôt.
Je voudrais éviter votre quatrième option. Vous avez écrit tout votre code et, comme vous le dites, vous ne considérez plus que c'est votre problème. Votre collègue écrit ensuite l'implémentation de la fonction et ne considère plus que c'est leur problème. Qui va réellement vérifier que le code que VOUS avez écrit fonctionne correctement?
la source