LazyWeb and RSS: Given Enough Eyeballs, Are Features Shallow Too?
by Clay Shirky01/07/2003
A persistent criticism of open source software is that it is more about copying existing features than creating new ones. While this criticism is overblown, the literature of open source is clearer on debugging than on design. This note concerns an attempt to apply debugging techniques to feature requests and concludes by describing Ben Hammersley's attempt to create such a system, implemented as an RSS feed.
A key observation in Eric Raymond's The Cathedral and the Bazaar is: "Given enough eyeballs, all bugs are shallow." Raymond suggests that Brook's Law--"Adding more programmers to a late software project makes it later"--doesn't apply here, because debugging is less collaborative than most other software development. He quotes Linus on the nature of debugging: "Somebody finds the problem, and somebody else understands it. And I'll go on record as saying that finding it is the bigger challenge."
Finding a bug doesn't mean simply pointing out broken behavior, though. Finding a bug means both locating it and describing it clearly. The difference between "It doesn't work" and "Whenever I resize the login window, the Submit button disappears" is the difference between useless mail and useful feedback. Both the description and the fix are vital, and the description precedes the fix.
Enter the LazyWeb
There is evidence that this two-step process applies to features as well, in a pattern Matt Jones has dubbed the LazyWeb. The original formulation was "If you wait long enough, someone will write/build/design what you were thinking about." But it is coming to mean "I describe a feature I think should exist in hopes that someone else will code it." Like debugging, the success of the LazyWeb is related at least in part to the quality of the descriptions. A feature, schema, or application described in enough detail can give the right developer (usually someone thinking about the same problem) a clear idea of how to code it quickly.
Examples of the LazyWeb in action are Stephen Johnson's URL catcher as built by Andre Torrez, and Ben Trott's "More Like This From Others" feature after Ben Hammersley's initial characterization.
LazyWeb seems to work for at least three reasons:
Developers have blind spots
Because a developer knows a piece of software in a far more detailed way than their users, they can have blind spots. A good LazyWeb description provides a developer with a alternate perspective on the problem. And sometimes the triviality of the coding involved keeps developers from understanding how valuable a feature would be to its users, as with Yoz Grahame's "get, search and replace, display" script for revising the text of web pages. Sometimes four lines of code can make all the difference.
Developers have social itches
The canonical motivation for open source developers is that they want to "scratch an itch." In this view, most open source software is written with the developer as the primary user, with any additional use seen as a valuable but secondary side-effect.
Sometimes, though, the itch a developer has is social: they want to write software other people will adopt. In this case, the advantage of the LazyWeb is not just that a new application or feature is described clearly, but that it is guaranteed to have at least one grateful user. Furthermore, LazyWeb etiquette involves publicizing any solution that does arise, meaning that the developer gets free public attention, even if only to a select group. If writing software that gets used in the wild is a motivation, acting on a LazyWeb description is in many ways a karmically optimal move.
Many eyes make features shallow
This is really a meta-advantage. The above advantages would apply even to a conversation between a single describer and a single developer, if they were the right people. Expanding the conversation to include more describers and developers increases the possibility that at least one such pairing will occur.
Transaction Costs and Coordination Costs
The transaction costs of the LazyWeb are extremely low. Someone describes; someone else codes. The describer can write sketchily or in great detail. No developers are required to read the description; and those who do read it can ignore or modify the proposed design. The interface between the parties is lightweight, one-way, and optional.
However, the coordination costs of the LazyWeb as a whole are very high, and they will grow as more people try it. More people can describe features than write software, just as more people can characterize bugs than fix them. Unlike debugging, however, a LazyWeb description does not necessarily have a target application or a target group of developers. This creates significant interface problems, since maximal LazyWeb awareness would have every developer reading every description, an obvious impossibility. (Shades of Brook's Law.)
This would be true even if the LazyWeb were confined to skilled programmers. The ability of system architects, say, to describe new visual layout tools, or graphics programmers to characterize their filesharing needs, ensures that there will always be more capable describers than suitable developers.
Thus the LazyWeb is currently limited to those environments that maximize the likelihood that a developer with a social itch and a good grasp of the problem space will happen to read a particular LazyWeb description. In practice, this means that successful LazyWeb requests work best when posted on a few blogs read by many developers. Far from being a "More describers than developers" scenario, in other words, the current LazyWeb has many fewer describers than developers, with the developers fragmented across several sites.
Sounds Like a Job for RSS
|
Related Reading
Content Syndication with RSS |
One common answer to this kind of problem is to launch a portal for all LazyWeb requests. (There have been earlier experiments in this domain, like http://www.halfbakery.com, http://www.shouldexist.org, and http://www.creativitypool.com, and Magnetbox has launched a Lazyweb-specific site.) These sites are meant to be brokers between describers and developers.
However, nearly a decade of experimentation with single-purpose portals shows that most of them fail. As an alternative to making a LazyWeb portal, creating an RSS feed of LazyWeb descriptions has several potential advantages, including letting anyone anywhere add to the feed, letting sites that serve developers present the feed in an existing context, and letting the developers themselves fold, spindle, and mutilate the feed in any way they choose.
Ben Hammersley has designed a version of a LazyWeb feed. It has three moving parts.
The first part is the collection of descriptions. Hammersley assumes that a growing number of people will be writing LazyWeb descriptions, and that most of these descriptions will be posted to blogs.
The second part is aggregation. He has created a trackback address, http://blog.mediacooperative.com/mt-tb.cgi/1080, for LazyWeb posts. Blog posts that point to this address are aggregated and presented at http://www.benhammersley.com/lazyweb/.
The third part is the RSS feed itself, at http://www.benhammersley.com/lazyweb/index.rdf, which is simply the XML version of http://www.benhammersley.com/lazyweb/. However, because it is a feed, third parties can subscribe to it, filter it, present it as a sidebar on their own sites, and so on.
It's easy to see new features that could be added to this system. A LazyWeb item in RDF has only four elements, set by the Trackback spec -- title, link, description, and date. Thus almost all the onus on filtering the feed is on the subscriber, not the producer. An RDF format with optional but recommended tags (type: feature, schema, application, etc; domain: chat, blog, email, etc.) might allow for higher-quality syndication, but would be hard with the current version of Trackback. Alternatively, community consensus about how to use title tags to characterize feature requests could help.
And not everyone with a LazyWeb idea runs a Trackback-enabled weblog, so having some way for those people to register their ideas could be useful. Hooks for automated translation could make the feed more useful to developers working in languages other than English, and so on.
But for all the possible new features, this is a good start, having achieved a kind of bootstrap phase analogous to compiler development. The original work came out of a LazyWeb characterization made during a larger conversation Jones, Hammersley, and I have been having about social software, and some of the early LazyWeb requests are themselves feature descriptions for the system.
Will It Work?
Will it work? Who knows. Like any experiment, it could die from inactivity. It could also be swamped by a flood of low-quality submissions. It may be that the membrane that a weblog forms around its readers is better for matching describers and developers than an open feed would be. And Paul Hammond has suggested that "Any attempt to invoke the LazyWeb directly will cause the whole thing to stop working."
It's worth trying, though, because the potential win is so large. If the benefits open source development offers for fixing bugs can be applied to creating features as well, it could confer a huge advantage on the development of Mob Software.
Stefano Mazzocchi of the Cocoon project has said "Anyway, it's a design pattern: 'good ideas and bad code build communities, the other three combinations do not." This is extremely hard to understand, it's probably the most counter-intuitive thing about open source dynamics." If Mazzocchi is right, then a high-quality stream of feature requests could be a powerful tool for building communities of developers and users, as well as providing a significant advantage to open over closed source development.
The closed source shops could subscribe to such a feed as well, of course, but their advantage on the feature front isn't speed, it's secrecy. If a small group of closed source developers is working on a feature list that only they know, they will often ship it first. But for good ideas in the public domain, the open and closed development teams will have the same starting gun. And releasing early and often is where open development has always excelled.
It's too early to tell if LazyWeb is just the flavor of the month or points to something profound about the way ideas can spread. And it's much too early to know if an RSS feed is the right way to spread LazyWeb ideas to the developers best able to take advantage of them. But it's not too early to know that it's worth trying.
Clay Shirky writes about the Internet and teaches at NYU's Interactive Telecommunications Program. He publishes a mailing list on Networks, Economics, and Culture at shirky.com/nec.html.
Return to the OpenP2P.com.
You must be logged in to the O'Reilly Network to post a talkback.
Showing messages 1 through 11 of 11.
-
An example
2003-09-17 23:56:20 anonymous2 [Reply | View]
I made a database of ideas, not just related to software, called http://ideaexplore.net, which is open to the public to use and contribute. Here's an example of a software idea which was implemented through this site, which I suppose would qualify as an example of the lazyweb: http://www.ideaexplore.net/uses/use1.php
I hope more people participate by submitting their ideas and implementing those that they find useful.
Larry Baum
-
first mover advantage
2003-08-19 01:52:52 anonymous2 [Reply | View]
even if you might be able to use a system someday that someone might develop instead of you - this
individual or group has the all important first mover advantage and in general understands the developed software and the business model better than you.
lazy web isn't the way business can be done.
-
Personal LazyWeb Example - PhoneBlogger
2003-01-09 23:41:54 RobertStewart [Reply | View]
A couple months ago, the One True B!x posted on his blog wondering how far away we were from him being able to make a phone call, record some audio, have the audio converted to text, and have the text posted to his blog. I had been doing a serendipitous blog wander that day, and just happened to run across his blog for the first time.
Having some experience with VoiceXML, I knew that I could build something close to what he wanted without too much work. I sent him email telling him how such a thing could be built today, but it would require writing some code. In his response, he indicated that he wasn't a programmer. I immediately began to "itch", and I had to scratch that itch.
I now have a tool that does most of what he wanted. Full speech-to-text is tough, but I will try to add that later; at least with a speaker dependent version. Visions of Apple Newton gobbledygook translations worry me, though. Sometimes, being only mostly right can do a huge amount of damage to a technology's public acceptance.
I posted more info about PhoneBlogger on my blog. http://www.wombatnation.com/blog/archives/2003/01/welcome_to_phoneblogger.html
-
Free Software and Originality
2003-01-08 07:53:50 anonymous2 [Reply | View]
I posted an article on Free Software and Originality at Advogato:
http://www.advogato.org/article/604.html
It's about why Free Software has a hard time
doing things big and entirely new, and what to
do about it.
-
Thoughts on this article
2003-01-08 06:56:58 anonymous2 [Reply | View]
I've posted a response to this article on my blog. (Too bad this site doesn't have TrackBack itself!)
-
How to log a LazyWeb idea
2003-01-08 05:42:20 anonymous2 [Reply | View]
In the article, Clay says: "And not everyone with a LazyWeb idea runs a Trackback-enabled weblog, so having some way for those people to register their ideas could be useful."
This is true. So, automation via RSS is not always possible. Fortunately, you can feed the beast manually, if that strikes your fancy. On Ben Hammersley's LazyWeb site, there is a form you can use to submit your idea: http://www.lazyweb.org/tb.cgi?__mode=send_form
John S. Rhodes
Trade it on Trodo!
http://trodo.com
-
Free software innovation
2003-01-08 05:31:54 anonymous2 [Reply | View]
Open source / free software has always (long before it had those names) had much productive innovation.
And of course it has. Open source is all about mimicking the open science research community around all the universities in the world. This scheme has been perfected for centuries with the explicit goal of more innovation.
With open source you don't have to reinvent the wheel. Have a new idea for an operating system feature? Implement on Linux and you can be ready in no time and (which is important) you have plenty of people to show it for, get feedback, and if it turns out good, plenty of users. Creating a new language? Just write a new frontend to gcc and you have modern state-of-the-art code generation and register allocation tools which would cost you millions to develop from scratch.
Five years ago, there was already a complete operating system for us, GNU/Linux, all created within the open community using open tools. Using only some of the thousands of available tools, you could chat with users around the globe using IRC, setting up ad-hoc document collaboration with CVS and LaTeX, develop software etc.
Corporate users saw there was money to save by using free software, *if only* there was a free word processor. Word processor! You had emacs, CVS and LaTeX and you wanted a *word processor*! Why? Because the better software wasn't "familiar enough". Ok. After several years we have, what, 5 good free wordprocessors? Repeat ad infinitum.
Now we find ourselves in the peculiar situation where new users are introduced to lookalikeware such as GNOME, Evolution and Openoffice -- and they complain they are just pale clones. Well of course they are! That's why they were created!
Want a 3D GUI? Available. Unified messaging? Available (at least with some Perl glue). Ad-hoc collaboration systems? Right there.
If you want to understand the innovation taking place in the free software community, start with understanding our basic tools. Understand CVS, LaTeX, Perl and such. Look at the reiser4 filsystem, the XML-UI in Mozilla, Parrot and Perl 6.
But as with all kinds of science -- not all innovation is good. Actually, very few is. Study a place such as linux-kernel. Most features are not considered for inclusion in the kernel, but a select few are. All this discussion and all these features are important to select the few good ones.
Study free software from a science perspective and then share your thoughts. The article doesn't do the process justice. -
Free software innovation
2003-01-08 20:48:22 anonymous2 [Reply | View]
Amen Brother!!
I appreciate that Clay Shirky is just putting out an interesting idea but I get really tired of Mac and Windows people sneering at the lack of "innovation" in the free software community.
It's out there ALREADY you just have to look for it.
"The Future is Here, It's Just Unevenly Distributed"
If you wait for O'Reilly to "discover" it for you, you'll be waiting a long time.
Read freshmeat.net every single day for a week. I guarantee you'll find five items that will surprise and delight....
-
Yes, says 20+ years of research by MIT's Von Hippel
2003-01-08 04:58:42 anonymous2 [Reply | View]
In Von Hippel's parlance, 'lead users' drive innovation. Specific to business process innovation (including innovations encoded in software), non-technical domain experts (i.e. lead users) originate effectively 100% of innovations.
See Von Hippel's papers here:
http://web.mit.edu/evhippel/www/Publications.htm
Enjoy,
Frank Ruscica
www.opportunityservices.com






--------------------
Translated by Mail-Translator