This is a translation and partial rewrite of a piece I wrote in danish: Opdatering Android (PDF).
For most people with an Android unit it is still a riddle why there can be significant delay (months) between when Google starts rolling out an update for their own Nexus-units to the day when “all” units are updated.
Compared to Apple announcements of new iOS versions following the availability and download from all their users worldwide. It is clearly not server capacity and bandwidth that Google lacks. The reason for the delay (especially compared to iOS) must be found in the early days of Android/iOS and the overall marketing philosophy.
When Apple makes iOS they also make the hardware it runs on. They specify what types of cell network the devices are compatible with and even what type of SIM card is needed. In other words: Full control. Android is produced as a software-only platform to fit on every smartphone in the world. The environment in which it runs is to a higher degree pre-defined by external sources.
This means that the software developers that make Android has a very hard time testing – at least in every possible real world scenario. Testing on specific networks using specific units and every combination of these would require hardware and physical presence beyond the point where it is a realistic alternative. On iOS these combinations are very few and very testable. The natural conclusion of the Android development team is that they need to ship software. So they do a soft rollout where more and more users get access to the update. This is done based on (as far as I has been able to determinate) IMEI numbers to get a representative roll out among possible configurations in “the real world”. During it this way enables Google to halt the roll out if errors occur without the errors affecting too many people/phones. An example of this was when the 2.3.6 upgrade broke the wifi-tethering feature on some phones on some networks.
Seen from a software development perspective this is a dream come true. For most users this is a nightmare where waiting becomes a pain while those around you might get the upgrade before you do.