|
|
|
|
|
|
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. 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: 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. 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. 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.
|
| |
|
· Intranet eXchange Discussion Board · Advice and Opinions |
Intranet Journal's Tutorials |
|
Managing Editor |