Skip to main content

Stackoverflow.com

There is a good article on the principles driving the development of stackoverflow.com, a site where programmers get help with their coding problems on ReadWriteWeb.

I was particularly struck by the design points where Spolsky highlights the frustration created wrong answers and obsolete results.

I can remember when I was able to circumnavigate the web through a search engine for the topic of history of photography. It was that small. I could see everything there was to see about history of photography online in a week, a week of drudgery wading through duplicate results page after duplicate results page, until I had made sure I had seen everything about my topic. Although filled with a fair amount of junk and duplicates, I was still able to find a single web page if it contained sufficiently unique keywords, until about a year before Google emerged, I had relied on AltaVista to take me back to a web page in one go, when I could not remember where I had found a code solution on some obscure personal page, for example. Then the search engines began to fail me, and single pages I had found before became nearly impossible to find, but eventually, search engine technology improved and with Google, you could find that one blog page with the coding. That was one the solution to the problem of finding things.

Spolsky is right to observe the problem now is that search is failing to distinguish between correct and incorrect answers; between current and obsolete answers to technical questions.

When I first started programming using Microsoft Visual C++ (I was just a dabbler), I had a question about how to render bitmap graphics. I turned to the library of articles and code intended to help developers. I was happy when search quickly turned up an article on how to introduce bitmaps into your application. After an hour or two of reading, it slowly dawned on me the author was not talking about what I was familiar with, Microsoft Foundation Class applications. I was seeing unfamiliar code and unfamiliar techniques. I glanced up at the date. The article was from the mid 1990s. It was about coding C under Windows before MFC was introduced. The first, supposedly most relevant, documents search had brought up from MSDN was completely obsolete and about coding without an application framework. I had wasted hours reading the wrong articles.

Stackoverflow.com is an example of a great site. It is well designed, the developers learned the lessons of the last fifteen years of web technology and applied them. It is clean, beautifully presented and well organized site. I have to admit they did right what I failed to do with phphelp.com, which started by envisioning many of the same goals. They had to courage to go ahead with "soft security," collaborative editing, and content surfacing and valuing through a user voting system. Of course, with the volume of content and edits, such tools are necessary. What two humans could watch and police such a flow of content while doing their day job? User contributed and curated content is the only rational answer.

(By the way, it would probably be better to describe their principles as being informed by behavioral economics or an evolutionary branch of the field, than anthropology or social psychology, I feel the way people use voting systems to surface content, how "soft" social engineering strategies are employed on wikis, etc. to be close to the phenomena studied by behavioral economics, not just financial choices.)

Comments

Popular posts from this blog

Minolta Lenses on a Four Thirds Camera

During the summer, I bought an Olympus E-510 digital single lens reflex camera. The 510 is a FourThirds camera and because of the of shallow flange of the 4/3 lens mount it is one of the most flexible cameras on the market when it comes to mounting legacy optics (lenses from traditional film SLRs). A 4/3 camera can mount "legacy optics" or lenses from several other manufacturers made before the DSLR era. Although unintended, this makes FourThirds a revolutionary mount. For the first time not only can a photographer mount lenses from different manufacturers who produce lenses to the "open" FourThirds standard, with inexpensive Chinese-made adapters lenses from nearly any manufacturer from the golden age of SLRs can be mounted as well. Third party adapters can be found for Olympus OM, Nikon, Pentax, Zeiss and Contax. The only one missing from the party was Minolta. I purchased an inexpensive OM to 4/3 adapter from ebay and mounted several OM lenses, a 50mm f/1.8, 50m

Snowball, the Dancing Bird

A video of a dancing bird has become the latest YouTube sensation. Some people thought the bird's performance was faked, but for me, it is not surprising, given the sophisticated ability birds demonstrate for manipulating pitch and rhythm in their songs, that a bird shows the ability to keep time with music. Neuroscientists, including John Iversen of the Neurosciences Institute, have studied the dancing bird and confirm it is capable of extracting a beat from sound. What impressed me most about Snowball's performance is when he lifts his leg and gives it a little shake before bringing it down. As the investigators mention, it may be prompted by the pace being too fast to put his foot all the way down in time with the faster beat, but it piques my curiosity further. It appears Snowball is dividing the beat when he waves his foot, into two or three little waves, which if I am seeing it correctly, suggests birds are capable of division of the beat and perceiving and manipulating

Facilitating the Conversation

I was prompted by something Andrew Shafer of Reductive Labs said (on the FooCampers list, so I won't reproduce it here, since it was forwarded to me) about the quality of communication among software developers. He was talking about how communicating the overall design and intentions of the project is vital, so the developers are not left guessing about how the application will be used and what its architects think it should do. What is important is the existence of a conversation between the leaders of a project and the developers writing the code. This hits very close to home, because our farmfoody.or g project is essentially there to improve the flow of information between producers and consumers of food, to enable a conversation . It occurred to me the solution is to throw away the flash cards and bulleted design specifications and just facilitate the conversation. Why not use social networking tools for developers to communicate? (You can get a sense of another approach from