Software Version Complexities

Today I had an experience that caught me off guard. I recently purchased a Cingular/AT&T Broadband adapter for my laptop. I do really love it … well … after I got it working.

One of the initial issues that I had was that the CD ROM that came with the Cingular package was *WAY* out of date. It dated back almost 12-18 months, from what the technical support person told me. When I bought the card and went to install, I never thought to check if the CD ROM contained current software … I just put it in and ran the installer.  That was is huge error on my part as the old drivers caused all sorts of problems with my laptop.  Three days later I was back up and running … with the new version of the software that I downloaded from the Internet.

Well, my problem today was that every now and then the broadband card would lock up.  It would just stop working.  I couldn’t “disconnect” or “reset” the AT&T software either.  I found that if I ejected the card, and then re-inserted it things would again work … for a while.  After going through several days with this routine, I started to wonder about the firmware in the PCMCIA card.  I did a little searching on the Internet, and sure enough found a Sierra Wireless 875 firmware update program.  I followed the instructions and ran the program … which proceeded to update my firmware from v1.0.0 to v1.7.8!

What really amazes me about this whole situation is the poor software installation design and coding, along with the pitiful state of AT&T automated support systems.  As a software architect, and also a business owner, I am always looking for ways to improve customer experiences, decrease support costs, and automate everything that I can.  In this day and age I can’t believe that AT&T isn’t looking to do the same things!

Anyone who runs Windows has experienced Windows Update.  Now I know that lots of people will bitch and moan and whine about Microsoft, however I will argue that Windows Update – which has been evolving for almost a decade – is a marvel of automated software updating.  If you stop and think that Microsoft can drop a patch out to their servers and update millions of computers across the globe in a matter of hours or days is pretty incredible.  And for those people who want to complain about it, the key here is that any software developer could add a comparable or better solution to their software at any time!

In my mind, the AT&T installation CD ROM could have asked me if I wanted to have it check the Internet for newer versions.  But it didn’t.  It also could have – upon installation – checked the firmware on my card, and let me know that there was a suggested update for the card.  But it didn’t.  Every time that I put the card in and run the AT&T Connection Manager software, it could see if it had checked for updates in the last day or week, and automatically check in with their servers and let me know there are new versions available.

In this day and age, most computer users are getting very familiar with the automated update programs … even Dell has instituted a very impressive one that I now have on my new laptop.  In the last couple of weeks it even told me about a new version of the BIOS for my laptop … and handled the download and installation.  A while ago I launched iTunes … and it told me there was a new version … and handled the update.  And yes … Windows told me about some new patches and automatically downloaded and installed them.

I’m always shocked when I see a company that employs talented product management and software developers who seem to have no clue about how to integrate this automatic update functionality.  AT&T?  Sierra Wireless?  You have to be kidding me … I even had clicked the little menu item about checking for updates … but couldn’t decode the landing page I was taken to.  No … I do not want to read a web page about updates … I want you – the software developer – to simply implement some code that checks with my machine, and then your servers, and lets me know there are updates to apply.  I then want your software to nicely handle the update … and yes, even tell me to reboot if I really have to.

As for their business?  They would probably see less technical support calls (two from me … one lasting almost an hour!), more customer satisfaction (I’m still a little pissed off about what I had to go through!), and even get a bunch of analytics about their user base, what versions are out there, when they are using the software, etc.

I believe that as we continue to embrace technology, and software continues to evolve, the winners are going to be companies that create products that are easier to maintain and that provide an improved customer experience.  If you are a software developer, you might consider how you can reduce the software version complexities … or make them go away completely!  It’s all very possible.

Leave a Reply