敏捷开发是一种以用户需求进化为核心、迭代、循序渐进的开发方法。首先把用户(客户)最关注的软件原型做出来,交付或上线,在实际场景中去快速修改弥补需求中的不足,再次发布版本。通过一些敏捷实践方式,细化story,提供更小的迭代。如此循环,直到用户(客户)满意。适用于需求不明确、创新性或者需要抢占市场的项目。
举一个微软的例子,微软的Visual Studio 2010是公司内部首个因敏捷开发模式而受益的Visual Studio版本,该软件发布于2010年4月,耗费了两年的时间完成开发,但随后研发团队发现软件中的许多模板对于敏捷开发者来说太过笼统,几乎没有太大的实际意义,微软的软件研发策略也就从此开始发生了巨大变化。以往的产品更新周期为两到三年,目前的版本更新速度已经缩短至一个季度左右,这在瀑布式开发模式下是难以想象的。
敏捷式开发在国外大放异彩,当然在国内也不例外,国内很多研发者们结合当下软件市场环境,也有了新的研发策略。
国产开源的禅道项目管理软件,2009年开始遵循Scrum(敏捷式开发中比较流行的一种方式)的管理思想,发布了第一个产品版本。自发布以来,禅道曾连续四年荣膺国内外软件测试行业最常用测试管理工具第一名,也算是国产软件的骄傲了。
在产品开发过程中,禅道研发团队认为Scrum方法虽然注重实效,操作性强,非常适合软件研发项目的快速迭代开发,但它只规定了核心的管理框架,还有很多细节流程没有完善。于是禅道团队结合国内研发现状,整合了Bug管理、测试用例管理、发布管理、文档管理等功能,完整的覆盖了软件研发项目的整个流程。
在禅道软件中,明确将产品、项目、测试三者概念区分开,产品人员、开发团队、测试人员,三者分立,互相配合,又互相制约,通过需求、任务、Bug来进行交相互动,终通过项目拿到合格的产品,是敏捷式开发的优秀案例。