So you want to work on a new feature? Awesome, this will be your workflow:

  1. Create a Trello card or join a card that is already created

  2. Create a new branch with name describing the feature you are going to work on git checkout -b login-page

  3. Push your initial commit

  4. Create a Draft pull request and write a short description of what you are working on

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/26e086bf-5f65-4b62-ac53-2ba76b8db205/Untitled.png

  5. Link this draft PR to the Trello card

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6618a076-5e7a-4b6a-851b-4843ad8a1643/Untitled.png

  6. Keep working on your feature, pushing frequent and descriptive commits until you are done with your feature

  7. If any other PR is merged, pull from master to keep your branch up-to-date with master. This will avoid massive merge conflicts before merging your branch

  8. Pull and merge from master and resolve any merge conflicts

  9. Request code review and add relevant team members as Reviewers. Ask someone on the team (on Slack) to review your PR. Write a comment on Trello card with the name of the reviewer

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ffc65286-8bb5-4022-89a0-87383d1d98a4/Untitled.png

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/06bc86f0-07b4-4cab-be2b-20b59ed48001/Untitled.png

  10. Resolve any change requests or failed tests. After you've implemented the change requests, re-request the review from your team member. Do this on the PR by clicking the icon below and also ask your team member on Slack

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f53d6268-8f19-4797-aa4f-45292417a23d/Untitled.png

  11. Deploy this individual feature branch to relevant staging environment. (In case you need to test more features at the same time, use another staging environment, which will mirror this one)

    Production ready development environment

  12. Once you deploy to staging, do your own QA. Test your features and make sure it did not break other features

  13. Ask another team mate to QA your feature on Slack. Write a comment on Trello card with the name of the team member doing the QA

  14. Once the QA is done, you make sure your stakeholder does not require the feature review as well. You can send him a link to the deployed staging environment, or even better have another staging environment setup specifically for stakeholder review (as it may take some time, for the stakeholder to review your work and you don't want to occupy your "only" staging environment)

  15. After you get a 👍 from your stakeholder, merge from master again and make sure nothing is broken. If there were significant changes to master while you were in your staging environment, redeploy it again to staging environment and repeat QA

  16. Deploy to production

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b2d32ae6-71bb-414f-9638-5ca8580b785a/Untitled.png

  17. Once you deploy to production, do QA in production again