 | Level: Intermediate Rawn Shah (rawn@us.ibm.com), Community Program Manager, IBM developerWorks Jeanette Fuccella (jfuccella@us.ibm.com), Web site strategy, IBM developerWorks
01 May 2007 The developerWorks spaces initiative represents a new way
for people to create, discover, integrate, or present information, ideas,
business transactions, news, and even themselves to others through the
global environment of the Internet. Meet the first phase of the project, called "community topics," and find out how you can get involved.
At developerWorks, we believe that social computing, Web 2.0, and online
communities will have as revolutionary an impact on businesses, projects,
industries, and even development methods as the Internet, or the open
source movement did. The challenge for many sites like developerWorks,
which has grown organically for many years, is unifying existing community
services and social networking tools.
To this end, the developerWorks spaces system was born: a place where you can engage with the like-minded, or even create your own community courtesy of developerWorks. You can start exploring our 13 inaugural community topics spaces now -- and read on for perspective and insight into the project and to find out how you can participate.
Figure 1.
The new community topics area on developerWorks
How it started
Today, developerWorks' community services, implemented with such tools as wikis,
podcasts, blogs, and forums, comprise almost a third of all developerWorks
page views. Thus far, the overall developerWorks community has been segmented into multiple
sub-communities around various technologies (for example, Java™, Linux®), product
brands (for example, WebSphere®, Rational®), and products (Rational Application
Developer, Lotus® Sametime). Hosting these services requires a complex mix
of UI engineering, multiple application integration, XML templates,
authentication integration, metrics integration, administration, and
business processes.
The spaces concept arose from the need for a better and more holistic way to engage with our community.
From an infrastructure
standpoint, each new community tool added another level of complexity for
integration issues. From the user's standpoint, the multiple tools were
artificially segregating the community by type of community service (for example,
forum users, blog readers, podcast listeners, and so on) and dispersing the
information into multiple areas users needed to keep track of.
For a site that hopes to bridge many different types of developer roles,
industries, technologies, products, and geographies, anything that
separates users in communities is counterproductive.
Beyond the ability to combine different tools, resources, and
people together, we wanted to add more dynamic interfaces, controls, and
richer applications to make it easier to interact. We also wanted to
change the model for who "owns" content, allowing a spectrum, ranging from
areas that are run solely by IBM employees, to some mix of IBM employees and community
members, to areas run solely by community members. Finally, we wanted
to make it possible for individuals to do this quickly and nimbly, without friction or overhead.
This idea of mashing together different members, owners, content,
interfaces, resources, and tools on an as-needed basis for each community
is what the Web 2.0 movement is all about. What we needed was a way to consider communities from a
unified viewpoint and to provide a way to implement this in a simple and
intuitive manner. To this end, we emerged with the concept of community
models and the developerWorks spaces system.
Learning from best practices
A community model is a strategy for how you
want to work with others, and this forms the basis of our approach.
Defining this model is the necessary intermediary
step between the concept stage and implementation stage.
 | |
"
Many companies approach Social Computing as a list of technologies to be deployed as needed - a blog here, a podcast there - to achieve a marketing goal. But a more coherent approach is to start with your target audience and determine what kind of relationship you want to build with them, based on what they are ready for."
-"Social Technographics," Forrester Research, April 19, 2007
|
|
Key ideas to an online community model are:
-
a membership, that may be identified, or may be anonymous, and can be of any size from a few folks, to a small team of a few dozen people, to a large-scale group of millions
-
identified leaders of the community
-
an organizing idea, topic, practice, activity, or program for the community
-
a virtual place where the community "gathers"
-
information resources shared by the leaders or the members in this place, from any source they consider useful
-
tools for the members to interact, collaborate, comment, share, and exchange with each other
-
tools to understand how the community is faring -- metrics such as number of posts, page views, unique visitors, and so on
-
tools, resources, or processes to understand, use, manage, or support all of this
This is a fairly broad definition that you'll find allows almost an
unlimited number and variety of community models. In fact the description
above is a meta-model to help define more specific implementation models
that are of practical use.
For example, you and a few friends -- who are spread apart around the
world -- start a small software project. Initially your team just needs a
space to share files and perhaps share some sites and other Internet
resources. As it grows, you realize you need to develop documentation for
the project and open it up for others to access. As you grow
further, you might want to start a blog to keep users up to date and a discussion forum for them to
exchange ideas and issues. All of this needs to happen on an Internet scale
and grow with your project. This constitutes
one common type of community model for a software project team.
Another model is a space built around an individual. It contains a blog
and links to resources and simple Web applications. It might also contain
a file sharing system for podcasts, videos, or other files. As the space
grows and increases in popularity, it might need a wiki to document FAQs
from followers.
A product manager, interested in working with his or her product user
community to determine what the next generation product should look like,
might design a community model around gathering user requirements. One
of the technical leads can blog about the project, sharing thoughts and
asking for feedback. Once a list of possible new features has been
identified, users can then discuss or rate them.
Or a teacher might need a space for the class notes, syllabus, assignments, shared files, and
documents he or she wants to share with the class, as well as the interaction
tools for the students to communicate with each other. It might be necessary to restrict access to some of this
information only to the class, while sharing other aspects of the course
with anyone who is interested.
These four examples are only a handful of the use cases that we modeled as we developed the spaces concept. The
real value of spaces is to save people the time and effort of
reinventing the community models over and over again. From a developer's view, community models
are very much like software patterns for community managers.
Once the community model is identified, spaces provide a practical way to
implement the model quickly and easily, and without requiring developer resources.
The architecture of spaces
Spaces are meant to support a variety of community models, as shown in
Figure 2. Starting at the base, the Feed & data layer brings together data
from different sources across the Internet encapsulated in a way that can be
brought up in higher layers.
Figure 2.
The developerWorks spaces architecture model
The Content & application layer houses specific social networking tools. Since we
need a flexible framework that will allow new tools to be added over time,
we separate this out. Aside from the social networking applications that
create leaf items of content, there are Common services that interact with
these applications. Some social networking applications implement these
services within themselves; however, to allow better integration between,
for example, a tag in a blog and a label in a wiki, the better approach is to
separate it out into a higher layer that aggregates both of these tags. Other
services commonly needed are a ratings mechanism across different content
items and applications, or a common system for comments, so you can find
all of the comments (rather than digging through different tools for them).
Above the Content & application layer are the Portlets that display the
information visually. Each of these shows a particular type of content, or
a particular social networking application. This is where you will see the most variety and eventually a
way for you to develop your own portlets. A generous helping of Ajax makes it easy to
arrange or rearrange the portlets onto the page as you think is best.
Above the Presentation layer, you define who can access this
information, or who can actually modify the content of the portlets. You can set as many people as you want to be
able to edit and own the elements of the space. Finally, you can share this information through
our Web site, or distribute to other sites through RSS Web feeds.
Spaces in action
The implementation we created is much simpler to understand and use than
the architectural model might imply. We created the developerWorks spaces system to make it easy to
integrate the online site and pick the social networking tools for your
community. All you need to build a space is your community model and a browser with JavaScript support.
Figure 3 gives a snapshot of what our space builder is like. As the owner
or editor of a space, you can drag any of the portlets shown in the menu
on the left, and drop them into a spot in the columns. A dialog box then
appears where you enter information about the title, URL, and any
particulars to access that data or social networking tool. You can
drag-and-move the portlets around the space as well, adjusting their
relative position on this dynamic Web page. You can adjust the number of
columns visible and the color schemes for the space. No HTML required.
Figure 3.
The developerWorks space builder tool
When you are ready with a completed design, all you have to do to push
the page live is to click on the Publish button. You can see a good
example in the IBM Emerging Internet Technologies team's Mashups space
(see Figure 4). The space pulls together a number of resources from
different social networking tools of the team's own as well as other Internet
resources.
Figure 4.
The Mashups space
With the preview release in April 2007,
we have 13 new spaces launched on a variety of topics from Ajax to Software as
a Service. These spaces are listed on our index of all spaces.
More features and capabilities will be added
to complete the architectural model described above. You can find out more
on what you can
do with a space, and what tools are available in the FAQ (see Resources).
Animated demos
If this is your first encounter with a developerWorks tutorial that includes demos, here are a few things you might want to know:
Demos are an optional way to see the same steps described in the article. To see an animated demo, click the Show me link. The demo opens in a new browser window.
Each demo contains a navigation bar at the bottom of the screen. Use the navigation bar to to pause, exit, rewind, or fast forward portions of the demo.
You may need to scroll to see some areas of the demo.
JavaScript must be enabled in your browser and Macromedia Flash Player 6 or higher must be installed.
Download Adobe Flash Player.
Resources Learn
Get products and technologies
Discuss
About the authors  | |  | Rawn Shah is developerWorks' Community Program Manager focusing on how to develop greater interaction between our members through the many community services we have such as blogs, forums, user groups, wikis and other services. He's been a network administrator, a systems programmer, a Web project manager, an author, a technology writer and editor. He survived the dotcom days in his own startup before becoming a full-time writer and later joining IBM as an editor. In his spare time, he is also a student and teacher of Japanese swordfighting. |
 | |  | Jeanette Fuccella is one of the Web site strategists for developerWorks, focused primarily on finding ways to provide a more dynamic and interactive experience through the site. Her background is in human factors, user research, and Web site design. She spends her spare time gardening with her three-year-old son, Tommy. |
Rate this page
|  |