I work in a relatively high-paying and high-pressure SAAS company on a legacy (no tests) c++ backend component that is critical to the business. A flaw in this component could easily result millions of dollars of losses.
Despite its importance, it has been maintained by a team of three marginal developers, all 15+ years senior to me. After spending the last year managing them part time, I don't believe they are going to get any better; one because of lack of motivation and the other two because of a lack of intelligence.
I've tried talking to them, asking them why they use things like c-style casts, hand-written new/delete for containers instead of smart pointers, use singleton for everything, etc. etc. The typical response is something like a shrug and mumbling something about it being easier that way. One suggests that using singleton for every class is a matter of taste, not to be discussed. Another just cannot understand or accept that global variables cause problems; a recent commit message was "Because JQ insists it be this way."
There is a strong possibility that I will be managing them full time beginning next year, and I feel like they should be replaced with people who are able to do more than what they are told. Their current manager (who is retiring soon) knows that they are sub-par, but we can't hire enough people so they are still around. What can I do?