The Big Rewrite

"The Big Rewrite" is a scary phrase for most software developers and software companies. Most developers probably spent years getting to the point where they are today, and they often overestimate the value of their existing code base. However, software development doesn't obey by the normal laws of nature. For instance, every time you re-engineer your software from scratch, you're destined to implement it 10x better, 10x faster, and 10x more stable - At least up to some "n number of rewrites". Hence, my proposition, is to create the same software 5 times, before you're happy with your end result, and willing to label it as "production ready". In fact, if you haven't created the same software at least 5 times, I'd argue it's probably garbage anyways.

According to modern studies of Leonardo DaVinci's Mona Lisa, this was the process Leonardo used when he painted Mona Lisa. He slowly over time added new layers of paint, on top of the old layers, until he finally died - At which point Mona Lisa was forever cast in stone, and ended up as it looks like today. Leonardo never finished Mona Lisa, he simply died of old age, before he could ever add the "final stroke of paint" on top of its old layers.