"You ain't gonna need it!" (short YAGNI) is one of the most popular, and probably also most misunderstood and misused mantras of Extreme Programming. Again and again I see it used as an excuse to not improve a design "because it already works".
I guess the following has already been stated in hundreds of places on the web and elsewhere, in some form or another - on the other hand I also think it can't be said too often:
YAGNI applies to functionality, not design. All Agile approaches I know of are quite adamant about the fact that you need a clean, well decoupled, cohesive, duplication-free, expressive and extensively tested design from the beginning. One that is optimized for the currently implemented (and needed) functionality.