“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.

There also exists science to back me up here. One study once asked random strangers on the street to create ceramics pottery. 50% of the people were told to spend 8 hours creating one single cup and try to create it “perfect”, while the rest of the group were told to create as many cups as they could. Afterwards they had professional ceramics teachers evaluate the results, and paradoxically, the best quality was consistently found amongst those who had been told to create many cups.

There also exists other studies concluding with the same thing, such as “the brilliance studies”, researching what’s needed to become a master concert piano player for instance. These studies always shows the same result, which is that it requires roughly 10.000 hours of practicing, and 10 years repeating the same thing, over and over again, before you become a master in any subject. Taking these studies to their natural conclusions, implies that you should “practice creating your app for 10.000 hours before you actually start implementing it”.

Of course, the above is madness in a modern world, since nobody can afford “practicing creating a software project for 10 years”, before they start implementing the darn thing …

#dotnet #angular #c# #rest api

The Big Rewrite
1.10 GEEK