El concepto de code smell fue popularizado por Martin Fowler en su libro Refactoring. Ciertos patrones en el código no son errores, pero indican que el diseño podría mejorarse.
Similar ocurre en la arquitectura de sistemas empresariales. Por ejemplo, demasiadas dependencias, integraciones difíciles de entender o procesos que solo unas pocas personas conocen.
El sistema sigue funcionando, pero cada vez que hay que hacer un cambio cuesta más.