Someone on quora asked:
How do professional programmers deal with ignorant/unskilled colleagues, who don’t care about improving?
In my opinion, you shouldn’t force them to improve if they don’t want to. For some people, programming is just a job: they come in, they do what they’re told to do, and go home. They don’t want to think about process involvement or anything like that. And that’s fine, if that’s the life they want.
This applies to companies too: there will be companies that just want to get their projects done and out the door, and don’t want to think about process improvements, etc.
My suggestion to you, if you are interested in that kind of thing, is to start looking around for companies more to your liking. It’s not really about talented/experienced programmers and more of about the company culture - although that will be driven largely by the senior programmers in the company. I would also prioritize working in companies that are primarily programming shops, instead of say, a programming department in a bank or some other type of business. Programming shops will be more focused on the dev process as one of their priorities.
Or if you like your job and don’t want to leave, you can also try to persist. Don’t be obnoxious, but every so often when some problem is encountered you can say “we could have avoided this if we have done X” or something like that. Get to know the senior software developers on your team and try to discuss programming practices with them. If you stick around, eventually you will become the senior software developer and will have more influence on the culture.
Good luck!