车队工作站人员正在维修赛车

什么是快速应用程序开发?

快速应用程序开发,定义

快速应用程序开发 (RAD) 是一种软件开发方法,它侧重开发速度、迭代开发与用户反馈,而非详尽的前期规划。在快速应用开发 (RAD) 方法论中,开发工作会拆分为名为迭代的短周期推进。每个周期都会产出可运行的应用程序模块,可供用户测试并提交反馈。

用户在软件开发生命周期 (SDLC) 全程参与原型交互,能够在缩短上市周期的同时,产出质量更高的最终产品。

RAD 尤其适用于需要由用户界面 (UI) 需求主导开发的特定用例。既是界面尚在开发阶段,用户提前上手体验,也能在开发前期提供更有价值的反馈。这能够避免软件上线投入生产后,用户发现产品无法匹配需求而引发严重后果。

RAD 迭代的阶段

以下是 IT 先驱 James Martin 定义的 RAD 迭代的四个典型阶段。RAD 的历史可以追溯到 20 世纪 80 年代中期,IBM 的 Martin 在其 1991 年出版的《快速应用程序开发》一书中将其正式确立为一种特定方法,尽管在此期间其他人也同时提出了其他 RAD 方法。这里介绍的四个阶段是由 Martin 专门定义的,但 RAD 作为软件开发的一种通用方法,不能仅归功于 Martin。

需求规划

规划阶段的目标不是提前定义每项需求。相反,团队会尝试定义要解决的问题、目标用户、对用户最重要的功能以及开发的主要限制因素。这些限制包括预算、时间安排、与更广泛技术栈的整合以及合规问题。

该阶段不会生成庞大的需求文档,而是产生用户故事、线框图、功能列表、架构决策、项目目标和大致时间表。与其他方法相比,这种方法代表了最少的规划,这是有意的。规划有意保持轻量级,以便开发可以快速开始原型设计。

RAD 适配需求持续变更的场景,因为用户往往只有看到原型后,才能明确自身真实需求。在开发过程中实时沉淀经验,用于完善整体开发方案。本阶段仅作为过渡铺垫。

用户设计

团队在设计阶段快速构建模型、可点击原型、早期用户界面流程和功能演示。这些用于验证想法和发现可用性问题。在此过程中会获取利益相关者的支持。随着流程明确重要和不重要的过程,抽象的需求也会得到澄清。错误的假设会及早暴露出来,对产品应实现的目标的统一理解也会逐渐形成。

重要的是,不能把原型看作是“只是为了展示”的东西。它可以作为构建的基础,通常会直接演变为最终产品。

施工

它是核心开发阶段。原型稳定并形成统一目标后,开发人员就会通过小规模迭代、快速发布与集成,快速搭建各类功能。开发人员在短周期内并行作业,开展跨专业深度协作。团队不会完成一个模块后再开发下一个组件,而是同步推进全部开发内容。

例如,在更传统的方法中,首先由一个团队建立一个身份验证工具,然后再交给另一个团队建立一个报告工具。在 RAD 模式下,这将同时进行,两个团队将密切协作。

为了加快速度,快速应用程序开发工具通常包括低代码和无代码解决方案、自动化、可复用库、组件框架及其他预构建模板,而不是从零开始构建所有内容。这提高了交付速度,但有时会牺牲掉完美的架构、长期可维护性和文档记录。

测试和反馈

快速应用程序开发模型将测试和反馈视为整个工作流程的连续部分,而不是最终阶段。产品经理、QA 测试人员、业务利益相关者和最终用户应尽早并频繁地参与测试。

与传统方法不同,所有类型的测试(功能、可用性、工作流、性能)都在开发过程中进行,而不是之后。这一迭代流程旨在避免开发出技术层面可行但解决错误问题的软件产品。通过持续验证,开发人员可以更好地了解他们的解决方案是如何满足用户需求和业务需求的。

切换

已完成的、经过测试的应用程序将部署到实时生产环境中。这通常涉及迁移数据、用户培训和处理最后一刻出现的错误。由于在早期阶段进行了持续测试,因此与传统方法相比,过渡过程通常更平稳、更快速。

应用程序开发

开启旅程:云端企业应用程序开发

在本视频中,Peter Haumer 博士通过演示不同的组件和实践(包括 IBM Z Open Editor、IBM Wazi 和 Zowe),探讨了混合云环境中现代企业应用程序的开发现状。

RAD 面临的挑战

RAD 通常允许组织在预算范围内按时完成更多产品。但这种方法也有其缺点。

管理用户参与

最主要的挑战可能是如何管理用户和开发人员之间的众多接触点。RAD 是作为对瀑布式方法的回应而开发的;瀑布式方法是 SDLC 的一种较早方法,需要在下一阶段开始之前完成一个个顺序阶段。瀑布模型源于桥梁和建筑等物理基础设施的传统工程设计。但软件的行为与现实系统不同。它更加灵活,在开发过程中可以根据用户的反馈进行修改。

在瀑布模式下,用户一般仅在前期定义需求,后续开发人员搭建方案时便不再参与。RAD 模式会让用户全程参与项目全流程。这意味着组织需要安排利益相关者参与测试并提供反馈。通常最适合提供有效反馈的人员日常工作繁忙,但如果缺少他们的参与,项目便会存在失败风险。这会带来 DevOps 层面的管理难题,需要项目经理做好统筹管控。

较少控制

RAD 流程的灵活性使其非常实用,但这种灵活性往往是以牺牲控制力为代价的。瀑布式方法有严格的阶段,而 RAD 则有点混乱。因此,对于故障可能导致死亡或其他灾难的关键软件,或者对于有许多组件的大型系统来说,这种方法可能并不理想。

范围蔓延也是 RAD 的一个常见缺点。用户不断请求“锦上添花”的功能,导致时间延长和预算膨胀。在处理用户请求时,应优先考虑核心功能,这一点很重要。

文档记录薄弱

快速应用开发 (RAD) 节奏高效,开发人员会降低文档编写优先级,保障整体开发速度。该模式的弊端在于长期维护难度较高,后续新增开发人员接手项目时门槛提升,长期积累安全风险。

失去对全局的关注

快速原型制作通常意味着进展非常迅速,并且为了响应用户反馈要进行许多小的增量调整,以至于工程师们忽略了更大的架构问题。如果没有强有力的软件工程规范,系统设计可能会变得不一致,整合可能会一团糟,模型可能会发生漂移,软件项目的整体可能会与它们融入更大系统的方式脱节。在 RAD 模型下,可扩展性是一个关注点,因为大规模系统通常需要严谨的架构、规划和正式流程。

RAD 侧重开发速度,容易让团队优先处理即时需求、快速修复问题,形成短期导向思维,长期来看会衍生更多隐患。

RAD 与敏捷

RAD 与敏捷开发存在共通之处,二者均摒弃冗长固化的开发周期,重视迭代机制。但 RAD 主要优化应用程序交付速度,敏捷开发则侧重适配性强、可持续的软件开发模式。敏捷依托聚焦稳定交付节奏与冲刺迭代的 Scrum 框架,强调结构化可持续交付,通过规划迭代、明确目标、岗位与流程,保障长期工程体系稳定。

作者

Cole Stryker

Staff Editor, AI Models

IBM Think

相关解决方案
IBM Enterprise Application Service for Java

完全托管的单租户服务,用于开发和交付 Java 应用程序。

深入了解 Java 应用程序
DevOps 解决方案

使用开发运维软件和工具,在多种设备和环境中构建、部署和管理云原生应用程序。

深入了解开发运维解决方案
企业应用程序开发服务

云应用程序开发意味着一次构建、快速迭代和随处部署。

应用程序开发服务
采取后续步骤

借助 IBM 云应用程序开发咨询服务,您可以获得提供专家指导和创新解决方案,使您的云策略更为精简高效。与 IBM 的云专家合作,实现应用程序的现代化改造、扩展和加速,为企业带来变革性的成果。

  1. 深入了解应用程序开发服务
  2. 开始免费使用 IBM Cloud 进行构建