The first part of a new, large-scale overview article series on network function virtualization (NFV) was published recently on SDN central. It looks into the origins of NFV, which was devised independently by several IT firms to abstract network functions away from the proprietary hardware appliances that had to be purchased in order to use the functions.
The most interesting section of the article explores the differences and similarities between NFV and software-defined networking. They both go after some similar benefits, but they address different problem spaces as well. It doesn't seem like there will be a competition between the two strategies. I imagine that the more likely outcome is that both of these strategies will be used by large, forward-thinking IT firms.