Skip to main content

The software development life cycle for Web 2.0

Realize the benefits of agile development

Kunal Mittal (kunal@kunalmittal.com), Executive IT Director, Sony Pictures Entertainment
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.

Summary:  Any software development life cycle must be properly organized before you can expect to successfully execute a project. This is also true of Web 2.0, where a well-planned life cycle will let you realize the vision of building Web services in shorter development cycles, allow quick testing and deployment, and provide for service versioning. In this article, get to know the software development life cycle for Web 2.0-based applications.

Date:  27 May 2008
Level:  Introductory PDF:  A4 and Letter (24KB | 6 pages)Get Adobe® Reader®
Activity:  986 views
Comments:  

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.

Social networking

The other aspect of Web 2.0, which I am not including in the scope of this article, is social networking. In almost every sentence of this article, you can replace the words community or content management with social network, and the article will probably still flow. That's the good part.

However to me, a social network implies much larger volumes of people and content than a community, which obviously brings up a few more technical challenges in terms of scalability and infrastructure. In terms of functionality, there might be a few aspects of social networks that require custom coding and would use more traditional software-development methods (although 80 to 90 percent should flow from content-management system functionality).

The place of RUP in Web 2.0

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.


The role of EA in Web 2.0

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.


Summary

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.


Resources

Learn

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

About the author

Kunal Mittal

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.

Comments



Trademarks

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Architecture
ArticleID=310533
ArticleTitle=The software development life cycle for Web 2.0
publish-date=05272008
author1-email=kunal@kunalmittal.com
author1-email-cc=