Scaling development across multiple teams is a hard challenge, one of the ways to keep developer velocity high as well as increase robustness of delivered software is to "shift testing left". Hence we established a new technique for working with platform - "Dynamic environments".
Developers fell in love with the POC (yes, we built a really scrappy POC to win their opinions). We then implemented full product and rolled out across engineering org within next 3 months and never looked back ever since.
How to achieve
Update apps that constitute a platform to be cloud native an container-friendly. Define and implement service discovery, configuration, logging, 3rd party integrations
Automate preparation and distribution of production-like sanitized data. Complexities here involve scrubbing all Personal Identifiable Information (PII data) whilst maintaining common sense links between data, keep duplicated fields between database schemas in sync and also automating other storages, like Elastic as a search index
Using infrastructure-as-code techniques we're defining our "environment" in code and then utilizing tools to provision however many copies of the environment we want.
Start working on a feature in a local environment
Commit and push changes to git repo
Create pull request when you think you're done
This automatically kicks off provisioning of "dynamic" environment
Isolated environment is ready within the next 30 minutes and is available on domain dedicated to your feature branch. Again for developer experience, we picked domain to be in form jira-123.dyn.myshop.com which corresponds to the card in JIRA (can be any issue tracking software)
Kick off automated tests to run against dynamic environment, if tests pass it means environment is ready for QA to verify changes, if test fails developer reviews the failing test to confirm the reason
Acceptance verification and PO approval happening in this environment and then
When PR is merged in master, environment is destroyed
Ability to use dynamic environments allowed us to effectively scale development and were pivotal for successful migration of the Stella & Dot brand to the new multi-tenant social selling platform.