Saturday, March 8, 2008

What do developers have in common with movie-goers?

Answer: Suspension of disbelief.

To explain, let's start here: Developers write code.

In so doing, we are by necessity required to use tools -- nearly always, tools written by other people. Those people may or may not share the specific philosophy we have about the art and science of software development. When they do share our views, we get tools that we really like; when they don't, we get tools we hate. Eventually, we develop a sort of self-preservation mentality that is best summarized as pragmatism: you'll forgive a tool vendor a rather shocking number of sins, if at the end of the day you can still get your work done. (You will, however, bitch and moan about it all the way -- and as for me, guilty as charged.)

There's a flip-side to that, though: if we CAN'T get our work done, we will hate you with the burning passion of a thousand suns.

This mentality quickly takes over your professional life, which for a developer like me becomes a pragmatic cynicism: we take a live and let live approach and will tolerate a lot of abuse -- but only up to a point. Cross a certain line, and you will lose us forever. For instance, we know that when a tool or platform vendor puts on a trade show that it's in their own shameless self-interest. But we also are aware that our interest is to a large degree also the vendor's interest, so we're willing to suspend our disbelief and attend anyway.

I say "suspension of disbelief", but I might more accurately say "suspension of fiery cynicism." Our "disbelief" is still lurking behind the scenes, ready to jump out and bite everyone in a fit of pique -- and woe be to he who lets it out.

Here's an example from my own experience. I used to own a Windows Mobile phone. I'm not normally a Windows kind of guy (quite to the contrary, in fact) but I suspended my disbelief and went to see what I could do. I quickly determined that there was a free version of DevStudio; hey, that's cool. However, I just as quickly learned that the WinMo development tools are not compatible with the free version of DevStudio. As far as I was concerned, I was being asked to pay for the privilege of developing (not even releasing!) an application for Microsoft's platform. Talk about an abrupt way to shatter my suspension of disbelief. I still have a bad taste in my mouth over that -- and I never even got a chance to try out the tools!

It's probably evident that I've got my share (perhaps more than my due share) of the developer's skepticism, so I know all too well that no matter what I do in my day job, I'd better be authentic. I truly understand what it means for a developer to suspend her disbelief on my behalf. Just the act of reading our docs is really quite a big deal: every developer I know always has something else she could be doing. Nothing I do -- docs, sample code, technical support, consulting -- will ever be perfect; but it had better, at the end of the day, help developers get the job done.

Once developers really buy in to a product, though, it's more than just a time commitment. In some lesser or greater way, they're putting their professional reputations on the line, if only to themselves. If I fail to honor his suspension of disbelief, the developer is always a little disappointed in himself -- even if no one else is.

It never feels good to be disappointed, so I take pride in helping to avoid that. Fortunately it's usually pretty easy (at least in theory): be open, be up-front, and be helpful.

Friday, March 7, 2008

Liberté, égalité, fraternité

From a certain perspective, there's nothing wrong with the mobile world today. Phones are getting more powerful, and can do lots of neat things. Sure, maybe developers have to jump through some hoops to get applications in the hands of users, but that shouldn't matter. A developer who knows deep down that he has a great idea will go the extra mile to get that application out there. Developers who aren't so sure won't bother, but that's okay since their apps are probably poor anyway. So these are all good things.


Obviously there are quite a few things wrong with that, and I don't really think anyone (or at least, anyone who's rational) would really say that; it's a straw-man argument I set up. However, I think there is a kernel of truth in there: a lot of people do think that some apps are more important than others. I'm referring to the fallacy of the "killer app".

The quest for the killer app can blind you to the real world, if you let it. True killer apps are exceptionally rare. For instance, what was the killer app for the web? Was it email? Was it mapping? Search maybe? How about social networking? With the possible (though arguable) exception of search, none of those are true killer apps. They were either "ports" of popular apps to the web, or else popular incremental additions. In fact, I assert that there's no clear killer app for the web[1] at all, yet few people would today argue that the web is not a viable application platform.

I really believe that the history of the web backs me up when I say that this quest for "special" apps is misguided. Trying to predict in advance what the best and most disruptive applications are is a chump's game. And if you're trying to predict (let alone encourage) disruption, the people who you least want to put in charge of that are by definition the people who stand to be disrupted.

That's why I think the current state of mobile isn't working. There is absolutely no reason to believe that the next big thing is more likely to come from a well-heeled, committed, industry insider than from a hobbyist with a spouse and two kids. Yet the current mobile world, with all its restrictions and certifications and fees, favors the former.

That's why I really love what we are trying to accomplish with Android. When I read posts by people working on the Android Developer Challenge, I get much more excited by the guy who says he works on his app after he puts his kids to bed, than I am by the guy who says he's just porting something for the Challenge. (And yes, I have seen both posts -- that's not just hyperbole.) That guy with the kids is in my opinion far more dedicated and likely to come up with something clever and practical than the latter. Yet he's also the guy who is least likely to want or be able to jump through the hoops necessary to get a signed application available for users to download -- $99 annual fee or not.

In other words, the best apps are the best apps, not the biggest or most "important". I look forward to an open mobile world where apps of any size and scope -- not just the ones with big money, biz-dev teams, and CxOs smarming it up on the golf course -- can land on my phone.

[1] Some people I know would argue that the dark secret killer app of the web is porn. I guess I can't really disagree, although I'd argue that porn is the first-follower of new media types, rather than the driver.