(code bad smell OR code smell OR bad smell OR "design issue" OR "design problem" OR antipattern* OR anti-pattern* OR duplicat* code OR duplicat* OR clon* OR long method* OR method length OR large method* OR large class* OR class size OR long parameter list OR divergent change* OR shotgun surgery OR feature envy OR data clump* OR primitive obsession OR switch statement* OR parallel inheritance hierarchies OR lazy class OR speculative generality OR temporary field OR message chain* OR middle man OR inappropriate intimacy OR alternative classes different interfaces OR incomplete library class OR data class OR refused bequest OR comment ) AND (software) AND (quality OR maintain* OR mainten)