Tuesday, July 22, 2014

What does the Apple/IBM partnership mean for the world of mobile?

On Tuesday, July 15th, at the end of trading, Apple and IBM announced a partnership to build iOS apps for businesses. I'm quite bullish on this move. Both companies have been languishing the past couple of years.

IBM does not have a good reputation among techies. (Trust me, I've worked with quite a few.) They do have very good relationships with higher up management who do not grok technology. IBM has a massive, talented sales force. A good friend of mine who I met at the University of Virginia, Darden School of business (WAHOOWA) just joined. This guy could sell ice to eskimos. But I digress. IBM brings enterprise software experience to the table, as well. Most of their systems are backend. They sell ERP systems, logistics management systems, CRM systems, databases, application servers (such as Websphere). Now, none of there software is best of breed, but the sell a lot of it thanks to their fantastic account management.

It's pretty obvious what Apple brings to the table. They bring a fantastic mobile experience as well as far and away the top brand in mobile. It is a luxury brand despite the fact that iPhones are ubiquitous. Apple also brings security. In the very young enterprise mobile market, there only two companies whose phones are secure enough to be allowed through Fortune 500 firewalls; Apple, and R.I.M (Blackberry). But the Blackberry is rapidly dying due to its poor U/X. Google won't be a competitor in the market in the foreseeable future. Android devices are too insecure. Google has given too much access to app developers. My contacts at Google say that won't change. Thus Google isn't a true competitor in the enterprise market.

Apple has nearly reached saturation in the domestic market. Nearly everyone in the U.S. owns a smartphone. 41.9% are iPhones. 52.1% are Android. The two OSs move up and down from time to time, but there's little growth there. Apple is pursuing an aggressive China strategy by partnering with China Mobile. Meanwhile Google's android OS is used far more broadly from set top boxes in China to drones in the US to dirt cheap smartphones in Africa. Google's position in frontier markets is very strong. Apple is unable to pursue this market without risking its premium brand. Instead it is pursuing higher margins and is focusing on the nouvelle bourgeoisie in the BRICs. Although this strategy is solid, it won't make the market sing.

So what growth strategies are available to Apple? Heisenberg-level geniuses are cooking up magic at 1 Infinite Loop in Cupertino, but despite much espionage and clairvoyance by Apple fanboys and bloggers, we don't know what new toys are on the way.

We DO know that Apple is making a major play in the mobile enterprise market.

The market is ripe. There are no apps for accessing internal corporate systems beyond email. Of course companies want their employees to be as productive as possible. They WANT to hand out iPhones which enable employees to work 24/7.

The interaction will work like this, IBM will sell these apps. Apple will write some. IBM will write some. They'll collaborate on some. Some will be standard. A secure shell app is a secure shell app is a secure shell app. Others will be custom development. For example, Exxon-Mobile might want a special app which will allow geologists to access its own system for tracking deposits. The important point is this:

IF A COMPANY WANTS COOL PRODUCTIVITY BOOSTING APPS IT WILL HAVE TO BUY IPHONES!!!

If that isn't an argument for buying Apple, I don't know what is.

When I heard about the news, I rushed to buy. I bought a lot.

I didn't buy any IBM. Why? Well my initial answer was that IBM isn't a good tech company and I didn't care to have them in my portfolio. But there's a better answer: IBM is most assuredly the junior partner. Apple could walk away and go to Oracle. Or depending on any the particular contract, it could partner with both. Or with SAP. Now IBM is probably a good play for the time being. Apple is unlikely to get in bed with anyone else until the initial partnership agreement is fulfilled. Still, Apple is definitely in charge.

So why hasn't the market reacted more strongly? I gave this tip to an anonymous family member who gave me a bad stock tip a while back. (I bought very little and then told him thanks for the tip. The stock took a nosedive.) It amused me that he quoted the efficient market hypothesis at me. So if this partnership so great, then why has AAPL lost a percent or two since the announcement?

Market confusion. I spoke with a couple of colleagues in the industry who didn't like this deal. They cited culture class, IBM's poor reputation in building quality software, Apple's inexperience with managing Enterprise contracts. Culture class is a problem. Other than that, this partnership provides a lot of synergy to the two companies. And by the time cultural problems really hurt Apple, it will have developed a lot of very close relationships with very big clients.

More and more business is moving onto mobile devices. People travel and have lives. They work more but sit at desks less. Microsoft owns desktop corporate IT. Apple and IBM will own mobile corporate IT.

Wednesday, June 18, 2014

App Ecosystem Architecture

Hello, my loyal, long-suffering, readers! Many apologies for not posting for sometime. I have been busy building an app monetization service: Kundalera. Okay, so the name of the company is bad. The website is basic. Heck even the product is small. What am I gonna do? I'm building this basically by my self. (I do have a couple of "helpers".) I'm also moving across the country and looking for a day job. (The company will be really cool if I ever get funding.) The idea behind Kundalera is to provide web services and an SDK for app monetization.

    There are a few parts to it:
  1. Improved billing services
  2. Improved user acquisition
  3. Novel app monetization models
  4. Some really cool apps

But enough about that right? It's boring and no one wants to hear my secret plans to take over the world anyway. On to the good stuff: SOFTWARE ARCHITECTURE:

The app ecosystem is broken. Period. Certainly it is more broken on Android than on iOS, but lets put Apple aside for the moment. If you search "android app ecosystem broken" on Google, you get 16 million results.

It is broken for many reasons. Foremost among them are security and stability. Android runs on a very wide variety of hardware including many non-smartphone platforms. This leads to development complexity for app developers accessing features such as disk storage and the cellular transmitter that iPhone developers don't get to touch. Now you can argue that it's a bad idea for app developers to do this, but Google has given them a hammer and they have smashed their thumbs and in turn the thumbs of all of their users. Users can opt not to give apps access to these low level resources, but then they don't have functional apps. And like the developers, if you give users a hammer...

Apple doesn't face this problem. It doesn't give developers access to these low level resources. They have kept the OS abstraction barrier intact whereas Google has allowed it to be broken. And why did this happen? Google came to the party two years late. The first iPhone was released in 2007, the first Android phone in 2009. Furthermore, the original Android phones were primitive creatures compared to the quite sophisticated iPhone. Google knew that the availability of apps for Android would make or break the success of the product, so it opened up the APIs giving developers access to these low level resources that they did not have on Apple. It worked. Developers developed tons of apps. People bought Android devices. Android is now the most popular mobile OS in the world. Other OSes without a vibrant app architectures (I'm looking at you Symbian, Blackberry, Windows Phone) are struggling at best.

The mobile world has become extremely app based. Many users don't use voice functionality and spend most of their day using a handful of apps. Meanwhile, the desktop/laptop world has become increasingly web based. Most users spend a large majority of their time using a web browser and browsing a handful of sites. Ironically, these are frequently the same sites whose apps they use when on their smartphones. This forces the sites to develop two entirely separate products. If they are smart, these companies share a lot of back-end services. Regardless, the vast difference in presentation layer technology increases maintenance costs a lot.

App architecture should look like web site architecture. The web browser is a sandbox that keeps malicious or inefficient sites from doing bad things to the User's computer. So why don't companies just create some new css or a slimmed pages and go with mobile web sites?

    Two reasons:
  1. Standard web-scripting languages don't allow the flexibility of app development languages
  2. App developers want home screen real estate in the form of an app icon

We can address these concerns by adopting a true Model View Controller architecture across platforms (web, various mobile flavors). The mobile OS providers should incorporate a transparent web browser into mobile OSs that will run 'apps'. This will effectively sandbox the apps in a web browser, keeping the user's device (more) secure from malicious/incompetent apps developers. Second, this will allow developers to write web applications that will then serve as apps.

But that only solves part of the problem. The mobile app stores have become the largest consumer software distribution centers in the world. But no problem. The installation of an app can simply download the static content to the device. This static content will be different than the static content from a web application. It will fit the form factor of the device and be more touch friendly. The dynamic content will then be provided by web service calls. This will encourage developers to write code in a more service based architecture.

And what about the richer interaction that apps provide? The browser consortiums must solve that problem. New, better, languages, and frameworks must be developed. (I for one would love to see JavaScript die. It is horrible bastardization of an Object Oriented and a procedural programming language, but that's another rant.)

Of course, developers will have to write their applications (at this point mobile apps and web apps) in order to be more functional offline. No more 404 pages. Rather, a normal UI, but one that may provide error messages regarding network connections upon attempts to access remote content. This would be a huge improvement for web applications as well.

There is one last problem. Many apps really do need access to phone primitives, lights, Bluetooth, etc. They belong in a special category: 'real' apps, i.e. those which truly run on top of the OS instead of the web browser sandbox proposed above. These should undergo a stringent review that the app developer must pay for in order to determine their safety/performance. This review needn't be done by the mobile OS provider, but could be done by an approved third party, much the same way that SSL certificate subjects are validated.

Android provides a fantastic open platform that has reeled in many app developers and it is now the leader in the mobile OS market (by number of devices). Apple's iPhone is far more locked down. It just plain does less, but it provides a more secure, reliable, consistent user experience. The adoption of the above recommendations would allow app developers to more easily develop for both platforms and provide a better user experience on both while improving reliability AND security.