Intranet Journal   Earthweb  
Images Events Jobs Premium Services Media Kit Network Map E-mail Offers Vendor Solutions Webcasts

   Intranet Journal Subjects
Search Earthweb

Privacy Policy



internet.com
IT
Developer
Internet News
Small Business
Personal Technology
International

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers

internet commerce
Be a Commerce Partner
















 

[ Home | Discussion Forum | How Do I... | Lotus Notes Intranets | Microsoft SharePoint | Products | Shopping  ]

free news!

Extreme Programming (XP) Holds Promise
For Intranet Development - Part I


Gordon Benett

Printer Friendly Version

The change from client/server to Web-based computing cries out for a software culture that is simpler, faster, and more responsive to users than any traditional method. Paradoxically, even as the Internet drove the need for acceleration, software architects began standardizing on a set of elegant but decidedly heavyweight methodologies, the Unified Modeling Language (UML) and Unified Software Development Process (USDP). These techniques emphasize precise documentation and manageability at the expense of speed, making them best-suited for large, mission-critical projects.

One problem with using USDP and UML for Web development is that they require a large up-front commitment. Users must be interviewed by process experts who develop formal use cases, from which the architect(s) produce a UML model indicating the static and dynamic structure of the system being developed. In a typical USDP instance coding might not begin for 2-3 months - the delivery deadline for many Web projects. So, although the goals of Big Design Up Front are laudable - enhanced software quality and reuse potential, with reduced project risk - many Web projects scant these aims in favor of time-to-launch and usability.

Another problem with model-centric development, particularly for intranet sites, is that it can foster (or exacerbate) an us-versus-them culture, with IT on one side and the lines of business looking to the intranet for support on the other. Of course this isn't prescribed by UML, but the methodology's focus on numerous complex artifacts (formal use cases with pre- and post-conditions, class diagrams, state machines, etc.) is decidedly IT-centric and can give rise to tasks that users find inscrutable and irrelevant. Moreover, since UDSP emphasizes early, extensive modeling and design, there's a risk that architects, developers and users will fall out of synch early in the process and never recover.

In many shops the alternative to using a heavyweight methodology is to use no methodology at all. This "process," which goes by the name of code and fix, proceeds roughly as follows: developers come up with an idea of how the system should behave, either by talking to people who look like they might use such a system or by drinking large amounts of caffeinated beverages. They then code the system in their favorite language, taking pains to use features not currently listed on their resumes to "maximize value." Finally, when the system subsequently breaks and/or fails to add value in the eyes of a suddenly ungrateful user community, the developers work nights and weekends to fix it. Code and fix. Come on, admit it ... you "have a friend" who you think may have participated in a Web project using this approach.

Know your rights

The choice between unmanaged chaos and over-managed process is a long-standing one in software design, newly highlighted by the need for rapid, responsive development of Web-based systems. To address this need a class of lightweight methodologies has arisen, the best known of which is Extreme Programming (XP). XP is actually two things: a value system and a set of practices that can be applied iteratively to build software. Both aspects hold promise for the design and development of intranets.

XP aims to be people-centric as opposed to process-centric. To formalize this, XP enshrines a set of assumptions about users and developers in a pair of complementary Bills of Rights:

Customers have the right to:
  • an overall plan, to know what can be accomplished, when, and at what cost.
  • get the most possible value out of every programming week.
  • see progress in a running system, proven to work by passing repeatable tests that users help specify.
  • change their minds, to substitute functionality, and to change priorities without paying exorbitant costs.
  • be informed of schedule changes, in time to choose how to reduce scope to restore the original date.
  • to cancel at any time and be left with a useful working system reflecting investment to date.
Developers have the right to:
  • know what is needed, with clear declarations of priority.
  • produce quality work at all times.
  • ask for and receive help from peers, superiors, and customers.
  • make, and update their own estimates.
  • accept responsibilities instead of having them dictated.
  • 40-hour work weeks

If you delve no further into XP than to think about these lists and the business values they embody, you'll be ahead of the game. Of course, you'll do even better if you learn some tricks to bring these values to life in your projects. There are four essential activities in XP: Listening, Coding, Testing and Designing. According to Kent Beck, XP's originator and most zealous evangelist, "That's all there is to software. Anyone who tells you different is selling something."

At the outset of an Extreme Programming project, the customer delegates an onsite representative to collate user interests into a coherent stream of User Stories. .These are similar to UML's Use Cases, but with different mechanics that emphasize utility rather than technology. XP insists on using simple paper index cards to write down User Stories. In the memorable phrase of process guru Alistair Cockburn, "Think of a User Story as a Use Case at 2 bits of precision." The idea is to invest business users in declaring, taking ownership of and prioritizing their own requirements. Accordingly, the set of index cards capturing the User Stories plays a central role in the development process.

The narration and capture of User Stories begins with developers interviewing (i.e., listening to) users, but the listening is active, and quickly becomes a two-way communication that XP calls a Planning Game. The customer begins by prioritizing the User Stories in terms of business value. The developers then estimate how long it might take to implement each story in code. For instance, the story, "Employees should be able to read the Employee Handbook on-line" might get an estimate of a week, whereas a story like "The Sales force needs to be able to review real-time inventory data via wireless PDA in front of prospective customers" might get an estimate of several months. At this point, accuracy is less important than negotiating a first release cycle. Given the developers' rough schedule estimates, users can re-prioritize based on release phasing. "Let's get the Employee Handbook up right away, then give Sales some presentation templates to let them know we haven't forgotten about them, then shoot for wireless access in release 3." Putting this kind of roadmap in front of all stakeholders very early is the goal of XP's Planning Game.

In the second and final part of this article, I'll cover XP's remaining activities - coding, testing and design refinement - and point out why I think the process has particular value for building intranets.

XP Resources

Online

Extreme Programming: A gentle introduction - the most navigable online overview, thanks to a number of helpful imagemaps.

XProgramming.com - a community resource for those interested in XP and related topics.

Extreme Programming Wiki - Ward Cunningham's WikiWikiWeb site, a living evangelical document easy to get lost in due to the rambling nature of the Wiki medium.

XPlorations - an informative collection of personal essays on the topic by software engineer William Wake.

Recommended Reading: Rational Unified Process - a resource for Rational Software's RUP, the most popular incarnation of UDSP.

"A comparison of RUP and XP," a white paper by John Smith, Rational Software. PDF.

"Using Rational Unified Process for Small Projects: Expanding Upon eXtreme Programming," a white paper by Gary Pollice, Rational Software. PDF.

Books

Extreme Programming Explained: Embrace Change, by Kent Beck (Addison Wesley Longman, Oct 1999). The key manifesto of XP, by its originator.

Extreme Programming Examined, by Giancarlo Succi, Michele Marchesi (Addison-Wesley, May 2001). A rewarding collection of essays by theorists and practitioners committed to describing XP, warts and all.

Gordon Benett is a technology strategist with over 16 years experience analyzing, architecting and developing information systems. He is currently with Aberdeen Group (Boston, MA), where as a Senior Research Analyst he follows the Enterprise Java and Middleware markets. Gordon founded Intranet Journal in 1996 and remains a reader and contributing author. He welcomes your comments at gbenett@mediaone.net.

Printer Friendly Version

Of Interest
· Intranet eXchange Discussion Board

· Advice and Opinions

email this page

Tutorials
and more at:
Intranet Journal's Tutorials
Intranet Journal Favorites

Creating a PHP-Based Content Management System

The Spyware Guide

Introduction to Microsoft SharePoint Portal

Intranet Journal
Part of the EarthWeb Network

Managing Editor
Intranet Journal

Tom Dunlap

EarthWeb Home Page
Jupitermedia Home Page

Media Kit



internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers