敏捷开发的潮流并不是由敏捷工具来推动的。因为你可以仅使用命令行接口、单元测试工具和需求卡片来展开敏捷开发。但近年来,为了更好地支持敏捷开发,敏捷工具也有了很大的发展。其中部分工具是直接面向新型项目管理方式的。
特别是有些种类的工具已与敏捷开发密不可分。根据Forrester研究公司(Forrester Research)高级分析师Carey Schwaber的研究结果,面向敏捷开发的项目管理工具、持续集成构建工具和自动测试工具已是敏捷开发不可或缺的工具。
她在《敏捷过程研究(The Truth About Agile Processes)》的报告中指出,“敏捷开发团队将投资主要用于其团队所必需的工具,其中最先考虑的是敏捷项目管理工具,然后依次是测试工具、构建管理工具和软件配置管理工具。”
Schwaber还表示,各敏捷团队都有自己的管理方式,因此,他们对项目管理工具也有不同的需求。尽管如此,仍然有些团队仅靠电子表格和WIKI进行管理。不过Schwaber等人也指出,当敏捷成为大型团队开发进行大型项目的主流开发方式时,这些自己临时组织起来的技术将难以满足需求。
敏捷开发催生敏捷工具
敏捷开发在20世纪90年代晚期随极限编程(Extreme Programming,XP)运动而兴起。极限编程主要是关于单元测试、结队编程和简化的需求采集的运用,当然也有人会说极限编程还包括大量的提神饮料。
诸多的项目失败是促使极限编程出现的原因之一,比如无法准时交付产品,或者虽然成功交付却因为产品不符合客户需求而不能投入使用。牵涉诸多预先分析和建模的统一建模语言(UML)和统一开发过程(RUP)的发展也是极限编程形成的原因。
可以认为,2001年的《敏捷宣言(Agile Manifesto)》是对敏捷过程最好的阐释。在某种程度上,敏捷过程将极限编程系统化,为敏捷开发提供了参考标准和价值,并减轻开发人员面对需求变化时的压力。
基本上,这是一个致力于寻找缩短交付间隔,并增加迭代频率方法的敏捷潮流。团队有权限自行设定交付期限。交付可以使用的软件是最为重要的目标,而预先建模和需求采集阶段则要求尽量简单。并且,需求采集并不是在项目早期便结束,而是会在项目开始后很长时间内一直进行的过程。 |