A dialog of thoughts and ideas about software, usability, and products, with random science and wacky ideas thrown in for good measure.


When you search for "lightbulb" using a free stock photo site, you get no-frills pictures of lightbulbs that could have come straight from a hardware catalog. When you do the same search on a premium stock photo site, you find pictures that communicate the metaphors that a lightbulb represents. (Either way, I'm just looking for images to break up the text, although even better would be to have my own pictures that describe what I'm communicating)

On my bike ride to work, I pass over railroad tracks that have been inoperative for years. I noticed that the transit buses stop at the tracks, open their door, and look before crossing the track. Of course, the driver need not fear an oncoming train; the only thing he will see is a rickety track sinking beneath overgrown brush.

I thought about this. The driver is required to stop at the track because that's what he is trained to do. If he didn't stop at the tracks, he could probably get fired for not following protocol. But as long as he acts consistently at any railroad track, he reduces potential risk, and his boss will never be confused about what his driver will do when he comes across a railroad track.

However, this has some obvious inefficiencies. There is no reason for a bus to stop at a clearly unused track; this delays the passengers and other traffic behind the bus. And given enough buses with enough routes over this track, someone could probably calculate the maintenance cost that these stops require.

In the transit organization, drivers act according to their training, and bosses can predict how their employees will react in these situations. The transit organization works based on documented practices. But what about an organization that is based on knowledge of ideals instead of strict documentation -- and from these ideas, bosses can still predict how their employees will react, without specifically encoding those reactions in documentation?

I'll call such an organization an intuitive organization. In an intuitive organization, everyone can accurately predict how their teammates will act, without those actions being specifically encoded in a strict document.

Good sports teams are intuitive organizations: players know they can rely on the skills and abilities of their teammates, without knowing precisely how their teammates will execute a particular move (but with a certain degree of professional understanding and knowledge of best practices).

I think a good software team can be an intuitive organization. If I know my team well enough, I can predict how they might design a piece of software, or how they may have addressed particular technical challenges. This is about having confidence in my team and knowledge of how they work; the past is the best predictor of the future. (It should be noted that this isn't about signing up my team for work they can't possibly commit to!)

This is quite powerful. The ability to know how a teammate will act, without explicit communication and without constraint to some particular set of rules, gives an organization a dynamic, agile edge over other teams that are more by-the-book.

I sometimes hear that social sites like Facebook and Twitter will be heavyweights in the future of recommendations (or of search itself), the idea being that your friends can give you better recommendations for things like books, movies, music, and travel than random strangers can. I respectfully disagree.

First, it's hard to imagine this being the future when searching on sites social network sites is so abysmal. On Twitter, searches only go back 7 days. And while Facebook lets you search for friends, it has no decent way of searching the content of wall posts. I had to dig around pretty hard when I wanted to re-find an awesome song that a friend posted months ago.

Technical feasibility aside, there are conceptual issues with relying only on friends for recommendations. Social networks don't have the "long tail" that other sites on the Web support. For example, I have about 300 friends on Facebook, and these people tend to come from similar backgrounds as me: for the most part, we attended high school or college together, or we've worked together. Or we're related. I might value my friend's opinions on good books for summer reading, but if I'm trying to stretch my horizons, my friends are a terrible source of input, since we're so homogeneous.

Relying on Facebook or Twitter for recommendations will only benefit the socially rich, those who have thousands of diverse connections. For the rest of us, we'll have to rely on the diversity of people who aren't connected to us, but who can still influence our decisions: the people on Amazon, TripAdvisor, and other sites who tell us how good a certain book is, and what's wrong with that hotel.

The other thing that makes social network sites unsuited for recommendations is the fleeting nature of posts. On Amazon or TripAdvisor, other people's recommendations are associated with the desired object itself. But in social networks, your friends' recommendations are associated with your question. If you post a question when no one is looking, no one will answer it. If you post a question a few days after a friend posts a similar question, you won't benefit from those recommendations unless you're somehow aware of them.


I'd like to see improved search capabilities in Facebook and Twitter (why can't I search my friends based on location?), but it'll take a lot of work to rend recommendations from these sites.