Vous l'avez donc entendu à plusieurs reprises de la part de ceux qui ne comprennent pas vraiment les valeurs des tests. Pour commencer, je suis un adepte de l'agilité et des tests ...
J'ai récemment eu une discussion sur la réalisation de TDD sur une réécriture de produit où l'équipe actuelle ne pratique pas les tests unitaires à aucun niveau, et je n'ai probablement jamais entendu parler de la technique d'injection de dépendance ou des modèles de test / conception, etc. (nous n'obtiendrons même pas sur pour nettoyer le code).
Maintenant, je suis entièrement responsable de la réécriture de ce produit et on me dit que l'essayer à la manière de TDD, en fera simplement un cauchemar de maintenance et impossible pour l'équipe. De plus, comme il s'agit d'une application frontale (non basée sur le Web), l'ajout de tests est inutile, car le dynamisme de l'entreprise change (par changements, ils signifient des améliorations bien sûr), les tests deviendront obsolètes, d'autres développeurs qui viendront à le projet à l'avenir ne les maintiendra pas et deviendra plus un fardeau pour eux à réparer, etc.
Je peux comprendre que TDD dans une équipe qui n'a actuellement aucune expérience de test ne semble pas bon, mais mon argument dans ce cas est que je peux enseigner ma pratique à ceux qui m'entourent, mais plus encore, je sais que TDD fait MIEUX Logiciel. Même si je devais produire le logiciel en utilisant TDD et jeter tous les tests pour le remettre à une équipe de maintenance, ce serait sûrement une meilleure approche que de ne pas utiliser TDD du tout?
J'ai été abattu car j'ai mentionné faire du TDD sur la plupart des projets pour une équipe qui n'en avait jamais entendu parler. La pensée des "interfaces" et des constructeurs DI étranges les effraie ...
Quelqu'un peut-il m'aider s'il vous plaît dans ce qui est normalement une très courte conversation d'essayer de vendre TDD et mon approche aux gens? J'ai généralement une très courte fenêtre de discussion avant de tomber à genoux devant l'entreprise / l'équipe.