Appendix - Greenfield Projects.mp4

Appendix: Greenfield Projects

A common question comes up again and again when building projects: what's the difference between greenfield and brownfield development?

Greenfield is when you're starting a new project where there is nothing there before you. The field is green, it has not been built on yet.

Brownfield means the field has something on it already. You're building in an existing setup, perhaps a legacy codebase that needs to integrate with what's already there. There's stuff on the ground already that impacts what you're doing.

Most of the work we've done in this cohort has been brownfield. We've given you an existing application and worked within its constraints, using preexisting patterns in the codebase.

But how do you start when there's nothing to start from? How do you start from a blank page?

Discussing how to start a greenfield project from scratch

Start With a Grilling Session

The first thing to start with is a grilling session. You have some kind of vague idea that needs hammering out, and you chat with an agent about it.

This is where you capture all your initial thinking and rough ideas about what you're going to build.

Starting with a grilling session to refine project ideas

Build Your Research Documentation

From the grilling session, save everything into research files. Anything captured during those grilling sessions should be saved in the early phases as markdown documents in the repo itself.

The idea is to have multiple grilling sessions, continually refining your idea for what you're trying to build. Save the output of those into markdown documents so you build up a codebase - but of markdown documents - with all the decisions you've made.

This creates a living document of your project's evolution and reasoning.

Multiple grilling sessions building up markdown documentation

Prototype Your Ideas

Once you have some research, start prototyping. Take some of the research questions you had and turn them into prototypes.

These prototypes might get reused later, or they might just get saved in the codebase as reference material. Continue to iterate on them so you start to get a clearer picture of what you actually want to build.