Greenfield is a term that originated from the construction industry to reference land that has never been used or is undeveloped. With land that is greenfield, there is no need to demolish or rebuild any existing building or infrastructure. The use of the term has evolved and is now usedÂ in other industries. For the most part, a greenfield project is one that lacks constraints imposed by prior work.
Greenfield projects in software development
In software development, a greenfield project is a project that is developed from scratch instead of from an existing program. Creating a system from scratch requires development from a clean slate without legacy code. These kinds of projects are considered higher-risk, as they often require new infrastructure, customers, and possibly new owners. Because of the risk factor, using agile software development methodologies is deemed the best approach as emphasis is placed on empowering people to collaborate and make team decisions in addition to continuous planning, testing, and integration.
A 100% greenfield project is rare, as most developers will interact with or update existing code or enable integrations. Examples of greenfield software development projects include:
Greenfield vs. brownfield software development
In the same construction vein, brownfield is a term that describes previously developed land. In contrast to a greenfield project, a brownfield project describes software built from an existing program. Brownfield development typically happens when an existing application needs improvement or further development. Examples of brownfield software development projects include:
- Adding a new module to an existing enterprise system
- Integrating a new feature into a software application
- Upgrading code to enhance an app’s functionality
Greenfield development is generally more flexible than brownfield since a new program doesn’t have to fit a specific mold. However, with no clear direction, the degree of risk is comparatively higher with greenfield, and it is much more time consuming as all aspects of the system need to be defined.
While brownfield development offers the ability to add improvements on existing solutions, it requires detailed and precise knowledge of the constraints of the existing infrastructure and IT to avoid failure. Overall, brownfield development costs less in both time and money and is much less risky than greenfield development.