Apologies for the long post, but there is a more directed question at the end of the slightly rambling background.
In September, I started working for an offshoot of another company, but since then, our IT departments are merging, and the cultures are completely different. In our office, established for just over a year there's me with bags of commercial IT experience, plus a guy with a PhD in aeronautical engineering, excellent dev & very quick on the uptake working with C# & SQL where possible.
In the other office they have been established over 10 years and the IT is doing the job the company needs, but there are no good practices.
Some examples :-
Virtually all development is in Python, which is run as a mass of scheduled tasks. There is one particular task that runs around lunchtime to pick up all the submissions from the previous day, and another to pick up the same class of thing to mop up what has come in today runs at around 5pm. Each is a separate python script with a couple of classes declared at the top (which are declared in virtually every script I have seen), followed by around 1000 lines of code mixing in database access, processing logic & composition of output XML in a single block of code with nothing split out for readability. The two scripts differ in four lines - they don't appear to have heard of parameters.
Also, they don't appear to have heard of stored procedures; I have seen scripts where, to get nested information, they run an inline query to get a set of data, then walk the set in Python & fire a separate query to get related information for each row.
Did I mention that they have no form of source control?
I really need to change the culture in the other office (I do have my boss's support in this). I started by going in there & demonstrating a bit of separation of concerns using classes in Python and unit testing, then leaving a copy of Clean Code with the guy who seems to be the main trusted developer who people look to for advice, but it sat on his desk unopened for 2 weeks.
On the plus side, a young guy (just 18, left school at 16, started in the warehouse & moved into development purely because he showed an interest in it) emailed me to say he hoped it was OK that he had taken the book home at the weekend to read, and is picking up C# with remote assistance from me. He's mega-keen & will probably make an excellent developer. There are other developers who also seem willing to learn, and they have all said that that the guru is very set in his ways.
So, any ideas on how I can start moving them towards learning sensible IT practices as a matter of course? I feel the main obstacle is the guru chap, but he has the trust of his non-technical superiors, so technical explanations may be wasted on them.
One possible light is that we will be examining the code of a product developed by a third party, written in VS Code C# - I'm hoping it will open their eyes to the possibilities, though I'm not looking forward to explaining <t> notation to Python devs, should it arise.
Regards & TIA