- Make sure I stub ALL dependent services
- Use in-memory datastores for unit/integration tests if you have to test with data
- Make sure I follow the testing pyramid
- Make sure all services have independent lifecycles from each other i.e. separately versioned (they may depend on specific versions of each other but not rely on being coupled)
- Make sure I can iterate on a service without breaking services that depend on me
- Make sure I take ownership of schema migration and test this as an integration test
- Make sure I do BDD at the source of that service and not across multiple services (leave that for smoke tests)
- Use protective branches and allow to merge into master only if tests and status checks pass
- Need a peer review of my code before my PR can be merged
- The code can be merged as long as the tests and status check pass and it is peer reviewed
- Do unit, integration and acceptance tests on PRs before and after they are merged
- Perform automated smoke tests to validate that things work together as expected
- Have clear, concise commit messages conforming to semantic commit messages, and using the footer to add bug tracker/story ID and/or username(s) if developed in a pair/mob (
git commit --verbose
is useful for multi-line messages) - Protect your master branch
- No force pushing to master
- Reviews required on PRs before they can be merged
- Develop each story on a new branch
- Merge to master regularly to avoid merge hell
- Make sure issues are tracked with the corresponding code repository
- Make sure epic issues are tracked at the service repository level
- Understand github's issue management as part of the development workflow
This repository has been archived by the owner on May 24, 2022. It is now read-only.