[1] https://intenseminimalism.com/2015/pixars-plussing-technique...
[1] https://intenseminimalism.com/2015/pixars-plussing-technique...
If there's a problem that can't be solved for a while there's world of difference between saying "Your code is wrong. This is a problem we can't solve for weeks." and "You've made a great start and this code is going to be really useful as a foundation to build on, but there's a new challenge we didn't foresee so we'll need to make a couple of changes when we have more data."
I've never met a technical problem that couldn't be solved better with good people skills. Knowing how to get good work from people is key for any tech business.
"It's been difficult to add new features to the code base because it's grown so much and I think we need to consider a serious refactoring project. The best approach in my opinion is to take the lessons of the past and start over for X and Y reasons."
Will everyone agree with you? Maybe not. Will it work? Maybe it won't. But that's also true if you say "your code sucks," and you won't have to be bogged down in savage internecine code warfare.
To repeat the point of the comment you replied to, it can be much more effective to first work on identifying exactly what the problem is, and if you always expect you can immediately identify solutions it'll hamper your ability to address tough problems.