You all know how vocal I am about the fundamental flaw in the Android platform — the fragmentation.  No matter what Google tries to do, they cannot convince their hardware manufacturers to provide release support for anything but the shiniest newest devices.  I don’t fault the manufacturers because financially speaking, it would be a bad business decision for them to invest developers’ time and efforts into backporting the newest “dessert” to their older devices. Google has created an environment where equipment manufactures are responsible for functionality merges of enormous proportions.  Any developer will tell you that merging code is a costly and often buggy process.


At its heart, Google is a giant ad agency trying to get as many eyeballs looking at their ads as possible.  Google can’t enforce the OS upgrades so Google’s product (what some folks call “customers” — see cartoon at right; if you’re not paying for it, you are the product not the customer) is forced to suffer because they can’t upgrade and obtain the latest and greatest features or important bug and security fixes.  And don’t forget, chances are good that you know someone with an Android phone, so your personal information on their device is in the mix as well.

Developers suffer because they need to support such an insurmountable fragmented ecosystem. For many small businesses, Android development is prohibitively expensive with little financial reward.

That’s why I was so excited to come across a plan that finally articles how Google it intends to rectify this fatal flaw with the too open mobile device platform. Do they need to virtually abandon the open-ness which they so vocally claim was superior?  Yes — at least a little bit.  Is this a bad thing? NO!  Without a unifying vision and cohesive experience, manufactures, “customers” and developers are all made to suffer and you end up with the lowest possible denominator every time.  By centralizing control of the critical aspects and drastically reducing the complexity of what must be rolled out, they might actually be able to turn the fragmentation issue around.  Unfortunately it’ll take a couple of years to ripple through the ecosystem as all the lion’s share of today’s non-upgradeable devices need to slowly be retired through damage or upgrades.  It’s an exciting start to say the least, and who knows, eventually I might even need to add an Android category to this blog…

…oh and hey, what’s that?  Microsoft bought Nokia to also gain tighter control of hardware and software integration? Gee there might be something to that after all.


NSA code in Android OS

I thought the comic from the Joy of Tech was fairly cute and didn’t expect it to actually be true. After a bit of searching, it seems to be fairly well corroborated:

I found this quote from Business Week to be particularly interesting…

Through its open-source Android project, Google has agreed to incorporate code, first developed by the agency in 2011, into future versions of its mobile operating system, which according to market researcher IDC runs on three-quarters of the smartphones shipped globally in the first quarter. NSA officials say their code, known as Security Enhancements for Android, isolates apps to prevent hackers and marketers from gaining access to personal or corporate data stored on a device. Eventually all new phones, tablets, televisions, cars, and other devices that rely on Android will include NSA code, agency spokeswoman Vanee’ Vines said in an e-mailed statement.

Naturally, this made me wonder if the code does anything more than just make the devices more secure. I’d be curious to know if anyone in the Android community has actually examined the code to see if it has any hidden surprises. It also looks as though Apple doesn’t accept source code from government agencies… so there’s that.

I’m a big fan of open source for situations where it is appropriate — and many great technologies are developed this way. WordPress and its vast plugin community is a perfect example. The main core functionality is meticulously curated by a single organization; yet anyone can contribute to the project. Code contributions are considered, integrated, tested and then potentially approved into the platform (or not). This “Linux-like Benevolent Dictator” approach works well because there exists one ruling body to enforce and control a universally consistent distributable version of the software.

This approach breaks down if core code is modified because responsibility for upkeep of the code base transitions to the party modifying it. Updates cannot be deployed without merging or reapplying expensive changes. Developing for a branched version is no longer standard and when left unchecked, complicates the entire landscape for developers because of the potential for mind blowing fragmentation. While orthogonal updates are good (plugins/apps), taking ownership of a vast codebase is generally not so good; especially from a cost perspective where unanticipated support costs can easily outweigh the revenue and make it cost prohibitive to keep the branch up to date. In the case of WordPress, this happens when a developer doesn’t respect the boundaries with core code — these folks are pretty universally considered sloppy. With Android, these are the phone manufacturers that alter the core OS for their devices and subsequently fail to maintain the software. The OEMs have little choice but to take ownership of the support since tent-pole features like Email and Calendar are not even included as part of the core Android Framework.

An environment that requires each manufacturer assumes such a level of support for a framework they didn’t create leads to a fragmented, unmanageable ecosystem which punishes application developers and end users alike. In this muddied landscape, the NSA has just as much right and reason to contribute to the codebase as any other organization — and hey, at least they’re contributing, right? Just make sure you understand that when choosing your next mobile device.