Extreme Programming (XP) was
created in response to problem domains whose requirements change. Your customers may not have a firm idea of what
the system should do. You may have a system whose functionality is expected to change every few months. In many
software environments dynamically changing requirements is the only constant. This is when XP will succeed while
other methodologies do not.
XP was also set up to address
the problems of project risk. If your customers need a new system by a specific date the risk is high. If that
system is a new challenge for your software group the risk is even greater. If that system is a new challenge to
the entire software industry the risk is greater even still. The XP practices are set up to mitigate the risk and
increase the likelihood of success.
XP is set up for small groups
of programmers. Between 2 and 10. Your programmers can be ordinary, you don't need programmers with a Ph.D. to
use XP. But you can not use XP on a project with a huge staff. We should note that on projects with dynamic requirements
or high risk you may find that a small team of XP programmers will be more effective than a large team anyway. |
XP requires an extended development
team. The XP team includes not only the developers, but the managers and customers as well, all working together
elbow to elbow. Asking questions, negotiating scope and schedules, and creating functional tests require more than
just the developers be involved in producing the software.
Another requirement is testability.
You must be able to create automated unit and functional tests. While some domains will be disqualified by this
requirement, you may be surprised how many are not. You do need to apply a little testing ingenuity in some domains.
You may need to change your system design to be easier to test. Just remember, where there is a will there is
a way to test.
The last thing on the list
is productivity. XP projects unanimously report greater programmer productivity when compared to other projects
within the same corporate environment. But this was never a goal of the XP methodology. The real goal has always
been to deliver the software that is needed when it is needed. If this is what is important to your project it
may be time to try XP.  |