什么是快速应用程序开发

詹姆斯·马丁(James Martin)于1991年正式建立了快速应用程序开发(RAD)模型,它是瀑布式开发过程的一种替代模型。 经典的瀑布方法在建筑领域和其它变化范围小且变化代价高昂的行业中是一种有效的项目管理模型。 比如您开始建造一座桥梁,则不可能在建造了一半时将其改成渡口。

软件开发过程比较灵活。 面对同一业务问题往往有很多解决方案,同时变更解决方案的成本比较低。 结果,太过详细的设计和规划常常输给了快速试错的开发方式。 而且,对于用户来说,只有在看到具体的东西时才能提供更好的反馈。

快速应用程序开发方法论的核心是将昂贵的规划工作转换为快速建立原型。 RAD 模型将软件开发过程分为四个阶段:

需求分析

在此阶段,用户和项目团队一起确定未来系统的要达到目标,重点放在要实现的业务目标,对于需求的严谨性没有太多要求。 在原型设计阶段快速调整业务目标及需求的能力是关键。
需求分析
用户设计
开发
上线

用户设计

这时,开发人员开始构建原型。目标是以尽可能快、并且成本尽可能低的方式给用户提供一些可演示的东西。原型产品只满足一部分需求,或者只覆盖了少数场景,这是可以接受的。在代码级别抄近路也是可以的。

在原型准备好后,会拿给用户演示。团队收集所有可能的反馈,这里是原始需求发生改变的不可避免的地方。纸上似乎正确的东西在应用程序中可能完全不同。根据这些反馈,开发人员会重新修改原型,直到用户对结果感到满意。

开发

现在我们以确切地知道了我们要完成的东西。是时候开发并测试系统来为产品发布做地准备。不能偷工减料,这个时候的关注点是品质、可伸缩性、可维护性等。但是,用户会一直参与,会为已实现的功能提供反馈。

根据我们选择的工具和其它因素,我们在原型设计阶段开发的产品可能会被抛弃掉。

上线

这是最后阶段,包括验收测试、上线和用户培训。

快速应用程序开发的利弊
RAD 将平衡从可预测性转变为敏捷性,带来的正面和负面影响
正面:
高质量
有了用户在原型阶段的深度参与,最终的软件将可能与他们的任务更加相关,也更符合他们的期望。
更小的成本和风险
使用瀑布式开发方法,用户只能在项目交付时看到结果并提供反馈。 在这一阶段如果再进行变更 ,将会昂贵又费时。 使用 RAD方法时,在解决方案推出后重写一半解决方案的风险很小。
负面:
缺乏可扩展性
RAD 模型假定团队与最终用户之间的紧密合作。 当团队太大或利益相关者太多时,原型制作过程不可避免地会变慢。 如果每个人都参与,对变更需求的频繁讨论也变得非常困难。 因此,RAD被认为是中小型团队的最佳选择。
缺乏设计
在原型设计阶段偏重于特定的业务功能和走捷径的做法有时会导致整个解决方案设计不佳。
缺乏控制
显而易见,在项目完成原型开发阶段之前,是无法对范围、预算和时间进行预测。 但是,仍然可以基于需求计划阶段的结果来确定一个粗略的预期。
消耗最终用户太多时间
RAD 方法假设用户在项目生命周期的所有阶段都参与其中。 对于经验丰富的业务专家来说尤其如此,他们是公司中最忙的人,时间很宝贵。

RAD 与敏捷相同吗?

RAD 的术语比敏捷早10年,并且由于其迭代方法,通常被认为是敏捷的前身。 然而,这种情况并非如此。 RAD 是一种具体的开发方法,而敏捷是一种哲学立场,它不仅涉及开发。

可以公平地说,RAD 与 Scrum、KANBAN和许多其他软件一样,属于敏捷软件开发方法学的一族。

快速应用程序开发适用于我的项目吗?

如上所述,RAD 无法在严格的环境中使用。 以下情况下不适用:
  • 必须事先知道预算和时间表
  • 您没有定期拜访用户的权力,或者他们没有动力去花费他们的时间和精力
  • 由于规模大或利益相关者过多,该项目需要庞大的团队

这些条件对于大型企业或政府组织通常是满足的。 但是,即使在这种情况下,也可以应用RAD 的某些元素。 例如, 可以为固定价格的项目安排原型阶段和一定数量的变更的预算 。 考虑到您已经有相关的用户,原型范围可以限定在最不确定的部分。

另一方面,RAD方法对于中小型企业或部门项目非常有效,在这些项目中,商业用户拥有预算并有动力获得结果。 一个典型的例子是各种业务线(LOB)应用程序 - 一个通用术语,描述了为更有效地自动化和运行业务的某些部分而开发的应用程序。

同样,RAD非常适用于创建网站。 这些通常是规模很小的小型项目,涉众有限,但是尽早让他们参与是至关重要的,因为设计是一种比较抽象的事情,每个人都有自己的想法!

快速应用程序开发工具

RAD 方法论的成功很大程度上取决于原型制作的速度和紧密的协作,因此,选择合适的工具来支持这一点非常重要。 幸运的是,有众多工具可供选择。

设计与原型制作

比如: Figma、 Balsamiq、 Invision、 Sketch、 Adobe XD
诸如 Figma 和 InVision 之类的工具使图形设计师和 UX 专家能够快速完成任务并与最终用户共享可点击的原型,并提供完整的设计来收集他们的反馈。 一旦批准了原型的迭代,就可以将项目导出为前端开发人员可重用的格式,从而进入构建阶段。 这些工具广泛地用于创建网站,但也可以用于对更复杂的C端应用程序或门户网站的用户体验进行原型设计。
使用 Figma 协作进行网站设计
商业分析人员经常会使用诸如Balsamiq之类的其他工具。 他们专注于使用线框图制作用户体验的原型,而最终设计可以在后期实现。 对于具有复杂用户交互功能的大型系统的原始设计,这些工具都是不错的选择。
在Balsamiq中创建模型

开发

到目前为止,开发通常是创建应用程序中最耗时、昂贵且不确定的部分。 因此,现代 RAD 平台整合了经过验证的体系架构、实现了典型功能的现成组件以及可以促进快速开发的工具。 所有这些都可以帮助您在项目的原型开发阶段和后续构建过程中更快地交付成果。

像 Gartner 和 Forrester 这样的咨询公司一直在引入新的术语来区分这些平台:低/无代码应用平台(LCAP)、高生产率应用平台即服务(HPAPaaS)、多体验开发平台(MXDP)。 但是,最终所有这些都可以按其目标受众分类。

低码/无码平台

例如: Mendix、 Outsystems
这些平台的核心理念是使没有开发技能的业务用户(指高级用户或业余开发人员)能够非常快速地交付可用的应用程序。 当然,这种简单性意味着缺乏灵活性和多重限制。 我在上一篇文章中介绍了这些限制和相关的风险。 结果,这种平台的产出要么是原型,要么是非常基础的系统。
 

以专业开发人员为中心的平台

例如: Embarcadero RAD Studio, CUBA Platform, Ruby on Rails

这些平台主要通过提供更高级别的API和代码生成来提升软件开发的速度和乐趣性,开发人员无需编写重复的样板代码和通用基础功能。

Embarcadero RAD Studio(即以前的 Borland Delphi)是该领域的先驱者之一,以可视化UI设计器而闻名。 它出现在网络时代之前,仍然仅适用于桌面和移动应用程序。

如今,其他平台也将重点放在 Web 上,因为它是与最终用户进行交互的主要渠道。 例如,在 CUBA 平台上,我们尝试将可视化数据模型和界面设计器的便利性和速度与现代开源技术的强大功能结合在一起。 这种方法不仅可以提高原型制作速度,还可以使您将原型扩展为具有可靠且可扩展的体系结构的全功能企业应用程序。 利用我们网站上的 快速入门视频,您可以在几分钟内了解其工作原理。

在CUBA Studio 中设计应用程序界面
如果您有兴趣深入研究 RAD 平台及其发展,我推荐我的同事 Aleksey Stukalov 发表一篇 不错的文章以供您进一步阅读。

总结

快速应用程序开发是遵循敏捷哲学的开发方法之一。 RAD 的关键原则是最终用户的紧密参与以及基于用户反馈的快速迭代原型设计。 当用户满意时,重点便转移到了最终产品的交付上。

选择正确的工具对于确保快速制作原型并因此得以在项目中成功实施 RAD 方法至关重要。 幸运的是,针对不同类型的应用程序、项目阶段和团队技能的工具和平台种类繁多。

RAD 是一个古老的概念,但如今随着数字化转型的趋势以及快速上市的需求推动,它正在经历着复兴。 对于适合的项目类型和团队配置,RAD 方法有助于在降低风险和缩短时间的同时提高用户满意度。