I've got a coworker/manager/stakeholder who is very conservative when it comes to adopting new technologies. I completely understand why: we have a lot of internal expertise with Java, MySQL/Postgres, and so on, they're well-established, and there's lots of good support for them.But technology evolves, and sometimes newer technologies are better suited to today's tasks. It makes sense, for example, to do heavy numeric processing in something like Python+Numpy. Some kinds of simple web sites are faster and easier to implement in Ruby/Rails. Processing hundreds of gigabytes of logs a day is well suited to a Hadoop M-R architecture.But I often encounter a lot of resistance to bringing new technologies into the mix, even when I think there's a strong case for it. The resistance even goes down to minor details, like using a heavy JavaScript front-end and web services rather than server-side heavy JSP for a recent project. The most common objection is that because we don't have significant expertise in the technology, it won't be maintainable if I'm not available to do it myself.How do you work with people like this to overcome these kinds of objections?
How do you convince coworkers/stakeholders to try new technologies?
management;technology;teamwork
The proof is, as they say, in the pudding. Sometimes you just have to do a sample implementation and make your case based off of that. You have to demonstrate that:The problem is better solved using something newThe solution is easier to maintainThe learning curve is minimalMoney will be saved through time being savedThe new technology has a small, but stable and helpful communityNew possibilities exist that did not beforeIf you take some time to show hard data, you'll at least see the adoption of something new or edgy declined based on technical merit more than preconception, and you might just get a compromise out of it. Perhaps you won't use Hadoop for this project, but getting it in front of people in a way that they can play and touch might make it a candidate for a future project.As you said, these things take time, and the criteria of maturity and support availability are extremely important considerations. Still, the more preconceptions you can dismiss with hard data, the better your chances will become.UpdateAs an aside, this approach is how I recently got my company to start using Redis instead of a combination of Memcache and temporary tables. I wrote a simple messaging system and demonstrated it within a matter of minutes, which replaced something much larger, slower and expensive in terms of resource use and maintenance.This showed higher ups the benefit I wanted to expressed, and also got our other developers curious enough to want to try it. Note, Redis isn't actually new or bleeding edge, but it is new to a lot of people. 