When Greenfield Doesn't Mean Greenfield
If you want to make a software developer happy do this:
Give them a fresh new project to work on and tell them they’re free to use whatever technologies they see fit. Aside from giving them a pay rise, there’s probably no better way to motivate them. Developers love autonomy. (Who doesn’t?)
Knowing this, companies often advertise jobs as greenfield. Sadly, however, calling a project greenfield is usually misleading.
To see why, consider the Wikipedia definition:
“[A] greenfield project is one that lacks constraints imposed by prior work.”
To a software developer, a greenfield project means developing an application from scratch. But when it comes to job adverts there’s a catch.
If a single line of code has already been written the project is not greenfield.
The project has been constrained by prior work. You could even argue that it is constrained by legacy code. (In which case you should read Michael Feather’s book).
Other developers (not the one applying for the job) have already chosen a programming language, tech stack and mapped out a basic architecture. It doesn't matter if it's just a proof of concept because these usually end up in production anyway.
So the only time a project can be called greenfield is if no code has been written. Maybe we should start using Tabula Rasa instead to describe true greenfield projects.