Building the user-centered web

The following post contains my notes for a talk I gave at the Hauser Center for Nonprofit Organizations at Harvard University on June 25, 2009.

What is a social network?

I would like to reclaim some language:

Social is an adjective that means relating to human society and its members.

A network is an interconnected system of things or people.

Therefore, I’d suggest that we can define a social network as just being an interconnected system of people.

The audience of this talk is a social network; so are your friends, colleagues, interest groups and so on. Social networking tools facilitate social networks. The universe of social tools certainly includes web applications with social functionality, but it also includes structured face to face interactions, telephone, post, SMS, email. In other words, the web is just one possible tool for this purpose – albeit a very effective one.

If you build it, they will come

You can’t install a social networking tool and instantly expect usage: Field of Dreams is not a good model for community development. The web is littered with ghost sites created using Ning, Elgg and more that have been established in the hope that a user-base will magically appear; however, if your main selling point is the social network itself, nobody’s going to join until that network of people exists and is actively using it. It’s a chicken-and-egg problem.

Therefore, you either need to have an existing network of people to facilitate interactions between (for example, when Facebook launched at Harvard) or compelling functionality that is useful without a network of existing users (for example, Delicious).

If we’re creating a tool that’s useful for the first user who signs up, without a pre-existing social network, then what we’re really talking is a software application that uses the web as an interface, and happens to have social functionality as one of its features.

The web as applications

When the web was conceived, it consisted of documents and pages linked with hypertext: linked words and phrases that, when clicked, would load another, relevant document. Each page had its own Uniform Resource Locator, which allowed you to return to that specific page at any time. Each page could be a destination in itself, and although the sites (collections of pages) could be linked together through hypertext, each one had no need to know about your activities elsewhere on the web. Why would they? Documents don’t have memory; their role is simply to impart information.

Step forward to today, and the web is not entirely made of pages: applications now represent a large amount of the web. (Princeton WordNet defines an application as “a program that gives a computer instructions that provide the user with tools to accomplish a task”; Google Docs, Remember The Milk, Flickr, Delicious etc are all applications by this definition.)

The benefits are tangible: you can access an application’s functionality from any web-compatible device, anywhere in the world. You’re no longer bound to the software you happen to have installed on a particular machine, and you no longer need to worry about whether you’ve remembered to save a particular file onto a particular drive. Because of historic resource limitations, web applications tend to be easier to use, and entirely bypass the need for IT departments, which have unfortunately earned a reputation for being obstacles to productivity in many organizations.

This change of web usage has been reflected in the ongoing development of HTML, the markup language that all web interfaces are written in. The first four versions were largely orientated towards documents; however, HTML 5, currently in development, is the first version that explicitly contains functionality to support web applications. That includes offline storage and usage, sessions, and more advanced interface features. However, aspects of the document-orientated model remain.

Silos of information

Each application is its own atomic destination with its own URL, and is by default only aware of data created within it. That means we need to register for each application we want to use, fragmenting our accounts over potentially hundreds of products and company data centers, and that the documents, files and data we create within them can’t easily be shared with other applications. On my desktop, I can write a document in Word and open it in OpenOffice, or take a Paint doodle and load it in Photoshop, but there’s no easy, generic way to take my bookmarks from Delicious into another bookmarking tool, or to take my Google Docs and open them in Acrobat.com.

Currently, each web application is like a silo: they exist on their own, and if they interoperate at all, it’s through specific links between applications that have to be individually developed. Certainly, data created in an application stays in that application; sometimes you can check your GMail address book for contacts in order to find existing friends on a service you’ve just signed up to, for example, but it’s rare that you can actually export data fully into another product. As many of these services are free, a significant portion of their business models revolve around being able to control user-contributed data, keep users coming back, and sell user-generated activity data for marketing purposes. (One has to question whether the market for personal details will continue to be profitable, or whether, like the web advertising market before it, it will saturate and crash.)

In a social networking tool, the site model means that your contacts, the information you share and any detailed access permissions all relate solely to the application they were created in. However, collaborative spaces in social web applications are like documents: they’re one of the currencies of the social web. Just as I need to be able to use my wordprocessor of choice to edit a document, I need to be able to use my social tool of choice to collaborate with others.

Turning the model upside down

Right now, we have to register with each application we want to use. What if we required each application we used to register with us, in digital identities under our own control?

What if, using these identities, anyone could connect to anyone else, and anyone could store their data anywhere as long as the storage provider followed the same broad standards?

The web itself would become a social networking tool.

This is far more flexible, and future-proof:

  • Your ability to collaborate is not subject to a single company’s success: social functionality and application infrastructure are inherent in the web itself
  • The possibilities for collaboration are not subject to technology beyond common open standards, which can evolve
  • A wider range of application possibilities is ensured, because web applications gain the ability to interoperate in a general way
  • Privacy and user control are established by allowing a person to determine which application has access to which data

By establishing a general standard for social application interactions, the services and technologies used to make connections become less relevant; the Internet is people, one big social network, and users no longer have to worry about how they connect. We can all get on with communicating and collaborating rather than worrying about where we connect.

User-centered identities

Under this model, providing the software that hosts your digital identity becomes big business. This hasn’t gone unnoticed by the main service providers, and they’re already fiercely competing to be your identity on the web:

  • Facebook wants your central identity to be a Facebook account (and arguably have made the user-centric model for the web part of their strategy for a very long time)
  • Google wants it to be a Google account
  • Twitter wants it to be a Twitter account
  • Microsoft wants it to be a Live ID
  • OpenID want it to be any OpenID-capable URL

Because I use all of these services, the result is a very complicated identity space. These are a subset of my profiles:

For identities to be usable as a generic standard, you should be able to use any of these – or all of them. Nobody has just one facet (or persona) comprising their identity; everyone has a collection, representing the different parts of their lives. Ben Werdmuller the web strategist for hire doesn’t need to be connected to Ben Werdmuller the Doctor Who fan, who in turn doesn’t need to be connected to the Oxford resident. They can be connected if I choose to make them, but separating parts of your life is part of a user’s control over their identity.

However, that needs to be context-specific, not application-specific. Currently, for example, my Facebook account tends to be personal, while my Twitter tends to be professional. That doesn’t make sense: in order to write personally on Twitter, I either have to accept the collision of those two parts of my life, or I need to create an entirely separate, fragmented Twitter account. Wouldn’t it be better to be able to control who sees which interactions, and choose tools based on the functionality they add to a conversation? Otherwise you have the situation I present above: one identity per communication context per application. That will quickly become unmanageable, and the web will be littered with dead profiles.

Conversely, I believe the future of the web is in atomic digital identities based on permissive, open standards, linked together as an application framework.

How do we make this work?

Problem to solve: user control

First and foremost, the framework for decentralization must be established – in other words, the actual social mesh standards that will make it possible.

Technical mechanisms need to be established for controlling access to a resource or collaborative space, which should be easy to use without removing any of the flexibility of the platform, and should allow for the maintenance of multiple personas.

Another part of access control is allowing a resource to expire gracefully. It’s important to know when to lose data: sometimes documents, resources, spaces, personas or entire identities may be transient and only required for a certain length of time. There’s no need for everything on the web to exist indefinitely; currently, rigorous indexes like Google ensure that much of it does.

Finally, the tools and standards we create must be permissive of goals, content and structure that we might not have thought of. There certainly doesn’t need to be an overarching structure or taxonomy between individual identity spaces, and constraining the technology to a rigid set of activities and data types would limit the scope of the platform.

Problem to solve: ownership

Existing web applications tend to have a single-ownership model for resources. However, Silona Bonewald rightly pointed out to me that this isn’t always the case, and in a free-flowing social mesh, multiple ownership needs to be represented. For example, all collaborators on a resource should have ownership access, unless they explicitly choose to rescind that right.

In a company environment, a user’s employer may have shared ownership (or full ownership, with author access available to the employee). The same may be true with students in a university environment. On sites like Facebook, the service owner may in reality have some ownership rights over the content.

How can we maintain this granularity, but also retain user control?

Problem to solve: privacy & transparency

There is a very public attitude of "when you put something online, it’s published" in some parts of the software development community, which is a useful concept that gives developers carte blanche to share data freely. In a fully user-controlled environment, this public-or-completely-private binary situation can no longer be the case; a resource may have been published to a few select people. Ignoring this trait disallows the platform’s use in important environments like enterprises or public bodies.

When you sign up to a service, you agree to that service’s terms and conditions and privacy policy. However, your data may be farmed out to a collection of other, secondary services via APIs, without your knowledge or consent.

An important aspect of user control is knowing how your data is used and where it is transmitted by the applications you use, so I propose a simple, human-identifiable and machine-readable mark that:

  1. Applies permissions to how my data can be used by applications (like Creative Commons does for shared content)
  2. Tells you in a visual way what happens to your data when you visit a site
  3. Incorporates multi-ownership

It may be that these issues are addressed within the terms and conditions of a service. However, it’s very unlikely that a user will actually read the full contract. Therefore, a simple graphic icon with a link to a plain-English description, with an underlying microformat for machine-readable use, would be a welcome addition to the user experience. As the web becomes more mesh-like and data moves around more freely, conveying what happens to data owned by less-technical end users will become more and more important.

Problem to solve: platform

Finally, while it’s great having a conversation about this, these ideas aren’t useful to anyone unless someone goes ahead and builds it.

There are some existing projects and thinkers who are on these tracks:

  • The Diso Project is turning the WordPress open source blogging tool into a decentralized digital identity through an array of open standards, and the project’s Chris Messina has a lot of wise things to say about its development.
  • Laconi.ca is a decentralized microblogging platform, whose Open Microblogging standard may be adaptable into a more widely-scoped technology.
  • The Open Stack is a set of developing technologies that address some of the issues.
  • Marc Canter’s Open Mesh treatise goes into detail on many of the issues.

All of these are important contributions that strongly address some of the issues; however, we’re still a long way away from the vision of an open, social web.

Conclusion

I believe strongly, for the reasons stated above, that a decentralized, user-centered model for the web is the best way to advance it as an application platform.

Needless to say, I have my own ideas about how to actually build the platform, based on my Making the most of the web principles. However, it has to be a collaborative process: there’s no sense in building an open collaborative standard by yourself. My main concern is that the platform is created and works in an open, lightweight, flexible, easy-to-develop-for way while remaining secure and yielding control to the main user. The result will be an entirely new kind of platform, and presents a unique opportunity for anyone who wants to jump on board.

Images:

  • WOW! My 1000 Friends by Cavin was released under a CC Attribution Generic 2.0 License
  • Lonely Tree by Jule Berlin was released under a CC Attribution Generic 2.0 License
  • Logo 2.0 part II by Stabilo Boss was released under a CC Attribution-Noncommercial-Share Alike 2.0 Generic License
  • Upside Down by Johnny Jet was released under a CC Attribution Generic 2.0 License
  • Pro Control 24 by Aud1073cH was released under a CC Attribution-Share Alike Generic 2.0 License

Adapting to the real world

I’ve spent the last week in a series of very interesting mind-sharing meetings. First, the American Association of Colleges & Universities flew me into Washington DC to discuss the future of assessment in higher education with education professionals as well as new techsphere friends like Silona Bonewald and Amber Case. Second, Michael Byrne from Harvard University’s Hauser Center for Nonprofit Organizations invited me to speak there about the open, social web, the notes for which I’ll write up and post here soon. A great big thank you to both organizations for inviting me; I’ve felt privileged to have such insightful and interesting conversations over the last few days.

It seems like the shift in innovation in social tools has gone from developing new and interesting technologies to developing interesting models that happen to use technologies. This is a big step, and in some ways represents the space coming of age. There’s still plenty of technological development and innovation to do, but the platform and concepts are at a point where they can be adapted into all manner of social collaborative spaces, business tools, social experiments, games, art projects, and combinations of those things. It’s becoming a very exciting field to work in.

That said, some adaptation needs to happen, and it’s important to realize that these ideas only work in an effective way when they’re made relevant to the outside world. The social web is extremely political: it imposes an opinion about how the world should be open and social, democratic and centered on individual preferences, but ironically doesn’t allow for differences in that point of view. That makes it very hard for late adopters, enterprises, governments and public organizations to feel the benefit.

Over on Persona Prime, Silona makes this point about technology-inspired government transparency:

Where is the change management?  We are doing some big stuff here and we are poised to make serious mistakes and I see no prelim work being done to prevent this.  Where are the best practices in open govt documents?  All I see are “I want” lists.  I have not seen us doing anything serious to ally [the fears of people who might be wary of transparency].

It would be cool if every Fortune 500 company wanted to be on Twitter, but the reality is that they don’t, and often for very legitimate reasons. If what we’re doing is establishing a new, global, decentralized way to create, share, disseminate and discover information, then we have to take into account the differences in all the decentralized nodes. Embracing different corporate cultures, and different opinions on how communication should be, is part of that. Compromising and addressing the fears of companies and late adopters will build a larger userbase for all our tools, and make the platform much more useful in the long run.

Beyond the echo chamber

Web — Tags: , , , , , , — Ben Werdmuller @ 11:28 am

It’s exciting to see some of the big names in the Silicon Valley web scene shift gears from evangelizing about the power of the social web to explaining how it can be used to the outside world. For example, Robert Scoble, sometime Microsoft videoblogger and latter day net celeb has started Building 43:

A few people here and there are trying. I watch what Chris Messina, David Recordon, Marc Canter, Joseph Smarr, Kaliya Hamlin, and a group of others are trying to do by pushing a more open web. Those are the kinds of efforts that inspire me and are inspiring Building43. Can we build on what they are trying to do and take it to main street?

Marc Canter is taking it a step further and moving to Cleveland, Ohio, in order to start a new company that helps create Digital Cities:

Where workforce development, content production and local foods meet in the valley of health care, medical digitizing and the history polymers.  Add to that some Seniors interviews, green jobs knowledge bases and authorized venues, community services and common constructs – and you have our project!  Oh yah – and a business directory of……

In both cases, they’re taking the ideas that the web community has created – open, democratic platforms for content agnostic collaboration – and bringing them to communities and people who might not have been exposed to them but could benefit in real, tangible ways. The message I’m getting is that the theory has gained momentum and is rolling into something great; now it’s time to bring it to the world.

And me? I’m in Washington DC this morning, talking with the AAC&U about how these ideas can be used in education.

Top 10 blogs about the social web

Web — Tags: , , , — Ben Werdmuller @ 7:49 pm

Blogs.com just published a top 10 list of blogs about the social web that I wrote for them. People are already beginning to comment with blogs they’d love to see added to the list – if you know of one that I missed out, please feel free to add it or link in with your own blog post.

This isn’t, of course, meant to be the top 10 social web blogs ever – these are just some of the blogs that I keep coming back to regularly. (I had more that I dearly wanted to add, but don’t update quite often enough to be considered regular blog resources.) Everyone’s list is different, and equally important in itself; that’s the great thing about the social web.

Synchronize your iPhone with Google Calendar

General — Tags: , , , , — Ben Werdmuller @ 1:54 pm

Finally!This how-to isn’t in the usual remit of this blog, but it solves a problem I’ve had for a while – I can’t use the iPhone’s built-in calendar functionality with Google Calendar – so I thought I’d share.

The iPhone 3.0 software update supports CalDAV, an open standard for sharing and updating calendar information. Luckily, so does Google Calendar.

It should really be easier than this; one of the important aspects of integration through open standards isn’t just its possibility, but also its accessibility. This feels more like a hack than real functionality – but at least it works.

  1. On your iPhone, press Settings, and then Mail, Contacts, Calendars.
  2. Press Add Account… and then Other.
  3. Press Add CalDAV account.
  4. Follow the instructions for enabling Google Calendar in Apple’s iCal. Specifically, this means using your Google account details for the username and password, and setting the CalDAV server name to be https://www.google.com/calendar/dav/YOUREMAIL@DOMAIN.COM/user.
  5. I found that the iPhone didn’t pick up the authentication first time round – you may need to go into Advanced settings and re-enter them. The www in the server name seems to be important.

You can also do it using Google Calendar’s Exchange emulation, but that never worked for me. As with this, your mileage may vary.

Assume there’s value

Consultancy, Web — Tags: , , , , , — Ben Werdmuller @ 12:25 pm

Tony Stubblebine has written a great post about the lessons he’s learned from Twitter, which was created at Odeo while he was working there. This advice stands out for me:

Have you ever looked at a piece of social software and thought, or worse, blogged, that it was worthless? Here’s a trick for evaluating social software in a way that isn’t going to make you look stupid six months down the road: assume it’s valuable if people are using it. Then try to figure out what value they’re getting.

I’ve lost count of the number of times I’ve heard people be dismissive about Twitter, or Facebook, or another well-loved web tool because they didn’t understand it. I’ve even been guilty of it myself – but it’s not productive. Much better to figure out why people love it and learn from what you discover.

Learning on the social web

ScienceBlog reports that on Saturday, Carl Whithaus will announce the preliminary results from a California Department of Education study into increasing academic achievement using computers in 4th grade classrooms (emphasis mine):

During the first year of the two-year study, student achievement increased 27.5 percent, according to Whithaus, who is principal investigator of a study to evaluate the project’s effectiveness.

Computer use – and particularly, online community engagement – increases engagement with formal learning, which is great news for the e-learning software market. But I’m particularly interested in the effect of networks on informal learning – specifically, learning from our activities on the web.

Learning happens when two sets of experiences and assumptions are exposed with each other – in other words, when we communicate. The web is the most globally efficient communications method the world has ever seen, and as a result, I believe, may rapidly transform our world culture for the better.

Last month, I met with J. Nathan Matias from the World University Project, a project that aims to evolve higher education by shedding light on how people learn and teach around the world. His intent is to highlight experiences that people in the west have largely not been exposed to, and in so doing advance mutual understanding between our academic systems. It’s a brilliant idea, which takes advantage of the potential of a universally accessible global communications network.

Recently, the Iranian election swamped Twitter, to the point where they rescheduled maintenance in order to minimize the effect on dissidents in the country. Suddenly, because Iranian dissidents were online and conversing with people from the west, Iran seemed less like a scary, far-off country filled with terrorists and more like – gasp – a country filled with actual human beings. Clay Shirky had this to say:

I’ve been thinking a lot about the Chicago demonstrations of 1968 where they chanted “the whole world is watching.” Really, that wasn’t true then. But this time it’s true … and people throughout the world are not only listening but responding. They’re engaging with individual participants, they’re passing on their messages to their friends, and they’re even providing detailed instructions to enable web proxies allowing Internet access that the authorities can’t immediately censor. That kind of participation is really extraordinary.

On a smaller scale, we’re now interacting with people from other walks of life, with markedly different sets of skills and interests, on a daily basis. The opportunity available to us is not just to get our message out on an unprecedented scale – but to get other peoples’ messages in, and in the process make ourselves more educated and informed than we’ve ever been. On a personal level, it can help us with our fourth grade homework; on a societal level, it’s a revolution.

Opera Unite: divided

Data control, Web — Tags: , , , — Ben Werdmuller @ 10:46 am

Following on from my post yesterday on Opera’s new web-server-in-a-browser product, Chris Messina has written a pretty scathing, in-depth critique that also happens to be very smart and on the money. The Financial Times Techblog has an equally skeptical post but misses the point a bit.

In summary: Opera Unite uses the buzzwords of openness, without explaining why they’re useful in a way that makes sense for end users, and without actually being open.

The point Chris makes about users not caring about decentralization without having its follow-on benefits made clear resonates loud and clear with me. Here’s an interview where I talk about data portability and user control – two years ago. Nothing has changed, because nobody’s found a clear way to make this a marketable feature for end users. I’m beginning to think there isn’t one – which isn’t, of course, to say that I don’t strongly believe in the concept. It’ll allow for all kinds of new applications and push the envelope of what’s possible on the web, if we can find the business case for the steps in between.

Meanwhile, I’d love to post a counterpoint. Anyone want to write a post about why Opera Unite is awesome?

Opera Unite: a great idea, wrong center

Opera just released Opera Unite, a version of their web browser that also contains a built-in web server. As Harry McCracken explains over at Technologizer:

While it’s impossible to judge at this early date whether it’ll “forever change the fundamental fabric of the Web” as Opera promised, it’s a very big idea. Web browsers have always been about bringing information from the Web onto a PC. With Unite, Opera 10 still does that–but it can also fling information from the PC up to the Internet. [..] It launches with some apps that Opera developed itself, including a file-sharing service, a chat room, a music player, a photo-sharing tool, and a note-taker.

Engadget has a video introduction to the application.

This is yet another entrant into the decentralized social web space, but it violates one of my key rules of web application development: keep the browser invisible. Here’s why I think this is important.

I own three computers – two Windows laptops and a Linux machine that runs Ubuntu – as well as an iPhone. All can access the web. At any given moment, I can be connected with any of these devices, depending on which is the most appropriate. For example, I use a 17” laptop at home, but if I’m travelling I’ll take my 12” model; when these are switched off, I might use my iPhone to quickly check something on the web or write a swift email. Additionally, sometimes I connect using other peoples’ machines, or computers in offices I happen to be visiting.

One of the exciting features of the web is that I can use my applications and access my data from any of these. Although I have my preferences as to which device I use, my applications and my data don’t care. They’re agnostic.

As soon as I require a particular browser to be used, I limit myself. I can only access this functionality from the devices that have it installed – which in the case of my iPhone or someone else’s computer is an impossibility. The Opera Labs announcement provides a pretty sound reasoning for decentralized, user-centric services:

Our computers are only dumb terminals connected to other computers (meaning servers) owned by other people — such as large corporations — who we depend upon to host our words, thoughts, and images. We depend on them to do it well and with our best interests at heart. We place our trust in these third parties, and we hope for the best, but as long as our own computers are not first class citizens on the Web, we are merely tenants, and hosting companies are the landlords of the Internet.

However, Opera Unite provides a different kind of centralization and locks us into a particular way of accessing the web. It still yields useful functionality but is a far cry from the cloud-based social architecture that most web application providers are working towards.

Update: To clarify, you don’t need Opera Unite to access services someone else is hosting using Unite. But then aren’t you only half-participating?

XMPP: powering the real-time, really live web

When Google Wave was previewed last week, most people focused on its Gmail-like user interface and the slick way it handled collaborative spaces in real time. What was more exciting from a web technology point of view, although much less sexy, was the underlying protocol: Google Wave is built on top of an extended version of an open source real-time data standard called XMPP (aka Jabber when it’s used as an instant messaging context). This means that anyone can build servers and end-user applications that are compatible with Wave.

Yesterday, the BBC announced that they were using an open source framework called Hemlock in order to provide real-time web games on their Childrens’ site. Hemlock’s interfaces are built in Flash, but the real-time aspect is powered by XMPP. Developer Ron DeVera explained why over on the Hemlock blog:

XMPP is commonly used to enable chatrooms, like Gtalk or Facebook Chat. However, instead of just sending text, Hemlock lets you send all kinds of data at the speed of instant messaging. Even better, XMPP is designed to scale up and send data to many people at once, so you can push that data to multiple people in real-time.

In other words, it’s perfect for real-time applications on the web.

Traditionally, live web applications have used a development methodology called AJAX, which stands for Asynchronous Javascript And XML. In order to provide the illusion of a real-time application, the web browser needs to continue to ask the server if there’s any new data to ask, via a new AJAX request – which is a waste of bandwidth and resources both on the user and server side. XMPP, on the other hand, pings the client software whenever there’s new data.

Servers already need software to host and process dynamic web pages, as well as a database server to handle most types of user data. To use XMPP, you need to add an XMPP server to the mix – something that in the past was more fiddly than most people were willing to play with. However, times have changed, and ejabberd is free, open source and easy to install on Windows, Mac OS X and Linux servers. (I’m still at the early stages of playing with it; I’ll let you know how I get on.)

The XMPP community is still very small compared to the wider web, but developments like Wave and Hemlock should accelerate growth and interest in it. There are some interesting projects springing up, and lots of libraries available for XMPP development; XMPP programming is a skill developers should get in on now, before it really heats up.

Next Page »
Creative Commons License
Except where stated otherwise, all posts in this weblog are licenced under a Creative Commons Licence.