A Code Smell is a surface indication that usually corresponds to a deeper problem in the system. Smells are certain structures in the design that indicate violation of fundamental design principles and negatively impact design quality. Code smells are usually not bugs, but they increase the risk of bugs and slowed-down development.
Static code analysis tools (e.g. flake8, Pylint, JSHint, CSS Lint) help to detect code smell.