I am having a good discussion in the ALT.NET mailing list about how to get buy in from developers for advance concepts. From my point of view, this is based solely on making it easy, transparent and simple.
If you can set up a system that means that the zero friction path is also the path for good design, you are golden.
In other words,
A while ago I was asked what I think was a good quality for an architect. My reply was that he should set things up in such a way where the developers are bored.
That may sound... harsh to some, but I believe that we have enough complexity in our applications as it is. A success story is reducing the complexity to such a level that we focus on the business value, rather on the technical difficulties.
Good tools help, but only to a point, the environment should be setup in such a way that the easiest thing to do would be the right thing. That takes some work, I'll admit. But once it is set all the way up... you are golden.
I have this experience in my last three projects, where the environment was setup in such a way that taking advantage of IoC, AOP and ORM was simply the natural thing to do. All three projects have to deal with a fair amount of complexity, some of it technical and some business requirements. We rarely need to deal with the technical issues, they are buried and out of the way. (Well, I tell a lie, we built some on MS CRM, which means that the foundation is made of tissue paper and keeps crumbling under us. Don't use MS CRM, for anything other than an example how not to build software.)
This means that we can spend all the time actually producing business value. It also means that I have a lot of junior people on my team that can immediately make use of very advance concepts and produce good, solid software.