I work as a programmer, mainly as a web developer, for a company that makes use of a niche programming language that has a bad reputation.
Basically, the developers that left the company have made
A: Undocumented Code (without even comments on the classes they have made so why something that does record searching is named JBFX instead of the intuitive SEARCH I'll never know)
B: highly coupled and static systems
(SQL Queries are "injected" in the application, their argument being it is the fastest way to develop without bothering with stored procedures, etc.)
(Instead of a server that can cater different "Sites" of the company via a field (ie. Tables that have an area column in them that would contain if records are for "Manila" or "Dubai") each site has it's own server, and thus cannot relate with each other unless their is middleware for each particular table)
C. Web applications are encouraged to be POST back in nature instead of Responsive. Since it is how they have been doing web development. I tried showing a webpage that is ASYNCHRONOUS in nature and was discriminated for it, saying that I have made things complex and that customers won't notice pages that POSTBACK. (I suspect that they are used to developing the niche language in a POSTBACK manner so much that they do not want to bother studying about async)
D. No software development plan, and default of management is that (You do this project for 3 months) without any semblance of plan. No use of AGILE or SCRUM. And result is that on time of presentation MORE requirements are added that mess up the current setup of the solution with given time for you to change things being 3-4 days only BECAUSE management deems it to be a small change)
However niche the language may be (hint) I felt it could be salvageable if we changed our development techniques. The trouble is, the developers I currently work with does not want to fix any of the existing problems, and themselves develop in this manner. They still won't document, they still will create code that isn't SOLID in nature, they still won't study how AJAX is even if it is so simple with jQUery (and I've shown them how it could be done with the said niche language.) and they show no desire to do any software development planning, discriminating on the very idea ("a good programmer must adapt" they say. I say "I will never know what it is you exactly expect of me unless you tell me what those are")
I suspect that they do not want to adapt because of the added work and effort in applying all of these, and that whatever they do works. As a result, we are stuck with a system that fails every so often (every day there is a failure) and we are called to support it.
My question is, how can I make them see the light, that these techniques aren't just added work, but will ultimately be for the better of the team? Can you change a culture this deeply rooted? or should I just ultimately leave as I feel this is a bad experience to be added in my resume (not being able to change or employ any modern development strategies, bad practice, too niche technology that should be scrapped for better ones)?
This question and this one is related, but here are differences: A. I am at a "Supervisory" level, but then again everyone else on my team is as well. It may sound silly, but it's true. I have no people under me. We have a manager above us whom I must follow.
B. I an cordial with the team, I am on good terms with any other conversation. but when it comes to matters like this, topic is often set aside / dismissed (and I find that this depresses and demotivates me every single day).
C. i haven't insulted anyone on how they code, in fact I try to praise them a bit ("wow, that's a good method you've made there") and then try to inject an advice ("what if we employ dependency injection so that this method can be used again for...") but I am mostly met with a laugh and then the subject is dismissed.
This question is also related, but I am on the opposite end of the asker. I "want" to support the ideas of this boss proposing the idea (if he were a coworker)