The Big Rewrite
People fear the big rewrite, since they believe it's effectively equivalent to going back to the starting line, and running the marathon again. This is simply WRONG!
Join the DZone community and get the full member experience.Join For Free
"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 ...
Magic to the rescue
For the record, there is no joke coming up here, I literally meant what I wrote in the above header. Magic will fix this for you. Watch the following video to understand what I mean.
Explanation - The single largest problem you'll face as you do "the big rewrite", is that you've probably long since started using your app in production. And over time, you have accumulated thousands if not millions of records in your database - Hence, rewriting the data model from scratch, becomes impossible for compatibility reasons. However, your app's source code is probably purely statistically garbage, and "a big ball of mud" - At least according to neutral science in the subject. And of course, most senior software developers are now nodding their heads in agreement with me, having seen most of the crap that's out there ...
Hence, it becomes the software development equivalent of "the hoarder syndrome". Making management argue as follows.
We have millions of lines of code, they have to be worth something!
Actually, most senior software developers would say that you just proved with your own words that it wasn't worth anything! If you don't believe me, visit the local village hoarder, and ask him or her what the value of their crap is. Magic, the above framework, actually contains no more than 16.000 lines of code in total, and I have spent more than a decade throwing out crap from its core! Most enterprise hello world types of apps out there, probably contains 20x more, and does a fraction of what Magic does. Believe me as I say this out very clearly.
LESS IS MORE!
Arguing with the above sentence, simply demonstrates you've swallowed your own Cool Aid. Sorry, your enterprise software development project, the one you've paid hundreds of developers to implement, sometimes over several decades, is simply not worth its weight in garbage! Why? Because none of them spent 10 years "practicing" how to create it, before they started coding ...
As to me, I've spent 11 years "practicing" how to permanently solve the software quality problem, and Magic is my 5th implementation. Hence, problem solved.
- Download Software Quality - Yup, quality is as of now a DOWNLOAD!
Opinions expressed by DZone contributors are their own.