I hightly recommend this article:
Why You Should Polish Your Code

Résumé of problems you should look for while polishing your code:

  • Duplication of logic in two or more places.
  • Undesired dependencies.
  • Overly complex logic, like a large switch statement or series of nested if-else statements.
  • Too many classes within one package.
  • Too many methods within a class, particularly public methods.
  • Overly long file, in excess of a couple thousand lines.
  • Overly long methods.
  • Poorly named classes, methods, fields or local variables.
  • Lack of a class comment.
  • Violation of the principle Single Responsibility
  • find more at http://www.xprogramming.com/