Iteration > from scratch
I’m increasingly convinced that it’s usually a bad decision to start from scratch.
There are a lot of reasons behind this belief, but the primary one for me is: Usually the old way is doing pretty well. Rather than risk losing what is already going well in a full redesign, it’s usually better to focus on improving what’s lacking. Secondly, starting from something causes one to avoid the blank page syndrome.
This rule of thumb applies to product-level thinking all the way down to code implementation itself. Following this rule of thumb and avoiding redesigns may make you much more efficient and able to ship more.