Cross-team best practices
Highest priority
All code should be in a github repository inside the precision-sustainable-ag organization
Repositories should have at least 2 branches at all times (main/develop)
Code should be meaningfully documented (ideally in confluence) and linked in the README
If an intern/temporary employee is the main developer the above is especially critical
High priority
Resources (VMs, functions, app service plans) should be hosted in azure
Languages should be well known by other people on the team (no fortran, vba, etc.)
Limit proprietary solutions (data bricks, etc) in favor of more vanilla offerings (VMs, functions, app service plans)
Separate resources into logical groups (don’t put API, web app, db all on one VM)
Medium priority
Use git flow (feature/hotfix branches, pull requests)
Have main and development be protected branches
Enforce meaningful code review
Detailed notes on each PR explaining what’s going on
No mega PRs (10+ files changed etc) unless absolutely needed
Issue tracking via github issues
Low priority
Have tests
Have CI/CD