"Write Once…" is Anti-Customer

Just as in the ’90s, there’s a bunch of hype these days around solving the cross-platform development problem. Mobile platform fragmentation is killing developers, and if only every device supported some common language or technology engine we could all Write Once and Run Anywhere.

If only.

WORA was, is, and always will be, a fallacy. WORA reminds me of the mole in whack-a-mole. It just keeps popping up and the realities of competing platform vendors keep whacking it back down. What drives me crazy is not the “Run Anywhere” part that most people throw out and replace with something else (like “Optimize Everywhere” , “Suck Everywhere”,  “Test Everywhere”, or “Outsource the optimization“).

It is the “Write once…” part that’s the most dangerous. We all wish the world was rainbows and unicorns, and “Write once…” implies that there is a world where you can actually write an app once and it will run on all devices. But this is precisely the fantasy that the platform vendors will never allow to become reality. Stop asking for it.

Mobile fragmentation is going to get significantly worse over the next few years. While this fragmentation will be bad for end users in some cases, it will be particularly bad for developers.”
Me on LockerGnome, Oct 22, 2012

HTML5 is awesome in many ways. If applied judiciously, it can be a great technology and tool. As a tool, it can absolutely be used to reduce the amount of platform specific code you have to write.  But it is not a starting place. Starting with HTML5 is the most customer unfriendly thing a developer can do.

“We start with the customer and we work backward” – Jeff Bezos

“… you gotta start with the customer experience and work backwards to the technology.” – Steve Jobs

Like many ‘solutions’ in our industry the “Hey, write it once in in HTML5 and it will run anywhere” story didn’t actually start with the end-user customer. It started with idealistic thoughts about technology. It was then turned into snake oil for developers.

Not only is  the “build a mobile app that hosts a web view that contains HTML5″ approach bass-ackwards, it is a recipe for execution disaster. Yes, there are examples of teams that have built great apps using this technique, but if you actually look at what they did, they focused on their experience first and then made the technology work. What happens when the shop starts with “we gotta use HTML5 running in a UIWebView” is initial euphoria over productivity, followed by incredible pain doing the final 20%.

The problem is each major platform has its own UI model, its own model for how a web view is hosted, its own HTML rendering engine, and its own JavaScript engine. These  inter-platform differences mean that not only is the platform-specific code unique, but the interactions between that code and the code running within the web view becomes device specific. And to make matters worse intra-platform fragmentation, particularly on the platform with the largest number of users, Android, is so bad that this “Write Once..” approach provides no help.

The father of WORA: James GoslingI blame James Gosling. He foisted Java on us and as a result Sun coined the term Write Once Run Anywhere. (Joking!)

Developers really want to believe it is possible to “Write once…”.  They also really want to believe that more threads will help. But we all know they just make the problems worse. Just as we’ve all grown to accept that starting with “make it multi-threaded” is evil, we need to accept “Write once…” is evil.

There is no “Write once…”. I wish there were. I know you wish there were too. But I wish my daughter had a baby unicorn to ride too.

There is, however, “Focus on creating the best possible user experience on each device and try to get as much code re-use as you can along the way.”

Focus on the experience, try to get code re-use.

Not as catchy, but far, far, more realistic. And helpful.

Edit: February 22, 2013 – Shortened title to make it less inflammatory.

© Charlie Kindel. All Rights Reserved.

Bubbly Time: MileLogr has its first, real, paying customers!

Champagne GlowWhen we launched MileLogr (www.milelogr.com) yesterday we didn’t know how long it would be before the first real customer actually paid us for a report.

It happened today! We have monies!

It is time for a serious glass of champagne!

We got some great press on the launch too.  Todd Bishop of Geekwire wrote:

The service, called MileLogr, works in conjunction with Google, Microsoft, Yahoo and Apple calendars, creating a detailed mileage report based on the location of meetings as noted in each user’s calendar.  One of the big selling points is that it works retroactively, pulling the information from a calendar even if you weren’t specifically tracking your mileage last year.

And Nick Wingfield of the New York Times wrote:

…it had the smarts to calculate the length of a trip even if I didn’t give it an address. For example, I set up a recurring weekly meeting at Microsoft, without supplying the company’s location in Redmond, Wash., about 20 miles from where I live in Seattle. It figured out on its own where Microsoft was located by doing a search of online mapping services. (The chief executive of BizLogr, the company behind MileLogr, is Charlie Kindel, a former longer time Microsoft manager and a respected blogger on technology.)

An awesome launch! Now it’s time to iterate, iterate  and iterate and please thousands of customers like the early ones!

If you forgot to track your mileage last year MileLogr can save you thousands by figuring out where you drove from your calendar. Check it out at www.milelogr.com.

© Charlie Kindel. All Rights Reserved.

Why Nobody Can Copy Apple

Horace Dediu has written another brilliant piece titled “Why doesn’t anybody copy Apple?”. As he points out, Apple is fairly unique in its command of vertical integration and many people point to that as the “why”. However, Horace also admits this can’t be the sole reason and he is unable to explain what that reason could be. I think I know.

Tim Cook refers to integration and a great team as unique Apple advantages (but also note the references to magic and belief.)

Apple’s products are unique not on their feature merits, but because of the way they are conceived, designed, built, sourced, manufactured, shipped, marketed, sold, opened, held, and used. This is integration taken to the extreme and it would be difficult for any company to replicate.

It’s a better explanation but it is still hard to understand why nobody copies this approach. Integration is something that can take a long time, but it is possible with a Herculean effort. A few companies are starting to make moves in that direction (e.g. Microsoft.) But efforts are half-hearted. There is no “move the Earth” panic to become an integrated company from Samsung, Google or Microsoft.

I completely agree with all this: Replicating Apple’s vertical integration is a hard problem, but not an intractable one for the Microsoft & Google’s of the world.

I assert there’s something else that makes Apple is unique amongst its (asymmetric) competitors (e.g. Google, MS, Samsung):

It only focuses on one customer: The Consumer.

In my experience, the behaviors and culture of an organization (large or small) that focuses on the Consumer as a customer is diametrically incompatible with the behaviors and culture of an organization that focuses on Business as a customer.

I feel strongly that this is a key reason Microsoft’s products are often good, but not excellent; the consumer ones and the business ones. This is why Google will never be able to beat Apple at Apple’s game: Google’s customer focus is split between the advertiser and consumer.

The behaviors of organization, which are really driven by the attitudes, actions, priorities of the people, define what the organization produces. The behaviors required to delight the consumer are simply at odds with the behaviors required to delight businesses. You cannot do both simultaneously in a single organization and be excellent.

© Charlie Kindel. All Rights Reserved.

1929 Jennings ‘Dutch Boy’ Quarter Play Slot Machine

In the ’50s my father & grandfather came across about a dozen slot machines that had been unearthed from a building excavation in Chicago. Out of the pile, they were able to restore a couple of them.

I remember my grandfather’s at their house in Grand Rapids. It was a nickel based unit and he always had a jar of nickels next to it.

We had a $.25 based machine. When I was a kid, my dad gave me the job of keeping it running. This basically entailed removing jammed coins that one of my older sister’s had forced into it and occasionally oiling things.

Last spring when my mom passed away, I finally took possession of the machine. It had been sitting in storage for about 5 years. It required a deep cleaning, but otherwise is still in great shape.

I present to you an amazing piece of mechanical workmanship, a “1929 Ode D Jennings Dutch Boy Quarter Play slot machine”:


More photos here: http://www.flickr.com/photos/ckindel/sets/72157629446309168/

© Charlie Kindel. All Rights Reserved.