|
|
April 2, 2001 |
|
|
RADICAL SIMPLICITY
Simplicity, But With Control
continued...page 2 of 3
![]() | ||||
|
"Initially, I had serious concerns about XP. They were asking me as a business user to make a large leap," recalls Jim Bahrenburg, VP of product management at Evant Solutions Corp. in San Francisco. Evant developed a complete suite of integrated inventory planning and forecasting, merchandise and inventory management, and decision-support applications. In extreme programming, Bahrenburg plays the role of Evant's customers, the users of the product.
After the user selects the first set of functions, he or she is asked to write the test that will prove the function works. With the test copy in hand--often little more than a couple of lines of script--the developers start writing code to satisfy the test. "It didn't take me too long to realize the power of XP," Bahrenburg says. "The programmers get immediate visibility into what I want, and XP ensures that they're actually doing it."
Of course, users usually aren't skilled at writing tests. "We tried to teach users to write XML tests. Now we're developing a tool that will let them write a test script in plain English and automatically translate it to XML," Bahrenburg says.
Describing the application as small chunks of functionality is key. "You want to slice the requirements small enough for a two-to three-day delivery cycle," says Peter McBreen of McBreen Consulting, a Calgary, Alberta, XP consulting firm.
The payoff from extreme programming comes in seeing fast results. The customer knows within days or hours if the new code does what he or she wants. If it doesn't, the user scribbles another user story or test script and the programmers go back to work.
![]() |
Even IT managers who can accept the lack of up-front requirements-gathering or the writing of test scripts before coding balk at the paired-programming approach. XP specifies that development teams consist of no more than eight to 12 people who are paired into code-writing groups. Two programmers sit at a single workstation to write the actual code, analyzing, designing, talking, and arguing as they go. The pairs often rotate to different pieces of the application and the pairing of individual programmers is changed. Within a few iterations, every programmer is familiar with every part of the application and with all the other team members.
From a productivity standpoint, paired programming seems counter-productive; however, studies conducted by Laurie Williams, a professor at North Carolina State University in Raleigh, N.C., suggest otherwise. Williams' studies found that the pairs turned out 15% less code than a solo programmer in a given amount of time. However, the pairs' code had fewer bugs. The savings resulting from fewer defects and reduced bug fixing offset the slower initial code production.
continue on to page 3
return to page 1
|
|
|
|