Nous connaissons la situation optimale pour négocier des corrections de spécifications avec le client, obtenir les spécifications pour faire ce que le client voulait, pas ce qu'il a dit ou pensait qu'il voulait. C'est négocier, expliquer.
Parfois, nous ne pouvons pas convaincre le client. Nous sommes obligés de produire cassé comme prévu. Ceci, appelé "démonologie" par le mérite des mages invoquant des démons et des démons exaucant leurs souhaits très littéralement, provoquant la mort du mage en conséquence, est une autre approche qui laissera le client très insatisfait une fois qu'il réalisera son erreur, et bien sûr essayera de cerner le blâmer le développeur.
Maintenant, je viens de faire face à une approche très différente: le client a créé des spécifications simples qui ne tiennent pas compte de certaines mises en garde critiques, et ne veut absolument pas les corriger, admettre les erreurs évidentes et accepter les corrections suggérées. Le produit fabriqué selon ces spécifications sera gravement cassé et pourrait éventuellement coûter des vies humaines. Pourtant, il est trop tard pour abandonner complètement le contrat. Le contrat contient des clauses punitives pour cela, celles que nous ne pouvons pas vraiment accepter.
La décision du patron? Nous faisons le travail correctement et mentons au client que nous l'avons fait selon les spécifications. Les algorithmes en question sont cachés assez profondément sous la surface, le produit fera très bien le travail, n'échouera pas dans la situation de mise en garde, et à moins que quelqu'un ne creuse trop profondément, il ne découvrira jamais que nous ne l'avons pas cassé comme demandé.
Y a-t-il un nom commun pour cette tactique d'exécution des spécifications?