I'll add that "Extreme Programming" and other forms of Agile is mostly a buzzword/re-branding to wrapper quite a few "best practices" from the OOP world. Which is appropriate since so many of the early agile manifesto folk were the same ones that pioneered the OOP best practices.