FaultyTechniqueDichotomy


Original: http://martinfowler.com/bliki/FaultyTechniqueDichotomy.html

Martin Fowler

5 Août 2004

Ma principale source d’inspiration dans la vie est d’essayer de saisir et d’améliorer la façon dont nous faisons le développement de logiciels. Je passe donc beaucoup de temps à parler aux gens de différentes techniques qu’ils ont utilisées, celles qui fonctionnent bien et qui sucent.

Comme je le fais, j’entends souvent des techniques défectueuses: „FIT ne valait pas la peine“, „ne jamais mettre toute logique des procédures stockées“, „conception de l’essai conduit conduit à un désordre chaotique“. Le problème avec le rapport d’une technique défectueuse est de savoir si la technique elle-même est défectueux, ou si l’application de la technique était défectueux.

Prenons quelques exemples. Plusieurs de mes amis a commenté la façon dont les procédures stockées ont été un désastre, car ils n’ont pas été conservés dans le contrôle de version (au lieu qu’ils avaient des noms comme GetCust01, GetCust02, GetCust02B etc). Ce n’est pas un problème avec les procédures stockées, c’est un problème avec les gens ne les utilisent pas correctement. Une critique similaire TDD a conduit à une conception fragile sur un nouvel interrogatoire mené à la découverte que l’équipe en question n’avait pas fait de refactoring – et refactoring est une étape critique dans TDD.

Bien sûr, si vous prenez tout cela trop loin, vous obtenez l’effet inverse. Je dis souvent „aucune méthodologie n’a jamais manqué“. La raison pour cela est que, étant donné toute défaillance (en supposant que vous pouvez connaître WhatIsFailure), vous pouvez trouver une certaine variation de la méthodologie. D’où la méthode n’a pas été suivie et n’a donc pas sûr. Ce problème est aggravé encore plus loin avec les méthodes agiles auto-adaptatifs.

Alors, quand vous entendez des techniques défaut, vous devez poser beaucoup plus de questions.

  • Était-ce la technique elle-même qui a eu des problèmes, ou était quelque chose d’autre est raté. Est-ce que la technique a une influence sur ce? (Contrôle des versions est une chose distincte de procédures stockées, mais il peut être plus difficile à utiliser le contrôle de version avec des procédures stockées en raison de la nature des outils impliqués.)
  • La technique a été utilisée dans un contexte qui n’était pas adapté pour cela? (Ne pas utiliser à grande échelle refactoring manuel lorsque vous n’avez pas les tests.) Rappelez-vous que le développement de logiciels est une activité très humaine, souvent techniques ne conviennent pas à un contexte en raison de la culture et de la personnalité.
  • Éléments importants ont été omis de la technique?
  • Les gens se sont concentrés sur les signes extérieurs qui ne correspondent pas à la réalité? Ce genre de chose est ce que Steve McConnell appelé Cargo Cult Software Engineering ..

Un aspect intéressant de cette est de savoir si certaines techniques sont fragiles; c’est à dire qu’ils sont difficiles à appliquer correctement et donc plus sujettes à une mauvaise application. Si il est difficile d’utiliser une technique correctement, c’est une limitation raisonnable de la technique, ce qui réduit le contexte où il peut être utilisé.

Il n’y a pas de réponse simple à ce problème, car avec ces techniques, nous sommes comme incapable de mesurer la conformité que nous sommes incapables de mesurer leur capacité de réussite. La chose importante à faire est lorsque vous entendez parler d’une faute technique – souvenez-vous toujours de la dichotomie.

Publiée le 6 août 2014

Comments are closed.