Extreme Programming

When should Extreme Programming be Used?