This post originated from an RSS feed registered with Agile Buzz
by Keith Ray.
Original Post: "Can do" not "Have to do"
Feed Title: MemoRanda
Feed URL: http://homepage.mac.com/1/homepage404ErrorPage.html
Feed Description: Keith Ray's notes to be remembered on agile software development, project management, oo programming, and other topics.
There's an idea that XP is only useful for frequently-released
projects, and not so useful for projects that ship annually or less
often. I would say that XP is useful for both. Because XP
brings up the quality levels for for those teams who adopt practices
like automated acceptance tests, test-driven-development, and pair
programming, and drives down the numbers of defects produced, XP
projects are able to ship more frequently than once a year. (They don't have to.) They're able to release more often because the members of the team and their users can be more confident that what they ship to the user has useful features and few defects.
There's an idea that XP is useful only for projects where the
requirements are frequently changing. I assert that our
understanding of requirements and of the design is frequently changing even on those projects that seem to have "stable" requirements. All the tools of XP can help a project with stable requirements deliver a superior-quality product.
"Stable" waterfall projects often don't "demo" or test their features until the end, at which time they don't have time to accept the changes that the users may want: that's an artificial freezing of the understanding of requirements. "Oh well, those changes will have to go into version 2."
Iterative/incremental projects demo and test their features as they are
implemented, which allows the users (or user-proxy "project managers",
testing staff, and the programmers) to update their understanding of
the requirements against the functioning code.