什麼是軟體開發中的 green field 和 brown field 模式 - 綠地開發和棕地開發
今天我在閱讀一篇文章時,看到了一個詞彙: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 專案通常建立在更穩定的基礎架構上,並具有已確認的業務流程;因此,他們不太可能面臨風險。然而,開發工作的很大一部分用於理解和整合現有的業務環境,而不是交付價值。對於棕地開發,確保成功的最佳方法是使用迭代方法來改進現有的邏輯和物理架構並加速開發、提高產品質量並最大限度地減少缺陷。
儘管沒有一種方法比另一種方法更好,但取決於您是想從頭開發新產品還是改進現有產品的功能,您需要選擇正確的方法以獲得最佳結果。
更多Jerry的原創文章,盡在:"汪子熙":