Doing Software Right, from the iPhone to SOA Governance

Well, I’ve unplunged. Can­celed AT&T and went back to T-Mobile. The whole expe­ri­ence has enough mate­r­ial for sev­eral posts. I ini­tially wanted to write about how I made the deci­sion to return to T-Mobile, a com­pany I don’t like instead of going to Ver­i­zon. And, maybe I will.

I’ve been with a new Black­berry Curve 8900 since Tues­day the 2nd. And, while I’d like to write about my per­cep­tion of the pros and cons, right now I’d like to focus on one thing as it relates to enter­prise software.

Often things that seem ridicu­lously sim­ple, are quite hard. In fact, these are the sorts of things you don’t even think about until it’s too late. And, then you learn to live with it, chalk­ing it up to “tech­nol­ogy being too complex”.

In this case, one of the things I miss most about the iPhone are the con­sis­tent fonts. My god! I can hardly read the black­berry. I’ve set the font, only all my apps are laugh­ing at me. They’re say­ing… “how cute, he’s set the font in pref­er­ences think­ing we’re going to listen”.

Even in RIM’s own appli­ca­tions, font con­sis­tency is hor­ri­ble. Even in their core app, the mes­sag­ing appli­ca­tion. I’m quite sure it has to do with the “new” HTML email capa­bil­ity… but to me that’s no excuse. And, I can’t zoom in. It’s frus­trat­ing as hell and I don’t under­stand it.

And, their browser. Oh my! It has this tiny lit­tle mouse (great screen res­o­lu­tion by the way), but click­ing on it is sure to move the mouse away from the link you’re try­ing to click on! I’ve already hid­den the browser from view. No plans to use it unless another app launches it (sev­eral do that, includ­ing Ever­note and Face­book — so sad).

How does this relate to enter­prise soft­ware? Well… I see the iPhone as hav­ing done some things really right at the expense of oth­ers that most peo­ple would call “basic require­ments”. Cut-and-paste being one exam­ple. I’m sure they could have fig­ured that out sooner, but had it come at the expense of the beau­ti­ful expe­ri­ence that is the iPhone inter­face, I know they made the right decision.

I think you would be hard to find a sin­gle enter­prise appli­ca­tion devel­op­ment team that is will­ing to make that sort of hard deci­sion — post­pon­ing “crit­i­cal” fea­tures in def­er­ence to cre­at­ing the per­fect soft­ware expe­ri­ence first. Just look at any sort of retail ter­mi­nal expe­ri­ence (air­lines, Kinko’s, restau­rants, etc.). Ask the peo­ple that use these ter­mi­nals what their expe­ri­ence is. I do. the most com­mon response is a pair of eyes rolled back in their head.

This is def­i­nitely a short-term vs long-term view­point prob­lem. Appar­ently, Apple has taken a long-term view of the mar­ket, and is patiently shap­ing the future. RIM is going to run out of steam. In fact, I’d argue they have. They’ve pushed their cur­rent archi­tec­ture as far as it will go, and they’re in need of some­thing more. Last time that hap­pened, Palm was dec­i­mated by RIM themselves.

Which makes for an inter­est­ing final point back to my “day job.”

Our Actional prod­uct has the “right” archi­tec­ture. It scales to enter­prise scale. It per­forms in line with some of the high­est per­form­ing envi­ron­ments out there. We are an order of mag­ni­tude or more bet­ter than our most pop­u­lar com­peti­tor in met­rics like CPU uti­liza­tion, latency, and mes­sage through­put mea­sure­ments, as well as time-to-implementation. Over the years, per­haps we’ve been caught behind the UI curve. A typ­i­cal good archi­tec­ture expe­ri­ence soft­ened by a UI that hasn’t always incor­po­rated the lat­est tech­nol­ogy. When we first launched the prod­uct in early ’03, we had to use a heavy .NET client because the browser couldn’t do what we wanted. It took us a while to get off that, though we’ve been off it for 4 years if my rec­ol­lec­tion is solid. Now, our com­peti­tors actu­ally hit us on col­lect­ing “too much infor­ma­tion” say­ing we’re hard to use. There is some truth to that. Though of course who wants to build a crappy prod­uct that doesn’t per­form or scale well just so that there’s less infor­ma­tion on the con­sole to con­fuse admin­is­tra­tors? It reminds me of the key-layout on type­writ­ers. You know why it’s so con­vo­luted? It’s because early typ­ists would type so fast on a common-sense key lay­out that the mechan­ics would jam. To slow typ­ists down, they mixed the keys up… and that’s what we’re stuck with now! I’d rather they’d just fixed the mechanics.

Other prod­ucts just don’t scale. They may have bells and whis­tles on the UI, but fun­da­men­tally are flawed. These fun­da­men­tal flaws may not show up at first, on small projects. But, try to scale them to the enter­prise, or run them in pro­duc­tion with­out expect­ing an impact on appli­ca­tion per­for­mance, and they sim­ply won’t work.

Just like my black­berry font preference.

PS The short of my T-Mobile selec­tion had to do with 3 key things. Using UMA, I can be assured of a sig­nal in my apart­ment, negat­ing any com­pelling ben­e­fit in favor of Ver­i­zon. There­fore, my abil­ity to choose any phone I want with T-Mobile made the dif­fer­ence (I’m a phone geek, and often import the lat­est in phone fash­ion from Europe to play). That along with cost made it a very quick deci­sion. (I guess I have writ­ten it up)