http://www.perlmonks.org?node_id=177081


in reply to OT: Job Advice

Well, before you do anything, you really need to earn some credibility among both your managers AND your colleagues. They have to feel confident in your competence before they will listen to (or even appreciate, most likely) your suggestions.

Once you've been "vetted" in this manner, so to speak, then you can begin to nudge change from the inside. If your coding ideas are truly superior, then they will be shown to be superior across the day-to-day toil and grind of the development effort. If your code is more efficient, then YOU will be able to produce code faster. If your code is easier to maintain, this will be evident as others try to maintain it. If your code is more secure ... well you may need to enlist the aid or at least goodwill of whomever in the organization is most concerned about security.

Whatever you do, I think you must resist the "guns a-blazin" approach. Pattern yourself after the monk: to teach, not accuse; to build up, not tear down; to mentor, not dictate. Perhaps you can find an open mind among the youngest or most junior developer; they are often most likely to accept mentoring / tutoring. Your goal is to provide a better product, to improve your craft, to perfect your art; it is not and should not be to "make everyone code the right way".

Further, you must tailor your message to each audience. Managers are often swayed by arguments which focus on the bottom line; colleagues are often swayed by arguments which make them appear to be doing more quality work with less effort; a select few may be enticed just by the prospect of Doing the Right Thing. Depending on the culture of your new company (which may take a while for you to discern), it's arguable whether you should start at the top (management) and work down, or start at the bottom (programmers) and work up.

Also be prepared to be rejected by some no matter what you try. For whatever reason, a handful (hopefully no more) will be immune to your evangelizing. Do not force that issue; after all, there ARE more important things in life than hashrefs and  use strict;. Foster those personal relationships even with those who deny you, since you must work around them each day anyway. Acknowledge the person's overall worth even if they don't agree with what you think is the best documentation style.