当前位置:网站首页>什么是软件开发中的 green field 和 brown field 模式 - 绿地开发和棕地开发
什么是软件开发中的 green field 和 brown field 模式 - 绿地开发和棕地开发
2022-07-02 14:54:00 【华为云】
今天我在阅读一篇文章时,看到了一个词汇: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 项目通常建立在更稳定的基础架构上,并具有已确认的业务流程;因此,他们不太可能面临风险。然而,开发工作的很大一部分用于理解和整合现有的业务环境,而不是交付价值。对于棕地开发,确保成功的最佳方法是使用迭代方法来改进现有的逻辑和物理架构并加速开发、提高产品质量并最大限度地减少缺陷。
尽管没有一种方法比另一种方法更好,但取决于您是想从头开发新产品还是改进现有产品的功能,您需要选择正确的方法以获得最佳结果。
边栏推荐
- 如何与博格华纳BorgWarner通过EDI传输业务数据?
- 对接保时捷及3PL EDI案例
- Microservice architecture practice: using Jenkins to realize automatic construction
- si446使用记录(二):使用WDS3生成头文件
- [essay solicitation activity] Dear developer, RT thread community calls you to contribute
- The beginning of life
- Believe in yourself and finish the JVM interview this time
- VScode知识点——常见报错
- Error when uploading code to remote warehouse: remote origin already exists
- Seven charts, learn to do valuable business analysis
猜你喜欢
随机推荐
云通信接口更新迭代——SUBMAIL API V4正式上线
Explanation of traceroute command
Eye of depth (II) -- matrix and its basic operations
executescalar mysql_ExecuteScalar()
详细介绍scrollIntoView()方法属性
如何与博格华纳BorgWarner通过EDI传输业务数据?
Linux Installation PostgreSQL + Patroni cluster problem
Does digicert SSL certificate support Chinese domain name application?
chmod命令原理及用法详解[通俗易懂]
Nexus Introduction and Xiaobai use idea Packaging and Upload to Nexus 3 private service detailed tutoriel
【Leetcode】14. 最長公共前綴
GeoServer:发布PostGIS数据源
Method of C language self defining function
The poor family once again gave birth to a noble son: Jiangxi poor county got the provincial number one, what did you do right?
Win10 system uses pip to install juypter notebook process record (installed on a disk other than the system disk)
executescalar mysql_ ExecuteScalar()
[web technology] 1233 seconds understand web component
The difference between class and getClass ()
七张图,学会做有价值的经营分析
Schoolbag novel multithreaded crawler [easy to understand]








![[leetcode] 14. Préfixe public le plus long](/img/70/e5be1a7c2e10776a040bfc8d7711a0.png)
