Wednesday, October 28, 2009

Enterprise Mobility Development

Some of you might have read one of my previous posts in which I wrote that I had had to choose between mobile and enterprise development mostly for personal reasons. I was sorry to realize this because mobile is my passion, but I thought the change was inevitable. Now I don't.

It's a cliche that the job market is much bigger for enterprise developers than for mobile devs. That was one of the main reasons why I had to change area, too - not as if I didn't enjoy enterprise as well. The interesting thing I've just come to realize that there's a gap between the boundaries of the two areas: it's for people with knowledge on both (otherwise huge) areas. The opportunity is great for both kinds of developers coming from either direction, because it offers a way to reach out even more people.

Now you understand why I read an article the other day with great interest: it described the required skill set for an enterprise mobility developer. First, it just confirmed that my theory was right: there's a need for such people. Second, let me add some more points to the list provided. I could have extended the list on the original blog post, however, for that I should have had an account on that site which I was reluctant to create. Here's the list:

  • Bandwidth: I think it was network what the author really meant. Bandwidth really is one of the characteristics that one needs to pay attention to, but it's also worth mentioning different types of networks (from 2G to 3.5G, WiFi, VPN, etc.), their main characteristics (e,g IP address re-assignments, frequent network outage), roaming, etc.
  • Options for development: today's popular web development (very important to note that it's mostly applicable for smartphones only, thus not an option for the vast majority of mobile phones) vs native vs any other environments.
  • Testing: never-ever forget that emulator/simulator is not the same as the real hardware. Peculiarities of various networks also count (quality, reliability, QoS, etc.).
  • Option for cross-platform development: one company may target one platform at a time, however, it's also wise to plan ahead and build the foundation with the future in mind.
  • Deployment, maintenance: app stores vs downloadable install packages from own site. Keeping enterprise service and mobile client versions in sync so that they're always fully inter-operable. Auto-update. Etc.
  • Monetization, marketing: what I really mean here is making use of app stores as efficiently as possible. It's today's trend for mobile manufacturers to have their own stores and compete with carriers who would also like to monetize on this opportunity (by having their own stores). Sort of a war between vertical (manufacturers) and horizontal (carriers).

And I'm sure we've still missed a lot from the list. In any case, that was my two cents. :)



No comments: