Software and Values

I don’t usually blog about work, since talking about making software generally makes people fall asleep. But the truth is, there’s not a lot of difference in the way I approach fiction versus making computers do useful things.

I was talking with a fellow geek the other day and he asked me what had I learned to value in the software I worked on over the years. It didn’t take me long to answer, since I am always talking up the importance of intelligence and honesty in the products we make.

Intelligent software isn’t about being smarter than the user, nor is it about bells and whistles, it’s about avoiding the moment when the user slams his head on the desk and says, “I can’t believe this thing is so fricking stupid. The guy who designed it is a moron, the person who coded it is imbecilic and the company that foisted it upon me is either hydrocephalic or terminally arrogant or both. Do they think that my time is so worthless that I would take this?” The web is full of things like this, instances where two systems rub up against one another but don’t connect and the customer is left to do the work.

Honest software, like good fiction or screenwriting is about not taking the shortcut. It’s about respecting the customer, bringing them in under the tent far enough to ensure their trust and then keeping it. Having a web page that asks you to enter information, then bringing up another page where you have to
“confirm” that information? That’s dishonest. I’d bet even money that you were redirected in between to another system and you just double-entered your info. Why did you do that? Probably because the two teams that built the backend didn’t bother (or couldn’t, due to incompatible systems or privacy policies) putting them together. Pretending that you haven’t been asked to do the work of the engineers or the database? It’s just plain lying.

How does honesty relate to a movie screenplay? It’s a little harder here, since the underlying contract with the audience includes a bit of self-delusion. This is what is always referred to as “suspension of disbelief”–when the viewer/reader willingly lets the writer lie to them in order for the story to work. Well, that’s fine, but what about when the writer takes that contract and spits all over it? Are you willing to believe that she would even speak to him on the street? (Jimmy Fallon, I’m talking about you here.) Fine, says the writer, then you’ll believe it when I can throw in a title that says “6 years later” that they are still together and he hasn’t changed. It’s just plain dishonest.

I used to work for a large-ish web company that provided a public-information portal, a guide to things happening in your city. Every six months or so, they would completely redesign the site, most often not for the better, with every new feature, intelligence and honesty taking the backseat to greed. And every time, they would lose about 30-40% of their audience to a competitor. Eventually, enough people would start using the site that they would wind up with about the same number of users as before, just not the same ones. Cynically, you could argue that as long as the potential pool of customers remained larger than the pool of past customers who would never return, you could continue this behavior forever, but word gets around. And the churn is expensive. I don’t have the current numbers, but my sense is that they about about a quarter of the unique users now as they did 5 years ago.

More than anything, the software user or moviegoer or book reader wants/needs the program/movie/book to be exactly what they want or need, just as Drew Barrymore wants/needs Jimmy Fallon or Adam Sandler ro Tom Greene to be the guy she has been looking for all of her life. That trust is at the heart of the relationship between customer and supplier, nurture it and you have made a friend for life, piss on it one too many times and you’ve gotta start finding some new friends.

Leave a Reply