What are greenfield and brownfield applications?

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