I'm a lead software developer in a new project and I have a luxury of writing something from scratch. I started with prototyping an application that slowly turns out into a bigger product. I'm an engineer and I don't have any direct reports and I like it this way.
One thing that I'm still struggling (and after years of experience I learned more about this personal flaw) is influencing others. Somehow even if I propose something good apparently I'm doing it in a wrong way, so sometimes people don't listen and it is painful for me to see things are turning out to be much worse than I thought. To give a simple example I had a hard time convincing one engineer to reduce code duplication by introducing a common module. Another time it was trying to persuade my colleague to use dependency inversion-of-control container instead of all-singleton business logic.
In my early years as an engineer I attributed those failures to other people's personalities but after seeing this pattern repeating over and over again in different circumstances with different people I come to believe that problem is actually in me and I need to change something in myself to be more persuasive. I hope that I'm not the only one who had to overcome this personal flaw and I wonder what is the good strategy of approaching this. I think I'm oftentimes seen as being maybe overly reclusive, but somehow I feel that it'd be very inefficient if not hopeless to rebuild myself into more extrovert nature, anyhow it'd be very unnatural to me.
I see that some people - and Linus is a great example - developed a very straight-to-the-point way of influencing architecture and good coding style but this approach is unlikely to flourish in the world of commercial software development, not in the big companies at the very least.
If somebody overcame this flaw in the past, I'd be glad to hear your story.