If you ever read the website Hacker News you’ve probably seen stuff like the “Show HN” post where someone shows off a reasonably impressive project that they wrote over a single weekend. Sometimes it seems too amazing for one weekend, and they probably tinkered on ideas for a while, but you know its still totally possible.
Augmented reality system that uses deep learning to identify if an approaching dog is a good boy? Great programmer + clear idea + right technology and yeah, I can believe it. 13/10.
And yet if you have an existing app and you want to add some kind of new functionality that looks like what someone wrote in a weekend, it could take a week, maybe two, maybe even a month, longer even.
It is almost always faster to write new applications than it is to implement the same functionality in an existing application!
One of the most significant reasons this is the case is that new code, and more importantly new applications, aren’t [as] encumbered by previous pathways. Code pathways, including schemas and interfaces, and user behavior pathways, including documented guidelines and learned usage patterns.
You might call it user expectations.
Even when they seem wrong user expectations can be a drag on changes to functionality. With a new app, you can define these from scratch. You can address them from nothing and, if necessary, adapt either user expectations to fit the technology or fit the technology to guide user expectations.
A subset of the previous answer, you never have to correct for previous dead ends, in-progress changes, pivots, or terrible ideas.
The difference here between a new project and an existing project is like new home construction versus an extensive renovation. With a new home the builder starts with a clear lot, starts layer by layer, and can include internal components prior to adding any protective sheathing (what the pros call ‘walls’). Installing electric? The circuit box can be added and wires or conduit run everywhere through the house just before insulation and wallboard are put up.
But renovating? Unless you’re tearing walls down, rewiring entails pulling wire through existing walls, around existing features, and respecting infrastructure already in place. Pulling wire 20’ might be a lot harder than pulling wire 20’ when all you’ve got is stud work.
And if you do want to pull down a wall you better have some supports in place so the building doesn’t collapse before you can get a replacement stood up.
The cost of change and the cost exploration when starting from scratch are significantly lower than when you start from an existing product.
“So if its faster to write from scratch, doesn’t it make sense to start rewriting our entire codebase to make changes?”
For those of you celebrating Boxing Day next week you can look forward to why, despite all of these obvious advantages, it’s almost always more costly to rewrite.
Sincerely Yours Best Cheers,
Learn from more articles like this how to make the most out of your existing Django site.