I am currently checking some code that I had written to be published. The process has put an exclamation point on the importance of code reviews for me. The parallels between reviewing the text, structure and examples in the book and the organization and coding structures of an application really struck home.
Sometimes you just need to walk away from what you are working on for a while. You may come back an wonder what the heck was I doing. I found places that I had been writing while coding and the final code didn't make it to the text. Other places the structure didn't make sense.
How many times have you written some code by laying out the over all structure and them forgotten to implement a stub (yes this is why code generation puts exception throws in stubs).
Code reviews are the best way to catch these and other gotchas early. Make them fun. I know associates who have had a beer fund (you know who you are) where you had to donate for every time you broke the build. Take that idea in a new direction. Say you have to donate for every code smell that someone finds in your code during a review. It could make for a great party at the end of the project.