Aeria Leeve Says

Demo First

Demo first means a ticket has to be demoed on production to be considered done.

The implication is to setup deployment on day one. E.g. deploy the result of create-next-app or create-react-app (without modification) to AWS, fly, or vercel.

This is good because:

  1. it shows progress all the time, even the tiniest progress
  2. we avoid long-unmerged branches
  3. owners know it's already on production

To safely demo on production, we can use feature flag to toggle the availability of a feature.

A feature flag can simply be checking whether a parameter exists in the URL, e.g. staging.

When a feature is split into back-end and front-end effort, we can demo the back-end ticket by adding a simple UI to show the result of the ticket. E.g. a page that displays the result of JSON.stringify when a feature flag is turned on.

A trick to implement feature flag is to first implement the feature, then add a feature flag as a stand alone commit for ease of removing the feature flag.