Smelly items may be rupugnent and repellent but they are a critical indicators of something going or went wrong. Software smells too. How weird may it sound but this is true that a software can also produce a bad odour.
CodeSmell is the term coined by Kent Beck whilst he was helping Martin Fowler in writing his book on refactoring. CodeSmell refers to any surface indicators which point towards the bad code. With minimal experience, one can sense that code smells or not. Even end-users can tell that whether an application sucks or not. But Codesmell usually refers to the sense of programmers by which they evaluate their code.
According to Martin Fowler, ”
One of the nice things about smells is that it’s easy for inexperienced people to spot them, even if they don’t know enough to evaluate if there’s a real problem or to correct them. I’ve heard of lead developers who will pick a “smell of the week” and ask people to look for the smell and bring it up with the senior members of the team. Doing it one smell at a time is a good way of gradually teaching people on the team to be better programmers.”
If you follow the below given link, you will come across a variety of CodeSmells.