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.

No comments: