We use a version of Git Flow for branching (since everyone is talking about branching strategies here). But technically, you asked specifically about code review process. Every ticket is it's own branch against the development
branch, and when complete is merged by PR into the development branch. We're a small team, so our current process is:
- Merges to the development branch require one approval
- Merges to the main branch for a release require two approvals
- If the changes are only code, any developer can review and approve
- If there are "significant" SQL changes a DBA approval is required.
- "significant" means a new entity in the DB, or...
- an inline/Dapper query with a join
As we grow we'll probably have to silo more and require specific people's approval for specific areas.
A lot of what we do is "cultural", like encouraging readability, avoiding hard-coded values, and fixing issues near the altered code even when not related to the original ticket. The key is to be constructive. The goal is better code, not competition. So far we have the right people for that to work.
Because it originally didn't account for time zones at all....it was very "everybody is in Virginia". The day was even wrong for many countries. When a training program shifted to include other countries it suddenly mattered. And it correlated to other data that did have times.