It's easy in greenfield projects because they are smaller and less things to break.

They work well on existing projects if the codebase already has a good architecture and has good consistent (and prevalent) patterns.