In his book Diffusion of Innovations Everett Rogers lists five factors in determining rate of adoption of an innovation.
First is the relative advantage of the innovation. This is not limited to objective improvements but also includes factors such as social prestige.
The second is compatibility with existing systems and values.
Third is complexity, especially perceived complexity.
The fourth is trialability, how easily someone can try out the innovation without making a commitment.
The fifth is observability, whether the advantages of the innovation are visible.
Innovators are often criticized for compatibility, for not making a larger break from the past. After Bjarne Stroustrup invented the C++ programming language, many people said he should have sacrificed compatibility with C in order to make C++ a better language. However, had he done so, C++ would not have become popular enough to gain the critics’ attention. As Stroustrup said in an interview, “There are just two kinds of languages: the ones everybody complains about and the ones nobody uses.”