Monthly Archives: November 2005

What is Social Software

There is a thread unfolding over here about this one liner:

“The whole point of social software is to replace the social with software”

But the thread has descended into a who said exactly what discussion that avoids the provocative nature of the standalone statement.

The statement is obviously true in for some situations.

For example consider a bug database. These tools allows a group of people to engage in the work of resolving bugs more effectively by draining most of social interaction out of the work. They enable the bug to found by one actor and resolved by another without the two interacting socially at all. Much the same way that doctors can treat desease without engaging in any particularly social interaction with their patients.

In a second example look at a problem that arises in source control systems. Two individuals are hacking away and their chanages happen to overlap. Mr. Speedy gets his changes into the source control system first. Mr. Methodical shows up later and discovers that his changes conflict with Speedy’s. There is nothing more commonly used as an example of social than conflict resolution and here we have exactly that problem a tiny dishpan model. The conflict resolution that happens at this point might demand a social interaction, but we have discovered that in a surprisingly large number of cases it works out well to just dump the whole problem into Mr. Methodical’s lap and let him puzzle out a solution. In this case the software design has done exactly what the quote suggests; replaced the social with software.

Or consider the wiki. I stuff some useful content into the wiki. Another actor dives in and rephrases it into grammatical english. A third actors repairs a date I got wrong. That process is hyper-effective because none of the actors need to engage in a social interactions. Each actor bears only the cost of his contribution, but none of use have to orchestrate a social relationship with each other. Most people’s initial reaction to wiki’s is bewilderment because they are so extremely a-social. It takes a while before you discover that can be a positive.

Social relationship creation and maintenance is costly. In numerous situations it is absolutely worth those costs. But that does not mean it should be automatically tacked onto every interaction. Fixing a bug, resolving a source code conflict, touching up a wiki entry, can be an oportunity to met new people and make new friends; but they do not need to be forced to serve that function.

I was quite conscious of this when I added the “report a typo” link that appears below all my blog postings. I know that most people don’t complain about my many typos because to do creates a delicate social dynamic. The form found under that link therefore doesn’t even prompt for an email address. I made the choice that I was more likely to get useful typo reports without the social aspect and that was a better balance of design than improving my ablity to say thank you to people do provide typos.

That tiny example shows the kind of tuning about social that systems of this kind enable.

A more accurate statement might say:

One exciting aspect of social software is the option of removing social aspects from the interactions.

If you want to get all big picture-ish … the whole point of the scientific revolution was the discovery that you could making amazing progress on some problems if you discarded all the important stuff. That how fast an object falls is not related to how much you love it; and the weather tomorrow is not related to your attitude about the rain gods. Autism can be surprisingly useful.

One way to frame the problems social software is dealing with is to label them as coordination problems. The bug fixing, wiki refining, and source control conflict resolution are all coordination problems at their core. They all run the risk of reaching bogus outcomes if you drain off the social elements entirely. The system failures that arise when that happens are well known. For example there are libraries full of books on what happens when product development becomes divorced from the end user’s needs and situations.

What’s exciting about open source is that it lets you experiment with exactly how to set the knob on how much social you leave in the coordination scheme you deploy.


Via the typo link, this extremely insightful addition: “And social interactions often draw from a limited pool, so by removing the need for them with software, this pool can be conserved and applied to actions with a greater possible return.”

Trustable Tagging Agents

I’ve been wondering for some time now why we don’t see more software agents posting into del.icio.us. I wrote one a long time ago as part of some work I was doing; that agent would search for things that had been posted a lot and then tag them with the tag a.big.fat.one; it would masqueade as me when it posted. I wish I’d given it it’s own account, mr_trend_watcher say.

So. I see that Alex Bosworth has written a del.icio.us software agent. The agent’s account at del.icio.us is private.bookmarks; but let’s call him PB for short. When PB posts a URL for you he tags it as for you. You may not have known this but every del.icio.us user Sally has a page of URL’s tagged as just for her by other users. They do that by tagging them for:sally. Here are the URLs other folks have sent me sent to me, but unless you log in as me you can’t see them, sorry.

Oh, look! You can see everything than anybody asked Mr. PB to post “privately” for them. Mr. PB exhibits some very racy posting behavior. Mostly porn, but plenty of health issues, private login pages, tutorials, job search sites, etc.

The wise men in the ivory towers have spent a river of ink on the puzzles around agency. Do you trust Mr. PB to keep these secrets? Mr. PB is running at sandbox.sourcelabs.com; do you trust his hosts?

Mr. PB works via a bookmarklet and you can get one of your very own here, if you trust him. Oh darn, you can’t delete anything you’ve posted.

Just Push The Button!

The solution is always just one gesture away.

Actually. Reading Billo’s rant reminds me how much fun it is to rant.

I used to have a coworker who specialized in ranting about the word “just”. He’d try to get people to stop using it. Somebody would say: “Just put it in a database.” or “Just schedule a meeting.” or “Just tell Sam to do it.” and he would be off and running. “Don’t use that word!”

I’m comming to feel the same way about “light weight” as in “Light weight scripting language.” “Light weight data store.” “Light weight presentation layer.”

Don’t do that!

Egg Drop Programming

… asked us if we ever intentionally got lost in a town, perhaps a town new to us, so that we had to learn the place in order to get back to a place we knew. Several people nodded vigorous agreement, and one guy noted that he and his colleagues use a similar technique to learn a new legacy code base. They call this air-drop programming. This is a colorful analogy for a common pattern among software developers. Sometimes the best way to learn a new framework or programming language is to parachute behind enemy lines, surrender connection to any safety nets outside, and fight our way out. …

Took that from here.

There are varients of this technique, walk-about, year abroad, home visit.

My techniques of this kind aren’t as random as that sounds. For example in a city I will find the old train station, park and then walk in the direction that seems to go down hill economicly. Or in code I will find the error logging or memory management and then work backward up the call tree, at first breadth first and then selectively depth first. Sometimes I look for the chinatown, or the I the center of what was the city’s primary industry 30 years ago. Often it’s good to look for the place where a bloom of new code occured, try to figure when it happened, and then look at the borders between it and the older code.

Now: Get lost!

Cones

My university had a cruel architecture program. They would admit a mess of kids and then flunk 70% of the in the first semester. The process involved lots of amazingly hard design problems; like “Create a small unmarked uniform box which the instructor will place on table right side up on his first attempt, no text is allowed. Due tomorrow.” Did I mention the art supply store was closed?

Watching people work on these made me much more aware of design, and its curious perversities, and that some instructors are sadists.

I was reminded of that today glancing at my screen with my glasses off. There was a wonderfully ambiguous icon on the screen. It was either a triangle pointing to the left; or it was a volume control showing a speaker facing to the right. I’d not noticed this before. A cone is ambiguous about which way it is facing.