The links in this post contain affiliate links and I will receive a small commission if you make a purchase after clicking on my link.
I'm a huge fan of Android. After purchasing the original iPhone as my first smartphone, every other smartphone since then has been Android. Whenever my 2 year contract is ready for renewal, I always purchase one the major flagship smartphones. The beauty of flagship smartphones are they always come with the latest Android OS version. But that is in my opinion (and many others) the biggest problem with Android.
When I purchased my latest Android smartphone from Motorola, the first generation Moto X, I figured that since Motorola was owned at the time by Google as a subsidiary, Motorola would have a high incentive to upgrade the OS in a timely manner. The Moto X came loaded with the latest and greatest, Ice Cream Sandwich. Since Lollipop was released on November 3, 2014, the high end Moto X smartphone still hasn't received an upgrade. It's been 5 months! This makes me rethink switching to the iPhone. Their process is simpler and spending money on the latest phone will at a minimum guarantee a fast OS upgrade. no more waiting!
So how does this all Android fragmentation happen? The process the Android OS vs iPhone OS is completely different. The Android OS upgrade model is far more complicate than the iPhone OS upgrade model.
To upgrade an Android phone, Google needs to first release an update to phone manufacturers. From there, the phone manufactures need to update the Android OS, very likely a custom upgrade for each phone (based on the various hardware specifications). But before an over-the-air update can be pushed out to consumers, wireless carriers make additional updates to apply their own customizations (such as carrier required apps) on top of manufacturer customizations.
To upgrade an iPhone, Apples releases the upgrades over-the-air directly to the consumers iPhones.
As you can see from above, the process to upgrade an Android phone is a long process that requires three parties (Google, Phone Manufacturer, Wireless Carrier). To make it worse, any one of the parties can deem your phone unsuitable for an upgrade. Additionally, phone manufacturer's are more inclined to update their latest flagship phones first, and are limited by resources to upgrade. The same problem applies to wireless carriers. So the time from Google releasing Android OS to an OS upgrade to an existing phone can be a long time.
For the iPhone, as long as Apple says your phone is compatible for an update, they immediately releases an OS upgrade. One reason for the efficiency is that Apple controls both the OS software and the hardware.
The release of major version of Android OS occur approximately once a year, so the odds an new Android OS upgrade is available is very high. See the major OS upgrade for major releases below (from Wikipedia):
Froyo (May 20, 2010)
Gingerbread (February 9, 2011)
Ice Cream Sandwich (December 16, 2011)
Jelly Bean (July 9, 2012)
KitKat (Oct 31, 2013)
Lollipop (November 3, 2014)
The advantage Google gains from giving phone manufacturers and wireless carriers the ability to customize the OS means a greater variety of phones that relates to more sales. On the other hand, there is only a handful of iPhones with similar specifications.