A big challenge developers face are requirements given to them by OEMs (the people that make your hardware) and demands from folks like Microsoft and Palmsource. There are times when these requirements conflict with what we want to do or with what customers tell us they are looking for. Microsoft just put up a great blog post about one of these requirements (the missing Exit feature in Windows Mobile discussed at the Windows Mobile Blog).
Having read that, I figured I would share a developer perspective on this often frustrating topic…
So the easy answer is to just ignore the requirements. I mean, we’re doing this for the customer after all so why would we include some annoying feature just because we’re told to? Isn’t it customer purchases that keep us in business?
Wellll, sort of.
The problem is that in order to get those sales, there are a lot things that have to happen in the background. A big one, is getting that vital stamp of approval from Microsoft, Verizon, or whoever is sending down the requirements, and you only get that stamp if you do what they want.
So why does this matter? Glad you asked!
There are a bunch of reason but here are a few from the top of the list:
- Certain online stores require application approval to get listed. No stamp of approval and you don’t get listed, or if you do, you get the second balcony seat with an obstructed view.
- If you want a lucrative ‘in ROM’ deal (that is, the application comes installed on every device the OEM makes) you have to follow their rules. The OEMs only play with folks who are on “their team.”
- Large volume purchasers may avoid ‘non-approved’ applications because if the application couldn’t get approval, they don’t feel that they can trust it.
There are plenty of other examples but you probably get the idea.
The Biggest Reason
There is, however, a bigger reason.
We need the Big Guys to like us.
OK, maybe I’m sounding a bit like the high school outcast longing for the approval of the in-crowd, but the fact of the matter is that we gain access to a LOT of support by going along with the Big Guys’ game.
Here are some examples. Let’s say an OEM is about to make a major change to their hardware. Do you think they tell everybody in advance? Or just their “friends”. If that happens and we don’t know, our competitor now has a working version (because they played by the rules) and we don’t, leaving us in the dust.
Or perhaps an OS developer has decided to chop out some bit of code our applications depend on. If we haven’t played by their rules, they have no reason to let us in on this. When the OS update comes out our product suddenly crashes on every updated device.
Or maybe it’s just as simple as an oddity in the OS that we can’t figure out how to work around. By staying on the side of the Big Guys we have the opportunity to contact them and say “Hey…how do we make this work?” You only get those opportunities if you’ve been going along with their game.
In each of these cases we take a blow to sales if we lose the Big Guys’ support, and if there are too many of these blows we end up being one more memory in the sea of dead Mobile Software developers.
And this matters to our customers because if we’re out of business that means no more upgrades, no more support, and no more new software from a company many people have come to depend on.
So that’s why our Pocket PC applications don’t include an Exit option, our WM 5.0 applications now use the two menu system without toolbar icons, and our Palm applications have Unfiled categories. Maybe it isn’t the way we would have done things, but what it does is allow us to continue making enough money to stay in the software business. It’s part of the reason that over 9 years after we opened our doors, we’re still coming out with updates, offering top quality support to our customers, and producing great new applications for mobile devices.
PS: And don’t tell Microsoft, but clicking CTRL+Q on your Pocket PCs onscreen keyboard or tapping 7 in the About screen of our software on a Smartphone, will “truly” Exit most of our products! 🙂