什么是软件开发中的 green field 和 brown field 模式 - 绿地开发和棕地开发

原文地址:https://jerry.blog.csdn.net/

今天我在阅读一篇文章时,看到了一个词汇:greenfield approach,这个词汇和 migration 相对应。

这是两种不同的软件开发模式。

随着软件成为最快、最具活力的行业之一,它要求开发人员使用适当的软件开发工具和方法来开发满足现代企业不断增长的需求的产品。绿地和棕地软件开发是开发尖端软件的两种方法。

What is Greenfield Software Development?

绿地软件开发是指为全新环境开发系统,需要从头开始开发——没有遗留代码。这是一种在您重新开始并且没有限制或依赖关系时使用的方法。

如今,纯绿地项目非常罕见,您经常最终会交互或更新一些现有代码或启用集成。 Greenfield 软件开发的一些示例包括:从头开始构建网站或应用程序、建立新的数据中心,甚至实施新的规则引擎。

绿地软件开发的优势

  • 提供从头开始实施最先进技术解决方案的机会
  • 为软件开发提供一个全新的平台
  • 无需在现有系统或基础设施的限制下工作
  • 与现有软件、先入为主的概念或现有业务流程没有任何依赖性或联系

绿地软件开发的缺点

  • 没有明确的方向,风险程度相对较高
  • 由于需要定义新系统的所有方面,因此可能非常耗时
  • 有这么多可能的开发选项,可能没有清楚地了解要采取的方法
  • 在合适的时间范围内让每个人都参与做出关键决策可能很困难

What is Brownfield Software Development?

Brownfield 软件开发是指在现有或遗留软件系统存在的情况下开发和部署新的软件系统。 棕地开发通常发生在您想要开发或改进现有应用程序时,并迫使您使用以前创建的代码。

因此,任何新的软件架构都必须考虑并与现有系统共存——以增强现有的功能或能力。 Brownfield 软件开发的示例包括:向现有企业系统添加新模块、将新功能集成到早期开发的软件中或升级代码以增强应用程序的功能。

Brownfield 软件开发的优势

  • 提供一个从预定方向开始的地方
  • 提供对现有技术解决方案进行改进的机会
  • 支持使用定义的业务流程和技术解决方案
  • 允许重用现有代码以添加新功能

Brownfield 软件开发的缺点

  • 需要对需要在其上构建新系统的现有系统、服务和数据有透彻的了解
  • 可能需要重新设计现有复杂环境的很大一部分,以便它们对新的业务需求具有操作意义
  • 需要详细准确地了解现有业务和IT的约束条件,这样新项目才不会失败
  • 处理遗留代码不仅会减慢开发过程,还会增加整体开发成本

Comparison Overview of Greenfield and Brownfield Software Development

哪个更适合您:绿地或棕地软件开发?

软件是每个产品或服务的核心。因此,选择正确的开发方法对于软件的成功至关重要。由于绿地软件开发具有更高的风险,因此敏捷实践通常被认为是最好的方法;通过小迭代开发软件并将其交到客户手中以获得快速反馈,它们有助于有效处理风险。

另一方面,Brownfield 项目通常建立在更稳定的基础架构上,并具有已确认的业务流程;因此,他们不太可能面临风险。然而,开发工作的很大一部分用于理解和整合现有的业务环境,而不是交付价值。对于棕地开发,确保成功的最佳方法是使用迭代方法来改进现有的逻辑和物理架构并加速开发、提高产品质量并最大限度地减少缺陷。

尽管没有一种方法比另一种方法更好,但取决于您是想从头开发新产品还是改进现有产品的功能,您需要选择正确的方法以获得最佳结果。