敏捷软件开发
敏捷软件开发模型与瀑布模型不同,敏捷模型强调通过快速迭代反复式的设计和开发。敏捷模型遵循敏捷软件开发宣言(AKA敏捷宣言),包括Scrum、Lean、 ExtremeProgramming(XP)、Crystal、ScaledAgileFramework(SAFe)、Kanban等。
2001年,17位软件专家聚集在犹他州的 Snowbird,一起创建并提出了敏捷宣言,规定了软件开发的最佳实践。
在敏捷开发环境中,软件是通过迭代开发生成的,整个SDLC都在一个具有时间限制的迭代中,通常从两周到八周不等。每次迭代都包含软件设计、开发、测试、验证及生产等阶段,这样一来,可运行的软件便会在迭代结束时递交到客户手中,那时,客户会提出其他的功能或性能需求,添加到后续的开发迭代中。这样做对客户有利, 因为他们能够在软件的开发过程中追求新的机会和商业价值,而不用*向已贬值的 软件项目中继续投入资金—软件项目之所以贬值可能是因为商业需求、机会、风险及关注中心的改变使SDLC延长。图1-4所示是敏捷软件开发模式,在该环境下,软件的开发是通过一系列周期为两周的迭代完成的。
图1-4 敏捷软件开发模式
敏捷模型有时被看作是一系列短小的 SDLC,尽管这确实体现了敏捷开发的迭代性,但没有完全抓住敏捷模型的原则和过程。例如,由于敏捷开发迭代地发布软件, 因此当前迭代中可能会出现上一迭代的维护问题,这就迫使开发人员(或客户)必须 要在进行维护和如期发布新功能或性能之间做出选择。因此,敏捷开发的一个弱点就 是新功能开发和旧功能维护之间存在的不可兼顾性,我们将在第 13章讲述这一内容。不可兼顾性与瀑布模型环境不同,在瀑布环境中,软件的维护主要是在软件开发过程 大部分已经完成且已进入生产过程时进行。
尽管敏捷模式存在上述弊端,但近十年来,该模式已被看作是软件开发领域的一个最佳实践,而且定义了21 世纪的软件开发。然而,它虽在传统应用程序开发环境中赢得了好的声望,但还未扎根于数据分析开发环境中,一部分原因是终端用户开发人员的倾向,他们支持数据分析环境,而且关注的是特定领域的最佳实践而非软件开发方法及最佳实践。
另一个缺点来自敏捷模型文献,此类图书经常描述一种理想化的“开发人员”原型,他们只负责可发布代码的开发,而不关注数据产品的创作,也不参与其他能带来商业价值的操作。在这些以软件为中心的敏捷模型描述中,数据分析开发环境中常见的活动(如数据分析或报表撰写)通常都不会涉及,或者只是略微一提。尽管敏捷模型文献有这类缺点,但敏捷方法、原则及技巧都可应用于且建议用于数据分析开发。
对于那些想探究敏捷模型的人来说,有许多好的资源可以借鉴,尽管这些资料描述的都是传统软件应用程序开发的,但还是值得参阅的。我在另一本书中讲述了敏捷模型对 SAS 软件开发的作用——软件开发是你的方法但不是你最终的产品 :提取敏捷模型用于终端用户开发及分析程序,帮你简单了解敏捷模型支持数据分析开发。