极限编程是 Kent Beck 与 Ward Cunningham 在 20 世纪 90 年代初期提出来的,相对于传统的软件工程方法,它具有以下特点:
(1)一种轻量级的软件开发方法,以实践为基础的软件工程过程和思想。
(2)它使用快速的反馈,大量而迅速的交流,通过及时和大量的测试来最大限度地保证和满足用户的需求。
(3)强调用户满意,开发人员可以快速反应需求的变化。
(4)认为代码质量的重要程度超出其他所有的内容。
(5)强调团队合作,除了开发人员,还特别将用户置于开发团队之内,两者的关系不是对立的,而是相互协作的,具有共同的目标,即提交正确的软件。
极限编程是以 User Stories(比 User Case 更细分)为驱动并考虑相应的软件体系结构探索和确认后,对大多数的 US 进行评估和优先级设置后给出初试的版本发布计划(相当于里程碑计划)。之后团队进行迭代开发过程中,其中包括迭代计划的制订和基于 US 的迭代开发过程。每个迭代之后都会进行版本的发布,随之根据客户制订的验收测试用例进行验收测试。