One of the advantages of the current bread of smart phones is they are field upgradable. As so much of their functionality is basically software it makes no sense to treat the phone as a static product once it leaves the factory gates. Coupled with the rapid development of the Android OS means that updating the system firmware can result in a much improved experience without having to buy new hardware.
My phone, an HTC Hero, was one of the second generation Android phones. It's a nice phone with a solid feel and nice touchscreen and display. However the default system software is the now rather old Android 1.5. It has been a continual source of frustration watching other phones get their updates to more recent versions while HTC continually slipped the release dates. As the base OS is all open source one might wonder what took them so long. Part of it might be due to the need to integrate HTC's Sense layer with Android. A large part is no doubt due to the fact that by not submitting changes to the kernel upstream the company gets to keep the burden of porting the drivers to a newer kernels. It's not entirely HTC's fault, Google can take some of the blame for developing a power management infrastructure behind closed doors and being surprised the kernel developers weren't going to just dump Wavelocks into their carefully engineered kernel. Eventually the embedded world will wake up to the cost of not working with upstream but I predict it will be a while yet.
The greatest reason is most likely that the bulk of HTC's engineering resources will be working on the software for their latest phones and therefore making older phones work better is lower in their priorities. Unfortunately without jumping through hoops to install community firmware I was dependant on HTC to provide the update. While I was relaxed about getting a locked down phone (compared to a locked down PC) the experience has reminded me there are other reasons to prefer open systems than just a desire to hack about on them.
Unfortunately the promised Over The Air (OTA) update never arrived on my phone so I had to bootstrap the upgrade by manually updating to the next minor version. This took me two days of fighting with various flavours of Windows (install, un-install, re-install in a different order, arrggghg!) and HTC's rather crappy update tool. However once done the notification duly arrived and 3 phone reboots later I had a brand new spiffy Android 2.1 phone.
First impressions are good. The responsiveness seems a lot better and the Google applications all offer significant improvements to the 1.5 based ones. While the hardware has always supported multi-touch the older Android release couldn't take advantage of it. Now I can quickly switch between the many work spaces with a quick pinching motion. It really does feel like getting a new phone.