This document surveys the current state of research on software smells. It discusses five key aspects: (1) definitions of software smells, (2) causes of smells, (3) impacts of smells, (4) detection methods for smells, and (5) open challenges. The survey is based on a systematic review of over 400 primary studies published between 1999-2016. The results provide a consolidated overview of the research on software smells to date and identify opportunities for future work.