> I know a full rewrite is necessary, but how to balance it?
No, re-write over time. There's an extremely high chance there is complexity you do not understand yet.
> - it has been developed for 12 years directly on production with no source control ( hello index-new_2021-test-john_v2.php )
First immediate win, start using source control. Initially people can operate in the same way they have been, just through git. Slowly but surely clean up the old files and show people how they are not lost, and how it cleans up the code. The switch to more advanced code management practices, like master branch vs working branches, code reviews, etc.
> - the routing is managed exclusively as rewrites in NGInX ( the NGInX config is around 10,000 lines )
Make sure this is definitely checked into git. Ideally you look to simplify this somewhat, you don't really want to be so heavily tied to the server.
> - the database structure is the same mess, no migrations, etc... When adding a column, because of the volume of data, they add a new table with a join.
A migration to a better database setup takes time. As long as there are no fires, treat it as a black box until you have time to fix it up. Just double check their backup strategy.
> - team is 3 people, quite junior. One backend, one front, one iOS/android. Resistance to change is huge.
It sounds like you are new to their team. You need to win hearts and minds. One small thing at a time.
> This business unit has a pretty aggressive roadmap as management and HQ has no real understanding of these blockers. And post COVID, budget is really tight.
Explain to them the code is like an old house. It has had lots of investment over the years and you have generated a lot of profit from it. The problem is, over the years, the foundations have crumbled, and despite the walls looks nice, they are painted over serious cracks. Whilst you could continue to use it how it is, one day it will simply fall down - unless time is invested today to maintain it.
They will then say "well, what needs to be done?". And you need quite a concise and well thought out way to respond to that question.
No, re-write over time. There's an extremely high chance there is complexity you do not understand yet.
> - it has been developed for 12 years directly on production with no source control ( hello index-new_2021-test-john_v2.php )
First immediate win, start using source control. Initially people can operate in the same way they have been, just through git. Slowly but surely clean up the old files and show people how they are not lost, and how it cleans up the code. The switch to more advanced code management practices, like master branch vs working branches, code reviews, etc.
> - the routing is managed exclusively as rewrites in NGInX ( the NGInX config is around 10,000 lines )
Make sure this is definitely checked into git. Ideally you look to simplify this somewhat, you don't really want to be so heavily tied to the server.
> - the database structure is the same mess, no migrations, etc... When adding a column, because of the volume of data, they add a new table with a join.
A migration to a better database setup takes time. As long as there are no fires, treat it as a black box until you have time to fix it up. Just double check their backup strategy.
> - team is 3 people, quite junior. One backend, one front, one iOS/android. Resistance to change is huge.
It sounds like you are new to their team. You need to win hearts and minds. One small thing at a time.
> This business unit has a pretty aggressive roadmap as management and HQ has no real understanding of these blockers. And post COVID, budget is really tight.
Explain to them the code is like an old house. It has had lots of investment over the years and you have generated a lot of profit from it. The problem is, over the years, the foundations have crumbled, and despite the walls looks nice, they are painted over serious cracks. Whilst you could continue to use it how it is, one day it will simply fall down - unless time is invested today to maintain it.
They will then say "well, what needs to be done?". And you need quite a concise and well thought out way to respond to that question.