Web 2.0 application-development processes need to be more agile than standard development methodologies allow for. In a Web 2.0 world, your users are going to be more agile in their thinking, will want things more quickly, and are getting used to rapid change. The role of Web 2.0-enabled content-management tools is becoming clear. Here's an example of what I mean:
Look at Joomla, Drupal, or other such tools—rapid development environments that allow semi-technical folks to quickly put up a Web 2.0-based community site with all sorts of functionality, including blogs, forums, surveys, Google gadgets, RSS feeds, and even multimedia content. These tools also allow focused campaigns and ads to generate revenue and have several traditional e-commerce capabilities. The functionality comes prebuilt and prepackaged, and minimal effort is required to get the site up and running. As the developer responsible for providing this underlying functionality, however, you need to configure fine-grained security and have complete control over the user interface (UI). If you're a savvy developer, you can write new plug-ins and extend the functionality of these platforms.
This process is a great example of Service-Oriented Architecture (SOA) and Web 2.0 development. It's basically taking a platform—say Joomla—and customizing it with Cascading Style Sheets and several third-party plug-ins to meet particular functional and business needs. Thus, producing a fairly robust community site is now a matter of days, not weeks or months. Furthermore, this paradigm allows iterative development—so you can add and customize plug-ins to your site on subsequent rollouts.
Content-management systems and community Web sites are by no means the limits and boundaries of Web 2.0. What I am describing is merely one possible use case. However, if you think about it, this is the space in which Web 2.0 really excels and has the most maturity in terms of its tool set. This is also how most people are using Web 2.0, so it warrants discussion.
Traditional life cycle models such as Waterfall or IBM® Rational® Unified Process® (RUP®) are (in my opinion) a little too rigid for Web 2.0 development. If you were building a core Web 2.0 platform such as Joomla or WordPress, RUP would probably be very well-suited to the task.
I would go so far as to argue that you might really need a solid software development process for such a project. Your scope and feature set can quickly get out of hand unless appropriate controls are in place. Knowing the requirements and having a solid design plan for a project such as this are critical. Remember, you have no idea who will be using what you're building or how they will use it. Designing with that in mind requires careful planning and a solid process to ensure success.
The need for agility in Web 2.0
Consider the application of Web 2.0 on a project. Your marketing team comes to you asking for a community platform to promote a new product. The team members want some commentary and buzz created, maybe a few videos, and perhaps a survey. They really are trying to come up with a strategy to generate enthusiasm around a new product and want to use the Internet as a means to promote and sell it. A novel idea in today's world just isn't enough on its own.
You're the information technology (IT) person who's going to help them with all of this. You have an initial meeting with the marketing director and hear his or her ideas. You immediately think, Web 2.0 content-management system (CMS), such as Joomla. Do you have the luxury to ask very detailed questions on how the site should function? Do you have the luxury of creating a traditional requirements document, use cases, and so on? Will you create a Unified Modeling Language (UML) design of the system? The answer should be, “Obviously not!”
You need to be agile. You'll do some basic fact finding as to the functionality required, and then you'll download and install Joomla. You'll find the appropriate plug-ins and get the functions working. A majority of your time—probably more than 75 percent—will be spent on the custom style sheet that you need in order to brand the site for the new product you're promoting.
Depending on the details and scope, from idea to deployment, the marketing site for the new product should take less than one month to create. Remember, this site will probably have a short shelf life. In a majority of cases, it's not going to be a site that someone uses for five years—or even one year.
This rapid development process can be defined more formally in terms of a software life cycle model. You've probably read about extreme programming, Scrum, and other agile development processes. To me, those are also probably too rigid for what you need. You must define which aspects of these agile processes you can adopt to best suit your needs. User stories, iterative development and releases, and a simple planning game are the key elements of your new process. It's also a good idea to include a quality assurance and testing cycle, as well as user-acceptance testing.
Enterprise architecture (EA) has to wear a new hat in this sort of world. Traditional practices that outline standards, frameworks, policies, and governance are more critical, but they also need to adapt to the agility required of a Web 2.0 project.
In terms of standards, the EA group should focus on which Web 2.0 tools to use as well as how and where to deploy them. The group need not micromanage each plug-in you choose to use, for example.
The EA group should ensure that the infrastructure is scalable and, more importantly, secure. Beyond that, some governance must be in place to prevent the development team from doing anything that would compromise the integrity of the systems and security. The EA group can also define standards for the management and monitoring of these platforms. Customer experience is key for community Web 2.0 sites. You have only one shot with each customer. You don't want customers to visit your site and find it down or slow to respond.
A key role that EA could play in a Web 2.0 CMS centers on content protection. The team should work closely with your information security representatives and probably your legal department to define the protection standards and legal disclaimers, terms of service, and the like, so that your company is protected when you launch the community site. EA can also help define practices and governance processes for the site content. After all, you don't want some blogger to post abusive or offensive language or images on your site.
Web 2.0 requires agility in your software development process. Try to cross the barriers of standard requirements templates and design processes, and adapt them to be more iterative. Build for change, build for flexibility, and leverage the rich tools available for streamlining your Web 2.0 projects. Then, use your EA group to define standards for content protection, security, management, and monitoring of the Web site.
Learn
-
"The Best of Web 2.0
content-management systems":
Discover the top CMS-related Web 2.0 applications, software, open source, Web
sites, products, and services.
-
"Creating an
Agile Environment":
Read Gregory S. Smith's Software Development Magazine article.
- In the
developerWorks
Architecture zone,
get the resources you need to advance your skills in the architecture arena.
- Browse the
technology
bookstore
for books on these and other technical topics.
Get products and technologies
- Download
IBM
product evaluation versions
and get your hands on application development tools and middleware products from
DB2®, Lotus®, Rational, Tivoli®, and WebSphere®.
Discuss
- In this
Inside Architecture
Blog,
read how EA enables Web 2.0.
- Learn more about
EA
and Web 2.0.
- Check out
developerWorks blogs and
get involved in the
developerWorks
community.

Kunal Mittal is a consultant specializing in Java technology, J2EE, and Web services technologies. He is the coauthor of and has contributed to several books on these topics. He works as a director within the Domestic TV IT group for Sony Pictures Entertainment, where he's responsible for the technical architecture and management of applications for that division. In his spare time he writes for IBM developerWorks, consults on SOA, and is a private pilot. For more information, visit Kunal's Web site at www.kunalmittal.com or contact him at kunal@kunalmittal.com.





