(This paper was written for my keynote at XP 2000 conference and its original form was published as part of the proceedings.) Extreme Programming (XP) challenges many of the common assumptions about software development. Of these one of the most controversial is its rejection of significant effort in up-front design, in favor of a more evolutionary approach. To its detractors this is a return to "