极限编程,敏捷软件开发,复杂性,不确定性,需求调整,团队合作,持续集成,自动化测试,简单设计,持续重构