O que são aplicações greenfield e brownfield?

89

Eu li a seguinte frase no wiki do Fluent NHibernate :

...; entretanto, para a maioria das aplicações greenfield (e algumas brownfield também) o mapeamento automático será mais do que capaz.

O que são aplicações greenfield e brownfield?

Svish
fonte

Respostas:

130

Campo Verde

em outras disciplinas como engenharia de software, um greenfield também é um projeto que não possui quaisquer restrições impostas pelo trabalho anterior. A analogia é com a construção em um terreno greenfield, onde não há necessidade de reformar ou demolir uma estrutura existente.

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

Campo marrom

Desenvolvimento brownfield é um termo comumente usado na indústria de TI para descrever espaços de problemas que precisam do desenvolvimento e implantação de novos sistemas de software na presença imediata de aplicativos / sistemas de software existentes (legados). Isso implica que qualquer nova arquitetura de software deve levar em consideração e coexistir com o software ativo já in situ.

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

Bombe
fonte
29
"Felizmente, o Google não caiu para mim, então pude encontrar as seguintes definições em poucos segundos." - Exatamente por que essa declaração é necessária? Eu posso meio que entender que você está aborrecido com uma pergunta 'simples' e adicionando isso por frustração ou algo assim, mas por que adicionar a afirmação de volta depois que ela foi removida?
AgentConundrum
8
Eu concordo com @AgentConundrum. Este é agora o segundo resultado que o Google retorna. Perca o comentário.
Rob Bell
5
É porque ainda sou da opinião de que as pessoas precisam aprender a usar o Google antes de tentar outras coisas. Você sabe, dar um peixe a um homem vs. ensinar um homem a pescar.
Bombe
17
@Bombe você não sabe que é o conteúdo que povoa o google? Portanto, você precisa das respostas em algum lugar para que sejam encontradas no google ... Você encontrou o artigo wiki no google, mas se o google tivesse a resposta, por que o artigo wiki precisaria ser escrito?
Robin Day
29
Engraçado é. Eu encontrei isso agora, por meio do Google. Primeiro link. ;)
Ibsonic
13

Eu acho que pode estar relacionado aos termos de planejamento urbano "terras verdes" e "terras brownfield" . Terras verdes são terras não desenvolvidas - agrícolas, paisagísticas ou naturais. A terra brownfield é uma terra desenvolvida.

Um aplicativo brownfield é um aplicativo existente, enquanto um aplicativo greenfield é aquele que ainda não foi feito ou está nos estágios iniciais de desenvolvimento.

Thomas Owens
fonte
Faz muito sentido, pelo menos. Mas como você obteria um aplicativo brownfield? Os aplicativos não são criados do zero originalmente? Quando se torna brownfield?
Svish,
2
Um aplicativo brownfield geralmente se refere a uma grande atualização ou um redesenvolvimento de um aplicativo existente onde há problemas de compatibilidade com formatos de arquivo existentes, interfaces, módulos, etc. compatibilidade e começar do zero.
Jeremy Bourque
1
Brownfield seria um grande aprimoramento ou uma reescrita menos do que completa de um aplicativo ativo existente. Em outras palavras, código legado.
APC de
4

Aplicativos greenfield: novo desenvolvimento, nenhum trabalho anterior feito que impõe restrições à sua solução. Acho que o termo vem de campo não "não arado, verde".

Brownfield: aplicativo existente, muitas coisas existentes a serem consideradas, etc.

Veja esta postagem .

Tijmenvdk
fonte
2

Eu acho que é uma analogia com a construção

  • um site greenfield é um terreno virgem - ou seja, um novo projeto, iniciando um novo projeto de software do zero
  • um local brownfield é aquele em que as estruturas existentes precisam ser desmontadas primeiro, ou seja, construir dentro de um projeto de software existente
Paul Dixon
fonte
2

Com base no que sei de James Gregory (o cara por trás do Fluent NHibernate), acho que a entrada da Wikipedia para brownfield é um pouco teórica. No desenvolvimento de aplicativos brownfield , nós o definimos como:

um projeto, ou base de código, que foi criado anteriormente e pode estar contaminado por práticas, estrutura e design inadequados, mas tem o potencial de ser revivido por meio de refatoração abrangente e direcionada

Versão resumida: um projeto existente que precisa ser trabalhado, mas ainda está desenvolvido ativamente (ao contrário da maioria dos sistemas legados).


fonte
2

Há muito debate em torno da decisão de uma empresa de 'greenfield' ou 'brownfield' ou refatorar o código legado.

A decisão deve ser tomada levando em consideração muitos fatores - não menos importante, os fundos disponíveis para desenvolver uma aplicação greenfield. Em muitos casos, o aplicativo legado é a fonte de renda atual da empresa e qualquer substituição greenfield desse código legado não renderá um único dólar vermelho até que esteja totalmente desenvolvido e nas mãos do primeiro cliente pagante.

Embora a preferência da maioria dos engenheiros de software seja INICIAR UM NOVO PROJETO GREENFIELD, porque eles geralmente odeiam o OPC (Código de Outras Pessoas), nem sempre pode ser no longo prazo financeiro da empresa.

Escrevi um artigo que analisa os riscos envolvidos em projetos greenfield, baseando-me em uma experiência muito real em uma empresa em que trabalhei mais de 20 anos atrás (mostrando minha idade agora;). Você pode lê-lo aqui:

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

Volksman
fonte