I'm just wondering how you recommend to tackle working with other developers who don't follow best practices, especially when you are new to the team and job. Ideally you would find this out beforehand and not accept the job, I suppose, but sometimes you don't have that luxury and have to deal with the situation. My "people skills" are lacking a little and I don't know how to approach this without seeming arrogant.
For example, if you join a software team and find out that the team doesn't use source control (or don't use it properly), don't write tests, and don't apply things like the SOLID
principles (SRP, OCP, LSP, ISP, DIP) to their code, how do you tackle this when you're the new/junior member of the team?
I ask this question because I've had a few experiences of this sort, and being someone who regularly reads blogs and watches screencasts highlighting best practices I've found that I can't bring myself to "dumb down" my development skills and just go with the flow that everyone else does (e.g. putting business logic in ASPX code behind files, or worse mixing logic and presentation), however since invariably this happens when I'm brand new to a team, I'm not sure how to convince everyone else to do it without coming off as a jerk and/or know-it-all.
How would you approach this situation, where you being the newbie know more about best practices than the other experienced members of your team?