DevOps Culture
Local development
Developers should work on their own isolated development environment - normally on a local desktop/laptop.
Databases should also be developed locally, as recommended by Microsoft, to aid productivity for developers to avoid conflicting with each other if using a shared database. This also avoids network latency of using a remote database server over the Internet or VPN.
Scripts should be created to allow this environment to be rapidly destroyed and recreated - including sample test data mimicking a production environment.
Infrastructure as Code
Treat the infrastructure as if it were lines of code, use custom tools like Terraform to define what infrastructure you require for the application.
Never make manual changes to the infrastructure, always do this via the tool/code, and version control the scripts.
You should never be afraid of destroying the environment - it should be easy to recreate if the scripts are correct.
Trunk Based Development
Adopt Trunk Based Development in your version control system (GIT) - https://minimumcd.org/minimumcd/tbd/
It works for large organisations like Microsoft and Google, so should work for everyone.
Donβt forget to version control SQL databases
Database schemas are critical components of your codebase and should be version controlled.
Use tools like Redgate SQL Compare and https://dbup.github.io/ to generate incremental upgrade scripts and version control them.
It should be trivial for a developer to update the local development database to reflect changes other developers have made.
Continuous Integration
Adopt CI best practice https://minimumcd.org/minimumcd/ci/