Remember that contracts used to be 2 years, which these days is a pretty long time when it comes to a device's lifecycle. When I was with Verizon, I had a Razr Maxx that started to slow down excessively at around the 18 month mark, despite multiple cache wipes and even factory resets. When I wanted to upgrade my phone with the upgrade discount (which had been traditionally at 18 months), I was told I couldn't, because they had recently increased the wait time to 2 years before you could get the upgrade discount. So my options were to stay with a poorly functioning phone for 6 months until I could upgrade at a discount, upgrade to a new phone from Verizon at full price (they gave this loyal 14 year customer no special consideration whatsoever), or ditch them and go to a different carrier with no contract. Guess which one I picked?
T-Mobile's no contract service has been a breath of fresh air. It's just nice to know that if for some reason I become dissatisfied, then I can leave very easily and try some other carrier. I have a Nexus 5, so the price was significantly less than the typical flagship from Samsung or HTC, so the whole subsidization issue didn't affect me directly. And keep in mind that the subsidization of the phone also means that you get tons of bloatware. Sure, you can remove it by rooting, but not everyone feels comfortable doing it or wants to do it.
03-11-2015 10:12 PM