The major issue with creating clean code is that clean code requires a _lot_ of discpline, at least for me. Of course, if I am fresh and going, creating clean code is easy. Extract a method here, Invert that if, move that around and so on and so on and all becomes nice and cute. But if I am tired and annoyed by the code, I really have to force myself to extract that one convoluted condition, to remove that duplication and such.<p>Furthermore, I have observed that a lot of my co-students often struggle enough with getting stuff to work, and once they got it to work, uh, it works and no one really pulls himself together in order to get it into a nice, readable form, again, "Because it works, and I have other stuff to do.<p>So much to say, I had to debug a number of stuff in their code, and just by cleaning up stuff, I found bugs. <i>sigh</i>