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:
- it shows progress all the time, even the tiniest progress
- we avoid long-unmerged branches
- 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.