Start Over with Simplicity or Reduce Complexity?

I was having a conversation with a client recently and they'd more or less come to the conclusion that they needed to do a hard reset on the company and rebuild their application.

Not an easy decision to reach. Painful on multiple dimensions.

I've been in this very situation myself and a question I had to deal with then, and that they are dealing with now is: "What do we do with all this code?"

Even if this version of the idea has missed the mark, there's some good code in there. It's your fledgling business and even if it isn't perfect, that's valuable IP. What are you supposed to do just throw it out?

I think so.

There's a default desire to wade through everything and save the good parts. To take a few objectively brilliant pillars and rebuild around them.

I told him that I think it's a better idea to start over with simplicity rather than reduce complexity.

Take it all the way back down to the ground. Reimagine the simplest version that offers some value, and build that.

Those good parts will still be safe in Github if you end up needing them. Besides, as you reboot and set back out to find product-market fit, you won't need what you thought, and you'll invent something you haven't yet imagined.