Hello Bilal !
Yes that will create conflicts when you do
bench update and if done over a long period of time, the conflicts will become increasingly confusing.
I’ll tell you. Now ERPNext has default capabilities but every business will want ERPNext to include their process just like you.
Now the simplest or I’d say naive route is change all you want - i.e. code and doctypes. But then this creates problems when you want to update like you would want to go to v11 but you’ve done so many changes you get bogged down by the conflicts.
Hence, the first advice is to not change code (Python/JS anywhere in Frappe/ERPNext to suit your purpose) and do not edit doctypes via Edit Doctype for the default doctypes provided in ERPNext/Frappe. Instead you do Customize Form - you add customizations.
To save these customizations, there is a feature called Fixtures. It exports that doctype you specify complete with data you create.
If you wish to add new doctypes via Edit Doctype route you don’t add them to ERPNext’s default modules. You create new modules for your own app, and then add those new doctypes to your custom modules.
Hence in this way, default code and doctypes of ERPNext remain unchanged, and you get your business process into ERPNext too. Win Win !