Hi
Folks,
A few musings about "scaling" which I thought might
be of interest ...
Note: In this
message I use the word "technology" in its broadest sense.
It can mean a specific tool, or it can mean an approach or
strategy.
A key aspect
of the Web is its ability to scale. Web technologies flourish or die
depending on their ability to scale.
What does it mean
for a technology to scale? What does it mean that a technology does not
scale?
To have a
sensible net-centric vision it is critical to have a deep, intuitive understanding of
this concept of scaling. As a
company moves to a net-centric environment it must adopt
technologies that scale well. A technology will
either scale or it will die.
Let's consider
some examples.
A SCALABLE MOVIE
REVIEW TECHNOLOGY
Roger Ebert is a
professional movie critic. He reviews a movie and then provides
information about it:
- a
short description
- a
rating (1 - 4 stars)
[Note that what
Ebert provides is "metadata" about the movie]
Over the years,
the number of movies has multiplied (independent movies, blockbuster movies, etc). It is no
longer possible to Ebert to review all them.
Having a
single professional movie critic review movies doesn't scale. Even
a group of professional movie critics would be soon
overloaded.
As well as not
scaling, there is a problem with "truth". A movie review represents
someone's interpretation, not facts. Everyone has their own opinions
about a movie. Ebert may love the movie, but the rest of the world
may hate it.
An alternative to
using a professional movie critic to review movies is to have each movie
producer generate a movie review. This approach scales well - there
is one movie reviewer for each movie. Of course, the problem with this
approach is that the movie review will be heavily biased.
A third
alternative is to record the comments of the movie-goers. This approach
is highly scalable - there are many reviewers for each movie.
Further, since there are many reviewers there is a diversity of opinions,
which give a variety of perspective to someone who is trying to decide whether
to view a movie.
Thus,
a scalable movie review "technology" is one that can grow as the number
of movies to be reviewed increases.
A SCALABLE BOOK REVIEW
TECHNOLOGY
The New York Times
has a small group of book reviewers. This group reviews books and then
publishes their reviews.
Just as with the
problem of reviewing movies, using professional reviewers does not
scale. The New York times group is unable to review
the exponentially growing number of new and old
books.
An alternative approach is for each
book author to elicit a review from a fellow author. This scales
well, but suffers from bias.
A third alternative is to let the users
(the readers) provide a review of the books. This scales well and
provides for a diversity of opinions.
A scalable book review "technology" is one
that can grow as the number of books to be reviewed
increases.
LESSONS
LEARNED
There are
some lessons to be learned from the above examples. There are three approaches to solving a
problem:
1. The high
priests approach: Solve the problem using a small, centralized set of
skilled professionals (the professionals may be geographically separate but
functionally they are centralized)
2. The authors
approach: Solve a problem using the authors.
3. The users
approach: Solve the problem using the large body of distributed
users.
The high priests
approach is not scalable, although
it may produce precise, reliable results.
The author
approach is scalable, but it may produce dubious results.
The user's
approach is scalable and produces multiple results which are then
shared.
A SUCCESSFUL WEB
TECHNOLOGY
A successful web
technology is one that:
- scales and
- shares
Technologies that
scale invite participation by the users. When the users become the
professionals then the technology has succeeded:
- When your
users style the XML data to their own liking and share their stylesheets with
others, then your technology for making appealing looking data
has succeeded.
- When your
users markup data using tags that make sense to them and share their tags with
others, then your markup technology has succeeded.
- When your
movie goers write reviews of movies and post them for others to view, then
your movie review technology has succeeded.
- When your
book readers write review of books and post them for others to view, then your
book review technology has succeeded.
A long time ago
(Oct. 28, 2003) John Cowan made the below remark on xml-dev. I now understand
it.
Roger L. Costello
scripsit:
> BTW John, I really liked your paradigm shift on the
telephone operator story.
> Can you think of a similar shift with
programming? /Roger
Yes, in fact. Perhaps ten years ago, I
was sitting next to a stranger
on the New York to Boston shuttle. In
casual conversation, she asked
me what I did. "I'm a computer
programmer", said I. She said, not
unusually, "Oh, I don't know
anything about programming", but then
added in the same breath "except for
some Excel and Basic." I had
an epiphany: the world had
changed.
As always, comments are welcome.
/Roger