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.”
In software development, this can mean developing a system for a new environment without any integration with legacy systems. Sounds great 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.
Why? Because the project is now 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 you) have chosen a tech stack, mapped out a basic architecture and decided on a methodology. They’ve certainly chosen a programming language.
So the only time a project can be called greenfield (and developers can be truly happy) is if no code has been written. 🙂