The new New Economy Analyst
Report - April 11, 2001
Juergen Daum’s new New
Economy Best Practice service
©2001 Juergen Daum. All rights reserved.
As more and more of the economy is dependent on Information
Technology and software applications, software developers are becoming a scarce
resource. No wonder that software companies and other organizations who are
engaging software developers are looking for ways to improve their
productivity. “Extreme Programming” is the latest method to make that happen.
The goal is to make the code-writing process less random, get software to
customers more quickly, and eliminate the inevitable onslaught of bugs
discovered during the traditional integration phase.
So what is “Extreme Programming” ?
The cornerstone of the method is a set of
directions for keeping code “elegantly written”. The most important change to
the traditional way of programming is, that software developers do not work any
more separately, alone in front of their computer. With “Extreme Programming”
programmers have a comrade at their side. “Sometimes if you’re coding alone,
you end up going off on the wrong thing for a while,” said one of the adopters
of “Extreme Programming”. “If you are ‘pair programming’, that doesn’t happen,
or it doesn’t happen for very long…As soon as one person runs out of ideas, the
other person just picks up on them.” But pairing with a coding partner isn’t
the only change. Extreme Programming formalizes the process of writing code via
its series of outlines and
work rules. Extreme Programming, or XP, is designed for use with small
teams who need to develop software quickly in an environment of rapidly
changing requirements.
The methodology was invented in 1996, when
automaker Chrysler called upon Kent Beck, a software developer, to save a
project known as Chrysler Comprehensive Compensation, or C3. Kurt Beck
developed the method and succeeded with the project at Chrysler. The C3 system
now provides monthly payroll information for Chrysler employees.
One of
Extreme's key tenets requires programmers to release a nuts-and-bolts version
of its product to the customer first and then continue to build additional
features afterward. This immediately remedies the time-to-market problem, and
customers wind up with a less buggy product to which features are added as the
customer demands. Extreme also requires programmers to maintain a direct
relationship with the customer. Rather than packing a product with thousands of
features, the customer can specify exactly what they want, and the programmer
can focus on perfecting a few features. Programmers must write tests for their
own programs before they begin coding. These tests are used instead of an
independent "quality assurance," or testing, group--a technique that
will save time, according to Extreme's advocates. During the coding process,
programmers also practice a technique called re-factoring. This involves constantly
working to simplify the code. By keeping code clean and defining things only
once, programmers reduce the number of errors that must be addressed later. For
code writers themselves, one of the most striking differences is Extreme's
requirement of pair programming. Once they switch to pairs, many programmers
say they prefer it because the team approach can dramatically boost
productivity and quality. Extreme also mandates communal ownership of all code.
More
and more companies begin turning to XP. Ford Motor, Chrysler and IBM are among
the companies using Extreme Programming in at least some capacity. Also smaller
software companies are adopting the concept to slash software delivery times.
And it works: those companies are getting products to the market much faster.
Beck
has said the method works best with groups of two to 10 programmers, a size
that fosters good face-to-face exchanges and direct verbal updates. Projects
that are contained to a small geographical area are also better-suited to the
requirement for pair programming. Extreme's advocates say it's changed their
work lives. Traditional methods to help organize software development are not
that productive than XP. In the Waterfall method, for example, companies lay
out in advance all the features that will be included, assign tasks to
different people, and then begin coding. An integration process follows at the
end. It assumes that the customer knows what they want up front, which they
never do. And if the customer changes their mind, it's a big problem. Extreme
Programming, by contrast, advocates adjusting and building onto products
throughout the development cycle. It also uses an ongoing strategy of
collaboration and face-to-face contact. It is the human interaction that
ultimately makes the methodology a success.
There
are twelve key practices in XP (or rules). You find a more detailed description
about them + additional information about XP at xprogramming.com and more
information and a “gentle introduction to XP at extremeprogramming.org.
More about about New Economy Economics and
Management Best Practice in general, and about other related topics will be continued
here in my newsletters. To subscribe for my free-of-charge e-mail push
newsletter click here.
©2001 Juergen Daum. All rights reserved.
Copyright,
Trademarks and Disclaimer