http://qs321.pair.com?node_id=270194

I've been working on about a dozen different development projects over the last couple of years, using various languages (Perl, C, XML, others). Some of these projects are given away and distributed in the community, some are relied upon heavily by other community projects, some are private projects for managing the business here, and some are new ventures, with the hope of generating some repeatable revenue.

I think I've reached an impasse...

Every time I open one of the projects, and look at the code, I get this overwhelming sense of "depression", and I just want to throw all the code away and start from scratch. One of these projects has at least a dozen other projects which rely on the libraries it contains, so there is an issue of maintaining binary compatibility. I can't just gut and change the interfaces, without having a very negative effect on the other projects' functionality. The other projects have pretty complex bits that other tools plug into for input and output, so I can change those, as long as I keep the same basic public API exposed.

The problem is that I just want to throw them all away, start from scratch (on paper), and rewrite them. There's probably a lot of refactoring of the existing code that could happen, removing any legacy cruft that may have crept in there from community-contributed patches, workarounds, and other needs at the time.

Stepping away from one project, and focusing on another doesn't seem to help, because all of them have some level of "Sigh, I just can't look at this code for another minute." associated with them. I could just use a diversion and play chess or something, but I know in the back of my mind, I have to get back to that code sometime, so.. why not now?

What do other monks do, when they just can't look at the code anymore, without wanting to throw it all away and take up a career in woodworking?