- It won't mess with data - Proper error handling - Edge case handling - It works with existing production code - It is not a breaking change - It is backward compatible - It has performance in mind - Automated tests - Avoid regression - Without vulnerability - Security
need to understand it - You don't know all the second order effects that your changes will cause it - You can't see underlying structure - You can make breaking changes
a safe way - Enable you to test in production with one or more customers before releasing to everybody (rollout pattern) - Always test both branches of your feature flag.
the product and business logic - You can only make automated tests after testing manually - Automated tests avoid regression and catch second order effects when changing codes in the future - Use test plan for pragmatic testing
could not be colocated with the existing code in the monorepo - Moving more Woovi code to microservices would simplify this. - Mostly integration tests (endpoints, mutations, queries, jobs)