With so many great mobile operating systems out there, we often get asked “Why don’t you support my OS?” Like my previous post about upgrades, I hope this one will help shed some light on the challenges of supporting an operating system!
We get requests for Mac, Blackberry, Symbian, and Linux versions of our software every day. These are all great operating systems and they have a lot to offer. In fact we’d love to offer our products on all of these OS’s. Unfortunately, there are some big challenges!
New Development Environment
That’s a fancy way of saying that we’d have to write the program from scratch! Each OS requires us to write programs with a different set of tools. What is more, for some OS’s you need to write different versions for each variant of the core OS. Our programmers can certainly pull this off, but it means a major investment in time and resources.
As soon as we venture into a new OS we have to outfit ourselves with the devices to test on AND for our support staff. Emulators (programs that will fake the OS on your Windows PC so you can run software) exist but unfortunately these are not 100% reliable. To release software that really works well you have to test on a real device.
Writing updates and upgrades requires more and more time with each OS you add. So when we add a new feature to one device, we have to add it to the other devices, and on each device the feature has to be added in a different way since each device has a different development environment. Suddenly, the time between upgrades gets even longer!
Lots More Software Testing
We test like crazy here. We admit, we don’t catch every single bug, but we like to think we do a great job of testing. For instance, with every major release we individually check every field on every card type in eWallet to verify that it accepts and retains data. We do this on every major device and OS variation of every OS we support. For instance, on Pocket PC we need to check: 2003 low res devices (portrait mode), 2003 low res devices (landscape mode), 2003 high res devices (portrait mode), 2003 high res devices (landscape mode), 5.0 high res portrait, 5.0 high res landscape, 5.0 square screen. This is just a tiny example but I think it shows the complexity of fully testing a piece of software.
Our support staff has to be up to date on every device we support. They need to know how they work, how the software works on them, and which device runs which OS.
All of our resellers need to get the additional versions, marketing materials have to get prepared, and more.
I haven’t hit every issue here but I’m willing to bet you get the idea at this point.
Boo hoo! It’s hard. So what?
Good question, and this brings us to the main issue. We can support other operating systems and devices. We’ve got some very talented people here and we could definitely pull it off.
The problem is that we, like almost every other company around, have limited resources (people, time, money). Supporting an additional OS means time that we can’t spend working on the OS’s we already support. It means time away from new software projects. It means thinning our focus.
So in the meantime, we will continue focusing on creating the very best products we can for Windows, Windows Mobile, and Palm OS. We may still offer support for other OS’s in the future, but for now we want to stay focused so that we can offer excellent products that meet our own high standards.