Il s'agit d'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'était pas encore implémentée par l'un de mes co-programmeurs. Comment est la manière recommandée de gérer cela?
Options que j'ai vues, bien que je n'aime vraiment aucune d'entre elles:
Je m'écris un //TODO
et en revoyant cette ligne de code plus tard pour vérifier si la méthode a été implémentée entre-temps.
Demander au membre de l'équipe correspondant de l'implémenter maintenant.
Lancer une exception runtimeException personnalisée avec une description claire de ce qui n'est pas encore implémenté. (Au moins, nous n'avons pas à chercher longtemps pour trouver ce qui manque)
Ajouter la méthode nécessaire à la classe leur et leur écrire un //TODO
dans le corps du message, peut-être aussi leur envoyer un message rapide sur ce changement. (Maintenant, ce n'est plus mon problème, mais cela peut provoquer des conflits de fusion ennuyeux s'ils travaillaient sur cette méthode entre-temps)
Définir des classes abstraites ou des interfaces pour tout avant d'écrire réellement le code qui fait le travail. (Ne fonctionnait pas trop bien car ces interfaces étaient souvent modifiées)
C'est une question intéressante et la réponse pourrait être plus facile que vous ne le pensez.
Autrement dit, écrivez des tests qui valident vos hypothèses. Ce n'est pas grave si vous faites la mise en œuvre ou vos collègues programmeurs
La réponse longue.
Toutes les options que vous répertoriez sont quelque peu passives et nécessitent que vous revenez et revisitez le code (le cas échéant) tôt ou tard.
Pour atteindre un niveau suffisant de tests, je vous suggère de jeter un œil à deux disciplines.
TDD - développement piloté par les tests - cela vous assurera 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 piloté par les tests d'acceptation - cela créera une boucle externe (autour de la boucle TDD) qui vous aidera à tester la fonctionnalité dans son ensemble. Ces tests ne deviendront verts que lorsque l'ensemble de la fonctionnalité sera implémentée, vous donnant ainsi un indicateur automatique lorsque vos boursiers auront terminé leur travail. Assez bien si vous me demandez.
Mise en garde: dans votre cas, je n'écrirais que des tests d'acceptation simples et n'essaierais pas de faire entrer trop de choses dans l'entreprise, car ce serait trop pour commencer. Écrivez des tests d'intégration simples qui rassemblent toutes les parties du système dont la fonction a besoin. C'est tout ce qu'il faut
Cela vous permettra de placer votre code dans un pipeline d'intégration continue et de produire une implémentation hautement fiable.
Si vous souhaitez aller plus loin dans ce sujet, consultez les liens suivants:
Demandez des talons.
Ou écrivez-les vous-même. Quoi qu'il en soit, vous et vos collègues devez vous mettre d'accord sur les interfaces et la façon dont elles doivent être utilisées. Cet accord doit être relativement solidifié pour que vous puissiez développer contre des talons - sans parler, afin que vous puissiez créer vos propres simulacres pour vos tests unitaires. .
Dans votre situation, je parlerais au membre de l'équipe responsable de cette fonction. Il se peut qu'ils soient en mesure de prioriser le développement de cette fonction afin que vous puissiez commencer à l'utiliser plus tôt.
J'éviterais votre quatrième option. Vous avez écrit tout votre code, et comme vous le dites, vous ne le considérez plus comme votre problème. Votre collègue écrit ensuite l'implémentation de la fonction, et ne considère plus que ce soit leur problème. Qui va réellement tester que le code que VOUS avez écrit fonctionne correctement?