Gregor's Ramblings
Home Patterns Ramblings Articles Talks Download Links Books Contact

Web 2.0 Patterns

Aug 24, 2006

ABOUT ME
Gregor Hohpe
Hi, I am Gregor Hohpe, co-author of the book Enterprise Integration Patterns. I like to work on and write about asynchronous messaging systems, service-oriented architectures, and all sorts of enterprise computing and architecture topics. I am also the Chief Architect at Allianz SE, one of the largest insurance companies in the world.
RAMBLINGS
Here I share my thoughts and ideas on a semi-regular basis. I call these notes "ramblings" because they are typically based on my personal opinions and observations as opposed to official "articles".

I confess. I am a groupie. When Tim O'Reilly invited me to be part of on a workshop on Web 2.0 patterns I was quite excited. First, because I was going to meet the exalted one in person. Second, because I would have a chance to learn a lot about Web 2.0 as I am pretty much starting from zero (working for Google does not automatically mean working on super-secret next generation massive computing projects). Lucky for me, the other participants are quite entrenched in the Web 2.0 phenomeon. Amongst others we had Bill Scott from Yahoo!, Jennifer Tidwell, Cal Henderson from Flickr, John Musser who runs ProgrammableWeb, Martin Fowler, and Sandy from Meebo.

The goal of the workshop was to build on Tim's paper What is Web 2.0. The paper cites a few examples that demonstrate the shift in thinking from Web 1.0 to Web 2.0:

  • DoubleClick --> AdSense
  • OFoto --> Flickr
  • Britannica Online --> Wikipedia

These examples alone show a clear shift from publishing towards sharing and participation, a richer user interaction, and a stronger focus on sharing data. Our day-long workshop aimed to distill values, principles, and patterns of Web 2.0 (Martin recommended that we "borrow" this structure from Kent Beck's XP book).

Attributes of Web 2.0

We started by brainstorming what Web 2.0 means to us. As expected we ended up with a wide spectrum of ideas, which we then sorted into categories. One of the most interesting parts for me were the many examples that I had not yet heard about, such as:

  • Do one thing well: meebo.com - an on-line chat client? Sounds not that exciting? Unless you do it well and make it fun, give people the ability to embed a chat client into their Web app, and get your fans to translate the Web site for you.
  • Work across devices: frucall.com - allows you to check prices over your phone and then look up your history over the web site.
  • Work across devices: http://www.backpackit.com sends a meeting reminder to your cell phone (actually Google Calendar does that, too).
  • Encourage participation: An experiment on Yahoo personals revealed that prefilling fields with slightly incorrect data motivates people to enter personal data. This also relates to the common joke that "80% of all usenet posts start with "Actually" – it is hard to get a question answered, but if you make an incorrect statement people are compelled to correct you. Along the same lines it turned out that the rather unappealing default buddy icon on Flikr results in a higher percentage of personalized icons.
  • Make public data public The well-known examples here are Zillow, TheyWorkForYou and FundRace (lots of John Kerry donations in my neighborhood)
  • Narcistic Search - what do people say about my work? Type your own name into Google.

Values

We tried to compile a set of values, along the lines of the Agile Manifesto. The key with the agile values is that is used a "X over Y" format where Y by itself is a fairly reasonable goal. For example, the value is not "Working Software over Broken Software" (duh!) but "Working Software over Comprehensive Documentation". Here are some of our candidates:

  • Simplicity over Completeness
  • Long tail over Mass Audience
  • Share over Protect
  • Advertise over Subscribe
  • Syndication over Stickiness
  • Early Availability over Correctness
  • Select by Crowd over Editor
  • Honest voice over Corporate Speak
  • Participation over Publishing
  • Community over Product

Other Cool Stuff

John from ProgrammableWeb shared a beer over visualizing complex integration systems. His team actually won an award once for a system that could visualize a complex integration solution consisting of messaging, file transfer, and many other technologies. His side links to a fun game GuessTheGoogle.

Martin taught me a new acronym: POX = Plain Old XML (as opposed to SOAP + WS-*)

hadoop.com is an open source map/reduce implementation.

Someone pointed me to BlueOrganizer - a Firefox plugin that allows the creation of semantically rich bookmarks that can be shared. For example, if you mark one of the supported sites (e.g. Amazon) the tool will bookmark the specific product (as opposed to simply the URL) and file it under the proper category (e.g., books, electronics).

MORE RAMBLINGS    Subscribe  SUBSCRIBE TO GREGOR'S RAMBLINGS


Gregor is the Chief IT Architect of Allianz SE. He is a frequent speaker on asynchronous messaging and service-oriented architectures and co-authored Enterprise Integration Patterns (Addison-Wesley). His mission is to make integration and distributed system development easier by harvesting common patterns and best practices from many different technologies.
www.eaipatterns.com