I've spent the last year as a one-man team developing a rich-client application (35,000+ LoC, for what it's worth). It's currently stable and in production. However, I know that my skills were rusty at the beginning of the project, so without a doubt there are major issues in the code. At this point, most of the issues are in architecture, structure, and interactions -- the easy problems, even architecture/design problems, have already been weeded out.

Unfortunately, I've spent so much time with this project that I'm having a hard time thinking outside of it -- approaching it from a new perspective to see the flaws deeply buried or inherent in the design.

How do I step outside my head and outside my code so I can get a fresh look and make it better?

Ways to approach this:


Find someone familiar with the technology and business problem and talk it through. This may be hard in a single-person team but is generally the best option.
Work on a different project for a while. This also may be difficult but even taking a week's break can give you a fresh perspective.
Look at similar projects or products, such as open source products if any exist. Be careful not to copy code but they may have approached the idea completely differently.
Learn a new language, library or framework. The techniques involved may give you insight how to approach the same problems you have differently.
Read a good book/blog/magazine on design or the language/framework. I am not sure what level of skill you are at, but there are lots of alternatives in other answers on this site.


If you have specific examples you want addressed, perhaps post them here.
