极限编程,传统软件开发方法,敏捷开发,测试驱动开发,持续集成,客户参与。