Microsoft, like many other companies, was caught off guard when the iPhone came out. They released WM6 around the same time the first iPhone was announced, WM6.5 came out 2.5 years later, after the iPhone 3GS was already out. So it took them two and a half years to release an outdated OS update and in the same time frame, Apple achieved a smartphone that was deemed affordable by many who resisted the previous models. I was in NYC when it launched, a lot of hold outs at work who for months said they will not switch to the iPhone came in with the 3GS in the first few weeks after it’s release.
WM6.5 was the fastest solution the could get out but it was still the old business oriented OS no one wanted. WP7 was the bigger effort that would make their OS suitable for consumers and WP8 was the real solution they wanted but couldn’t get out in time. They could have waited for 8 to be ready, just like Blackberry waited with BB10, it’s not looking so great for them.
Read our rant Why Windows Phone sucks so much?
I remember a lot of complaints about missing features with the iPhone. Apple was ridiculed for the lack of copy-paste for a while. Implementing all those small features users want still takes time. I also remember Android had a serious apps problem. All the apps were on iOS, and almost non on Android. Their marketing was also bad until Verizon started the Droid campaign.
Catching up to Apple and Google will take time, this won’t happen over night. Microsoft, unlike Blackberry, has the cash to be patient with it.