Web 2.0: The Next Generation is Starting (2005)

[article]

The new Web 2.0 has quietly emerged; well, maybe not so quietly for those who wfere paying attention. But it is already changing the way we design, develop, test, and release Web applications. This change came about from users' new expectations of the Web. Web developers' and programmers' willingness to adopt these new expectations will not only fchange the way we see the Web, but will also change the way in which we work every day.

Over the past few months I've heard the term "Web 2.0" being tossed about in casual conversation--usually in conversations about newer asynchronous JavaScript and XML style user interactions. "Ajax" is a geeky way of defining the way that information on the page updates quickly in response to what you do, without the need to click a submit button to send a request to the server. Jesse James Garret first used the term to describe the techniques used by Google's gMail and Maps to asynchronously message the server to refresh data on a Web page. Google didn't invent it-just popularized it. Ajax makes Web applications start to behave as responsively as desktop applications-alleviates the annoyance of watching an hourglass while a Web page refreshes.

But that definitely is not the whole story.

Dale Dougherty of O'Reilly Media and Craig Cline of MediaLive coined the term to name the first Web 2.0 conference in 2004. They and the hundreds of people attending the conference all knew something profound was happening to the Web.

How to Spot a Web 2.0 Application in the Wild:
Web 2.0 applications
are more simple, responsive, and usable. Have you noticed that some Web sites are more responsive than others? Not only do these sites seem to load and navigate more quickly, these sites also seem to anticipate the information you need-information that is then presented to you before you start to look for it.

Because Web developers anticipate a higher need for certain information, the Web can be used for things you might not have previously thought possible. Google Maps makes it possible for me to see my house from a few thousand feet in the air, and I can see pictures that people took around my city on Google Earth with geo-tagged Flickr photos hacked in. Geo-tagged photos indicate your exact location on Earth using latitude, longitude, degrees, minutes, and seconds.

Web 2.0 Applications Leverage User Participation and Collaboration
You may have noticed that the Internet is becoming a more respected news source, that blogs carry interesting information, that Amazon.com can predict what books you might like, and how you can trust Imdb.com to provide good movie reviews. Amazon.com has redefined retail browsing by leveraging a visitor's viewing and buying habits to help him find what he's looking for-and even things he didn't realize he was looking for! eBay.com leverages a community of users to help each conduct business with minimal involvement from a middleman. Flickr.com and LiveJournal.com give you a way to find and talk to others with common interests from all over the planet. Del.icio.us leverages others' bookmarks giving you new ways of finding information on the Web. The Web has more of a human face, and the information you trust more often comes from people like you.

Web 2.0 Applications Are Built to Mix
You may have noticed that a few smart people, just like you, are doing some pretty incredible things on the Web. Paul Rademacher was having a hard time visualizing the swarm of new rentals appearing on the popular Craigslist.com, so, on his own, he built Housingmaps.com that merges Craigslist.com's housing data with Google Maps. Adrian Holovaty was interested in crime in his home city, so he embarked on a similar project. He created "Chicagocrime.org" that leverages Google Maps and publicly available Chicago crime data as his service to the public. Online personality "Pud" wanted data on how books sell over time, so he created Junglescan.com that leverages Amazon's open application programming interface (API), which is the way developers write code that talks directly to other code.

Years ago these types of applications wouldn't have existed-they'd have taken teams of developers a significant amount of time to build and a businessperson willing to fund the effort. Now not only does information on the Web come from people like you, but mixing and leveraging other applications, creating a "mashup," has raised the quality of the information to unimagined levels.

Out with the Old Interface-In with the New Designs
Web applications that force users to sit through irrelevant popup ads, boring flash animations, and that bombard users with eye- and mind-numbing, busy, user interfaces are quickly becoming passé. The fad of forcing users to sign up and log in is on its way out. So is aggressively selling to users and not giving them a voice to collaborate with the Web site owner and other users.

Web sites that offer more perks, and solve problems well are the sites now gaining popularity. Simple screen designs that support the activities of users are in, so are long pages that integrate more of what users want to see near the top. This design prevents users from having to navigate too deeply into a site just to get a certain piece of information. Small, relevant, easy-to-link URLs are now commonplace.

Translating Fads into Function
How does all this affect you? Web site designers need to know the user better than before. You can't push information at them. They'll pull what they want, and knowing what they want will help your site become more effective. Don't get too confident that you do know them; plan for unpredictable behavior. If your Web software gives them flexibility, you'll have to watch how they leverage that flexibility. If it allows them to collaborate, you'll have to see how they do it. That will give you insight about what they really want.

If you're a programmer, your site designers need you now more than ever. You'll need to collaborate more closely with them to understand your users, and then use your technical expertise to build innovative solutions that leverage your technical savvy. Combine what's valuable to users with what's technically possible. Today's Ajax techniques came about that way.

Designers, developers, and architects will have to work together to open up the application, to provide an easy-to-use API. How can you expose the functionality of the application in a way others can extend it? A good layered architecture that separates logic from presentation is critical. Doing so might make your application more popular, and more successful than you anticipate.

By exposing its API, Flickr allowed Fraser Speirs to write "FlickrExport," a plug-in that allows iPhoto users to directly upload photos to Flickr. This gives Flickr access to a customer base they wouldn't have otherwise had, and they didn't have to write the software themselves.

Getting into the User's Frame of mind
Testers need to be integrated more tightly with developers and designers. Applications that don't direct the user let him pursue a number of paths through the application. Simple, scripted test plans won't work. You'll have to use exploratory testing, assuming the role and goals of the user to stand a chance of finding the bugs the users will uncover.

If we're watching users closely, and responding to what we observe and hear, our Web 2.0 applications could change at a high rate. Automated regression testing will be critical to allow that high rate of change while maintaining quality. Lightweight testing frameworks like Fit and Selenium may become more valuable to these testing situations.

Many of our users rely on our API to support their sites and tools. We'll have to keep our well-designed API stable by using something like the open-closed principle. We'll have to cover the API with automated regression testing to ensure it remains bug free.

A Web 2.0 application empowers its users, letting them tailor their own experience with the application. APIs expose the application to super-users who can take it even further. Simple, elegant, user experience-based design and equally simple and elegant technical design are critical. At the end of the day, building Web 2.0 applications will change the way you think about applications and the way you build them.

 For more information on the open APIs mentioned: 

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.