Cosa sono le applicazioni greenfield e brownfield?


89

Ho letto la seguente frase nel wiki di Fluent NHibernate :

...; tuttavia, per la maggior parte delle applicazioni greenfield (e anche per alcune di quelle brownfield ) la mappatura automatica sarà più che valida.

Cosa sono le applicazioni greenfield e brownfield?

Risposte:


130

terreno edificabile

in altre discipline come l'ingegneria del software, un greenfield è anche un progetto privo di vincoli imposti dal lavoro precedente. L'analogia è con quella della costruzione su terreni greenfield dove non è necessario rimodellare o demolire una struttura esistente.

(da http://en.wikipedia.org/wiki/Greenfield_project )

Campo Marrone

Sviluppo brownfield è un termine comunemente usato nel settore IT per descrivere spazi problematici che richiedono lo sviluppo e l'implementazione di nuovi sistemi software in presenza immediata di applicazioni / sistemi software esistenti (legacy). Ciò implica che qualsiasi nuova architettura software deve tener conto e coesistere con software live già in situ.

(da http://en.wikipedia.org/wiki/Brownfield_(software_development) )


29
"Fortunatamente Google non era fuori uso per me, quindi sono stato in grado di trovare le seguenti definizioni in pochi secondi." - Esattamente perché è necessaria questa dichiarazione? Posso in qualche modo capire che sei infastidito da una domanda "semplice" e dall'aggiunta di questo per frustrazione o qualcosa del genere, ma perché aggiungere di nuovo l'affermazione dopo che è stata rimossa?
AgentConundrum

8
Sono d'accordo con @AgentConundrum. Questo è ora il secondo risultato che Google restituisce. Perdi il commento.
Rob Bell

5
È perché sono ancora dell'opinione che le persone debbano imparare a usare Google prima di provare altre cose. Sai, dare un pesce a un uomo invece di insegnare a pescare a un uomo.
Bombe

17
@Bombe non sei a conoscenza che è il contenuto che popola Google? Quindi hai bisogno delle risposte da qualche parte per poterle trovare su google ... Hai trovato l'articolo wiki su google, ma se google avesse la risposta, perché l'articolo wiki avrebbe dovuto scrivere?
Robin Day

29
La cosa divertente è. L'ho trovato ora, tramite Google. Primo collegamento. ;)
Ibsonic

13

Penso che potrebbe essere correlato ai termini di pianificazione urbana "terreno verde" e "terreno dismesso" . La terra dei campi verdi è terra non sviluppata: agricola, paesaggistica o naturale. La terra brownfield è terra sviluppata.

Un'applicazione brownfield è un'applicazione esistente, mentre un'applicazione greenfield è un'applicazione che non è stata ancora realizzata o è nelle primissime fasi di sviluppo.


Almeno ha molto senso. Ma come si otterrebbe un'applicazione brownfield? Le applicazioni non sono originariamente create da zero? Quando diventa brownfield?
Svish

2
Un'applicazione brownfield di solito si riferisce a un aggiornamento importante o una riqualificazione di un'applicazione esistente in cui ci sono problemi di compatibilità con le versioni precedenti di formati di file, interfacce, moduli, ecc. Esistenti. A volte un'applicazione brownfield sarà resa greenfield decidendo di ignorare tutte le considerazioni compatibilità e ricominciare da capo.
Jeremy Bourque,

1
Brownfield sarebbe un miglioramento importante o una riscrittura tutt'altro che completa di un'applicazione live esistente. In altre parole, codice legacy.
APC

4

App Greenfield: nuovo sviluppo, nessun lavoro precedente svolto che pone vincoli alla tua soluzione. Penso che il termine derivi da un campo "verde non arato".

Brownfield: applicazione esistente, molte cose esistenti da considerare, ecc.

Vedi questo post .


2

Immagino sia un'analogia con la costruzione

  • un sito greenfield è un terreno vergine, ovvero un nuovo progetto, che avvia un nuovo progetto software da zero
  • un brownfield sito è uno in cui le strutture esistenti devono smantellato prima, vale a dire edificio all'interno di un progetto software esistente

2

Sulla base di quello che so di James Gregory (il ragazzo dietro Fluent NHibernate), penso che la voce di Wikipedia per brownfield sia un po 'teorica. In Brownfield Application Development , lo definiamo come:

un progetto, o codebase, che è stato precedentemente creato e può essere contaminato da pratiche, struttura e design inadeguati, ma ha il potenziale per essere rianimato attraverso un refactoring completo e diretto

Versione breve: un progetto esistente che necessita di lavoro ma è ancora attivamente sviluppato (a differenza della maggior parte dei sistemi legacy).


2

C'è molto dibattito sulla decisione di un'azienda di "greenfield" o "brownfield" o di refactoring del codice legacy.

La decisione deve essere presa in considerazione di molti fattori, non ultimo i fondi disponibili per sviluppare un'applicazione greenfield. In molti casi l'app legacy è l'attuale cash cow dell'azienda e qualsiasi sostituzione greenfield di quel codice legacy non farà un solo dollaro rosso fino a quando non sarà stata completamente sviluppata e nelle mani del primo cliente pagante.

Mentre la preferenza per la maggior parte degli ingegneri del software è INIZIARE UN NUOVO PROGETTO GREENFIELD perché di solito odiano OPC (Other People's Code), potrebbe non essere sempre nel lungo termine finanziario dell'azienda.

Ho scritto un articolo che analizza i rischi connessi ai progetti greenfield basandomi su un'esperienza molto reale in un'azienda per cui ho lavorato più di 20 anni fa (mostrando la mia età ora;). Potete leggerlo qui:

http://stepaheadsoftware.blogspot.com.au/2012/09/greenfield-or-refactor-legacy-code-base.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.