What’s on Tim’s radar?

Internet Application Design Patterns

What is a design pattern? He went back to the original definition by Christopher Alexander:

A three part rule which expresses a relationshipi between a certain context, a problem, and a solution.

For example: people want to reuse images they find on the web– such as book covers which Tim wanted to use in his presentation. But they are often too small to be used that way. The solution: provide your images in a higher-res/size. [hey, maybe I even understand what a design pattern is now]

  • Design for Participation: small pieces loosely joined, architect for modularity.
  • User Centered Development: there’s great benefits in sharing in terms of effecgs on development and processes, so release early/often, set up mechanisms for bug tracking and feedback.
  • Syndicated E-Commerce: you don’t have to build the components of the system anymore (example: isbn.nu). Glue together the small pieces and repeat the User Centered Development pattern.
  • The Perpetual Beta: Apps are no longer artifacts, but services [yeah, baby]. Don’t package monolithic releases, fold changes and development into the ongoing process as part of the experience.
  • Users Add Value to Shared Data: The key to competitive advantage in networked apps is tied to the extent to which users augment data with their own. Look at Amazon “top results” versus Barnes and Noble, which promote themselves and don’t use the users.
  • Network Effects by Default: Only a very small percentage of users will trouble to explicitly add information (value). Make participation the default, aggregating user data as a side effect (flickr defaults).
  • The Long Tail. There’s a lot of value in the long tail. Physically limiting factors are absent on the net, use this to monetize small niches.
  • Software Above the Level of Single Device: The PC is no longer the only access to the network, develop for mobile/multiple devices.
  • The Value of Social Networks: Social networks are best a byproduct of social apps. Architect apps to capture and share the social fabric (rather than artificially creating another).
  • Data is the next “Intel Inside”: Apps are data driven, owning a unique data source could be the key to success.
  • Packets and Shipping Containers: content agnostic packets of information are the most efficient (witness TCP/IP, still everywhere). Find the “optimum packet size” in your domain and devise products that fit it. For instance, the O’Reilly “Hacks” series, which is explicitly defined to be more web-like.
  • Remix!: Digital content wants to be broken down and remixed. Design business model to make money on the smallest units. Safari-U is doing this for their tech books.

What else is on the radar?

  • Ajax (async Javascript + XML), rich apps like Gmail which can themselves be remixed (see gmail mods or Jon Udell’s walking tour with Google Maps)
  • Hardware Hacks, PC Hacks, fabbing, Make
  • Ruby on Rails, bringing development capability to the long tail
  • Data visualization: O’Reilly Treemap [very cool way to look at sales and marketing data], flickr color wheel, IBM History Flow, Baby Name Voyager
  • VOIP. “Booting an Asterisk in a community does interesting things that go beyond the telephone.” [what?]. Skype.
  • People. Dave Winer said: “The P in P2P is People”. Focus on the people, users, community, inhabitants, occupants, consumers.

[ ]