前面我们介绍了Scrum、精益和看板,这三种都偏向于过程管理,代表敏捷方法论的一大派系。在敏捷领域,还存在另一大派系面向工程实践,代表性的有极限编程(eXtreme Programing,XP)。这两个派系分别从开发方法和管理方法给出了各自关于敏捷方法论的阐释,但两种之间也存在一定的共性。
针对如何实施敏捷方法,目前主流的做法就是把极限编程与其它过程管理框架合起来一起应用,通过Scrum、看板等先确定软件开发的基本流程和步骤,再通过极限编程中的各项工程实践来具体实现这些流程和步骤。本文对极限编程同样做一个简要介绍。
1. 极限编程方法
极限编程方法试图解决的问题包括软件不能适应需求变化、软件缺陷多、代码质量低、设计不良、项目中浪费大、开发效率低等各个方面。对于如何解决这些问题,极限编程认为可以提炼出一批工程实践用于指导软件开发工作。
回到迭代模型,极限编程是迭代思想的一种表现形式,包括多种迭代形式,分别为分钟级迭代、小时级迭代、每日迭代、数日迭代、一周迭代和季度迭代,每一种迭代形式都有对应的工程实践(见下图)。除此之外的一系列工程实践也确保每种迭代形式能够正确有效的执行。
在引入极限编程过程中,我们也发现不能完全套用流程,可以从工程实