We first introduced Code Smells in Chapter 1, if you're not familiar with Code Smells, it may sound strange. The metaphor "something doesn't smell right" is the gist of code smells. Experienced developers that read code can often notice subtle problems with the code that they may or may not be able to put their finger on directly. This is a "Code Smell". Code Smells are based on viewing the code, so it's arguably one of the major means of improving code readability. Many code smells are particularly geared towards the ability to read code. "Long Method" and "Large Class" code smells, for example, have a side effect of being hard to read because the reader needs to page up and down in the code to follow what it is doing.