La rediffusion estivale de The Daily WTF exhume un classique : une interface qui abandonne l'abstraction pour l'énumération. Christian, un développeur allemand, découvre ITableSelector dans le code—une interface C# déclarant 31 méthodes individuelles pour sélectionner différentes tables. Au lieu d'une approche paramétrée (selectTable(int tableNumber)), le concepteur a codé en dur selectTable1(), selectTable2()... jusqu'à selectTable31(), certaines tables se divisant en variantes (selectTable4a, selectTable4b, selectTable14a à 14d).
L'infraction est un défaut de conception classique : l'interface verrouille les noms de table à la compilation, élimine la sécurité des types et rend l'ajout d'une 32e table une réécriture de contrat. C'est l'opposé du Principe Ouvert/Fermé. Le code crie après une seule méthode acceptant un identifiant de table—ou mieux, une véritable couche d'abstraction.
Le terme inventé par Christian, quäl-kot (code-torture), est juste : c'est le genre de structure qui rend la maintenance une prise d'otage permanente.