Abstract The infamous software entropy often leads to the degradation of a chosen and implemented software architecture, so we usually try to refactor our software. The detection of code smells in large enterpise systems is not so easy and should not be done in an ad-hoc manner: it is quite obvious that the architect and developer might review the wrong subsystem and/or classes. Instead of such an approach, the key to successful refactoring is looking for code smells in a systematic fashion. In this session I am going to show how to use software metrics to detect defects in the software design. It will be shown that using single metrics is not sufficient, because such it will deliver too many potential design flaws. The true power comes with the combination of software metrics to formulate detection strategies for code smells. All examples shown in the session will be based on large Java open-source projects.