What are greenfield and brownfield applications?

47,938

Solution 1

Greenfield

in other disciplines like software engineering, a greenfield is also a project which lacks any constraints imposed by prior work. The analogy is to that of construction on greenfield land where there is no need to remodel or demolish an existing structure.

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

Brownfield

Brownfield development is a term commonly used in the IT industry to describe problem spaces needing the development and deployment of new software systems in the immediate presence of existing (legacy) software applications/systems. This implies that any new software architecture must take into account and coexist with live software already in situ.

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

Solution 2

I think it might be related to the urban planning terms "greenfield land" and "brownfield land". Greenfield land is undeveloped land - agricultural, landscaping, or natural. Brownfield land is developed land.

A brownfield application is an existing application, while a greenfield application is one that is not yet made or is in very early stages of development.

Solution 3

Greenfield apps: new development, no prior work done that poses constraints on your solution. I think the term comes from un "unplowed, green" field.

Brownfield: existing application, lots of existing stuff to consider, etc.

See this post.

Solution 4

I would guess it's an analogy to building

  • a greenfield site is virgin ground - i.e. a new project, starting a new software project from scratch
  • a brownfield site is one where existing structures need to dismantled first, i.e. building within an existing software project

Solution 5

Based on what I know of James Gregory (the guy behind Fluent NHibernate), I think the Wikipedia entry for brownfield is a little on the theoretical side. In Brownfield Application Development, we define it as:

a project, or codebase, that was previously created and may be contaminated by poor practices, structure, and design but has the potential to be revived through comprehensive and directed refactoring

Short version: An existing project that needs work but is still actively developed (unlike most legacy systems).

Share:
47,938

Related videos on Youtube

Lemon
Author by

Lemon

Software Developer, Geek, HSP, SDA, ..., open, honest, careful, perfectionist, ... Currently into indoor rowing and rock climbing, just to mention something non-computer-related... Not the best at bragging about myself... so... not sure what more to write... 🤔

Updated on July 08, 2022

Comments

  • Lemon
    Lemon almost 2 years

    I read the following sentence in the Fluent NHibernate wiki:

    ...; however, for most greenfield applications (and quite a few brownfield ones too) auto mapping will be more than capable.

    What are greenfield and brownfield applications?

  • Lemon
    Lemon over 14 years
    Makes a lot of sense at least. But how would you get a brownfield application? Isn't applications built from scratch originally? When does it become brownfield?
  • Jeremy Bourque
    Jeremy Bourque over 14 years
    A brownfield application usually refers to a major upgrade, or a redevelopment of an existing application where there are issues backwards compatibility to existing file formats, interfaces, modules, etc. Sometimes a brownfield application will be made greenfield by deciding to ignore all considerations of backwards compatiblity and start fresh.
  • APC
    APC over 14 years
    Brownfield would be a major enhancement or less-than complete rewrite of an existing live application. In other words, legacy code.
  • Mikeon
    Mikeon over 14 years
    "Fortunately Google was not down for me so I was able to find the following definitions within mere seconds." - Exactly why is this statement needed? I can sort of understand your being annoyed by a 'simple' question and adding this out of frustration or something, but why add the statement back after it's been removed?
  • Rob Bell
    Rob Bell over 13 years
    I agree with @AgentConundrum. This is now the second result that Google returns. Lose the remark.
  • Bombe
    Bombe over 13 years
    It’s because I am still of the opinion that people need to learn to use Google before trying other things. You know, giving a man a fish vs. teaching a man to fish.
  • Robin Day
    Robin Day over 11 years
    @Bombe are you not aware that it is content that populates google? Therefore you need the answers somewhere in order for them to be found on google... You found the wiki article on google, but if google had the answer then why would the wiki article have needed writing?
  • Ibsonic
    Ibsonic over 9 years
    Funny thing is. I found this now, through Google. First link. ;)
  • Granger
    Granger over 2 years
    ...which feels so backwards in my mind. When I think of a "brown field", I think "dirt, un-plowed, unorganized"; by the time a field is brown, it's often best to start over. And by extension, a "green field" would be the one where things are growing already. Something living is already growing and thriving there, and it may have even been landscaped; you need to be careful of changes you make or you'll destroy something that's already working. But it is what it is; like how we drive in a parkway and park in a driveway. :)
  • Chris Maggiulli
    Chris Maggiulli almost 2 years
    What would you consider a project whose purpose is to replace an old system, but is built on drastically different technologies with drastically different functional requirements. The only remnants of the prior system is data that was transformed to match the new object model?