Many of the problems you discuss are signifcant weaknesses in change management and / or the SDLC process.
No well defined processes for maintaining software within company
How do you track what changes have been made to the software,
especially in the production environment, if one exists at your
company?
Given no change logs are used, how will you trace a change made and
determine whether the change is authorized and not malicious?
How do you trace changes to the users that made them,
because if you can't do so, no one person can be held accountable if a changes breaks critical functionality.
People remove code rather than deprecating old code. This is a very bad practice as you suggest. What happens if a release fails and has to be rolled back? Without old working code to revert to, there is the risk of business disruption due to inability to recover from a failure / disaster.
What does the SDLC process, whether this be WaterFall or a version of Agile, say about how code changes are processed? Is there a QA function that enforces proper development techniques?
Pay attention to how related processes at your company are working.. Given how slipshod change management is at your company, I am willing to bet heavily that related processes are no better. Some questions worth thinking about, assuming your company is mature:
- What are the job roles of employees that have the ability to modify / remove code from repository?
- Are incompatible duties segregated such developers having direct access to production?
- Is testing and documentation of results required before deploying code to production?
- How reliable are the rollback / restore procedures in case a change made were to crash the system?
You should also recognize that if your company is a public traded company in the United States stock market, it is subject to Section 404 of the Sarbanes Oxley Act - SOX, if the process under question affects financial reporting in any manner. Sarbanes Oxley - Section 404 mandates management bear personal responsibility over the adequacy of internal controls in their company. Top management can go and have had gone to jail if convicted of fraudulently mis-reporting on internal controls.
I work in IT Audit and my job is exactly to bring issues you mention in your post to the attention of management for resolution.
My suggestion is for you to discuss with your manager that current processes present signifcant risks to the the company in terms of business disruption, system integrity, and client satisfaction.
If that fails, raise the issue with the Internal Audit function at your company, if such a function exists at you company, and you are authorized to speak inter - departmentally.
In summary, if after your presentation to management, and still no improvements are made, you probably should think about finding another job as this development environment is detrimental to your growth.