|No such thing as a small change|
*sigh* So it's not just me. ;-)
Seriously though, I have been there and it wasn't much fun. Part of it is personality, some people are just too loner to work effectively as a team. Part of it is eclecticness, the people who you deal with aren't on top of their own issues so arent going to make much of an effort to even think about yours. Even if it helps them.
After a long time of frustration I found a few approaches that improved the odds. One was to clearly demonstrate that something horrible wouldn't have happend if they had used my modules (or just as likely a CPAN module I had suggested). Saying in a meeting "I hate to say it, but I published a module that would have caught that problem, but nobody bothered to use it, anyway, why don't you use it now and problem solved?" can do wonders. :-)
Another was to make the code so simple and easy to use that it was hard to justify using anything else. I found that the more time I put into the interface of my code the more likely they would use it. Hand rolled imports may have a bad reputation, but the import() interface to a module presents a perfect place to add syntactic sugar that makes a module so much more palettable. Many commonly used and popular modules have hand rolled interfaces for exactly this reason. Comprehensive reference and samples in the documentation really helped as well.
A third way that worked sometimes was occasionally to just replace chunks of code they had written with a wrapper that called out to a module. Eventually they would end up in the right part of the code and notice a comment along the lines of "# Someone reinvented the wheel!" and the new (and usually quite small) code. They might get mad, but its hard to argue when you can say "but you've been using it for months!"
But the fact remains that you can lead a horse to water, but you can't make em drink.
Er I have to add one last story: I worked with another guy who absolutely refused to let anybody work on his code or access his boxes, working with him was practically impossible, he wouldn't help you and wouldn't let you help him. Eventually he had to be replaced and when we finally looked at his code it was the nastiest mess I had ever seen. I think the reason he was so solitary was the fear that someone might discover his stuff was hanging by a thread. Maybe your colleagues don't want to use your stuff because they see you and your methods as a threat. If they have to use your stuff it might show that they aren't quite the hotshots they would like the managment to believe.
Anyway, best of luck.
<Elian> And I do take a kind of perverse pleasure in having an OO assembly language...