title: Code refactoring on bad system design
body: <p>I am a junior software engineer who've been given a task to take over a old system. This system has several problems, based on my preliminary assessment. </p>
  
  <ol>
  <li>spaghetti code</li>
  <li>repetitive code</li>
  <li>classes with 10k lines and above</li>
  <li>misuse and over-logging using log4j </li>
  <li>bad database table design</li>
  <li>Missing source control -> I have setup Subversion for this</li>
  <li>Missing documents -> I have no idea of the business rule, except to read the codes</li>
  </ol>
  
  <p>How should I go about it to enhance the quality of the system and resolve such issues? I can think of using static code analysis software to resolve any bad coding practice.</p>
  
  <p>However, it can't detect any bad design issues or problems. How should I go about resolving these issues step by step?</p>