One year when I lived in Chicago and had a live-in girlfriend, I bought us salsa lessons for Christmas. We went once a week and practiced (somewhat) regularly at home. It was a lot of fun and we loved dancing together. I felt cool learning something that looks complicated but is all based on simple, fundamental steps. Learning the basic step is like learning to ride a bike. You won't forget it. However, with more advanced techniques, "use it or lose it" is definitely true.
When I moved to Montréal, one of my coworkers told me about a free beginner's night at a salsa club downtown, so I started going. Yep, had to take it back to the basics. I tried intermediate night once and I just couldn't keep up. It had been too long, I was out of practice, and so I stuck with beginner's night so it would still be fun, if not a little too easy. I didn't like that I couldn't remember the advanced stuff and my moves were pretty repetitive and boring. But all the same it was a fun activity to get out of the house and to take along a couple of friends who were true beginners.
During this lesson, everyone there forms a circle with an outer ring and an inner ring. The ring of men moves one person at a time, because salsa is a shared experience where you dance with different partners throughout the night. Well, one night, there was this girl in the "class" that my friends were saying was correcting them and making them feel like idiots. When I got to her, I had heard her criticizing the guys ahead of me, and I was nervous about messing up with her. Well it happened to me, too, she started snapping at me that I wasn't holding on firm enough, not pushing hard enough, not dancing with enough confidence, shit like that. It was really demoralizing. She wasn't pleasant to dance with, and I felt judged as a clueless moron, despite having some experience.
Unfortunately, I've found myself too many times being like the correcting, unpleasant girl in the salsa class. You're not testing enough! Your formatting isn't clean enough! There is no confidence in this code! No one wants to dance with that kind of partner. Leaders aren't made of dogmatic enforcement commanded down to others. It just makes people feel small, stupid, and clueless. This, in turn, would cause a cycle of me being chronically unsatisfied with my colleagues' work, and my colleagues not feeling any encouragement to advance themselves.
Yeah, I still think clean code and testing are important. SOLID is a great tool for thinking about your code. I believe in taking your time to review and revise your programmatic solutions for scalability and future maintenance. But what doesn't work, is being the overbearing corrector, the egocentric enforcer who makes their peers feel small and stupid. They won't want to grow, they won't want to work with you, and you won't see the change you want to see in your development culture.
It was never intentional. I'm sure the girl wasn't trying to be unpleasant. She wanted to have fun, too, and shy, limp-wristed dancers weren't fun for her. The only thing she knew to do about it was tell her partners the right answer. But it doesn't work that way. She may have had good intentions of wanting me and my friends to learn what to do, but all we got out of it was "dancing with this girl fucking sucks."
I still don't know what it takes to get others on board, but I know it won't happen through being a dick about it. If you're in the beginner class, then be kind to the beginners, and help them feel the fun so they're motivated to keep coming back. If you're too annoyed with the class, then maybe it's time to move on to the class where you belong. Advanced techniques will come with time, experience, and encouragement, not commands and enforcement.