当前位置:网站首页>什么是软件开发中的 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 项目通常建立在更稳定的基础架构上,并具有已确认的业务流程;因此,他们不太可能面临风险。然而,开发工作的很大一部分用于理解和整合现有的业务环境,而不是交付价值。对于棕地开发,确保成功的最佳方法是使用迭代方法来改进现有的逻辑和物理架构并加速开发、提高产品质量并最大限度地减少缺陷。
尽管没有一种方法比另一种方法更好,但取决于您是想从头开发新产品还是改进现有产品的功能,您需要选择正确的方法以获得最佳结果。
边栏推荐
- 线性规划例题 投资的收益与风险
- [web technology] 1233 seconds understand web component
- Tech talk activity preview | building intelligent visual products based on Amazon kVs
- Leetcode question brushing record | 933_ Recent requests
- [fluent] dart data type map type (create map set | initialize map set | traverse map set)
- Smart trash can (V) - light up OLED
- What if the default browser cannot be set?
- Microservice architecture practice: Construction of scalable distributed database cluster
- Goodbye, shucang. Alibaba's data Lake construction strategy is really awesome!
- The impact of telecommuting on all aspects of our experience | community essay solicitation
猜你喜欢

A few lines of code to complete RPC service registration and discovery

Blog theme "text" summer fresh Special Edition

例题 非线性整数规划

QWebEngineView崩溃及替代方案

The computer comes with software to make the background color of the picture transparent (matting white background)

After meeting a full stack developer from Tencent, I saw what it means to be proficient in MySQL tuning

Use the API port of the bridge of knowledge and action to provide resources for partners to access

七张图,学会做有价值的经营分析

ETH数据集下载及相关问题

ThreadLocal
随机推荐
IP address translation address segment
IPtables中SNAT、DNAT和MASQUERADE的含义
Introduction to nexus and detailed tutorial of Xiaobai using idea to package and upload to nexus3 private server
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
13、Darknet YOLO3
Visibilitychange – refresh the page data when the specified tab is visible
Nexus Introduction and Xiaobai use idea Packaging and Upload to Nexus 3 private service detailed tutoriel
AP and F107 data sources and processing
ROS知识点——消息过滤器 ( message_filters)
2322. Remove the minimum fraction of edges from the tree (XOR and & Simulation)
Goodbye, shucang. Alibaba's data Lake construction strategy is really awesome!
JS20 数组扁平化
2022 interview questions
ThreadLocal
The difference between class and getClass ()
畅玩集团冲刺港股:年营收2.89亿 刘辉有53.46%投票权
Introduce the scrollintoview() method attribute in detail
关于我
Sword finger offer 22 The penultimate node in the linked list
剑指 Offer 22. 链表中倒数第k个节点