Review Workflow
Purpose: Guide contributors through creating and reviewing merge requests to maintain code quality and foster collaborative development
Audience: Developers and contributors participating in code writing and reviewing
Status: Draft
Rationale
This workflow establishes a consistent process for code review that ensures:
- Code quality is maintained through peer review
- Knowledge is shared among team members
- Changes are properly documented and communicated
- Multiple perspectives are considered before merging
- Authors receive timely feedback to maintain productive workflow
Quick Reference
For Authors:
- Mark as draft until ready for review
- Request 2-5 reviewers (buddy, success partner, not product manager)
- Respond to feedback within a day
- Need 2+ approvals before requesting product manager review
For Reviewers:
- Review within one week of assignment
- Use template with review checklist
- Provide constructive feedback
Workflow Steps
1. Prepare Draft Merge Request
Who: Merge Request Author
When: While work is in progress and not ready for review
Actions:
- Mark MR as draft (e.g., "Draft: Meeting notes")
- Continue developing until ready for review
Result: MR exists but reviewers know not to review yet
2. Make Merge Request Ready for Review
Who: Merge Request Author
When: Code is complete and ready for peer review
Actions:
- Follow the Merge Request template
- Write review guidelines specific to this MR
- Perform a thorough self-review of the MR
- Remove draft status
Result: MR is clearly documented and ready for reviewers
3. Request and Manage Reviews
Who: Merge Request Author
When: After MR is ready for review
Actions:
- Request 2-5 reviewers (e.g., buddy and success partner, but not the product manager)
- Once you receive a review, immediately improve MR according to the feedback
- Resolve all open threads
- If no feedback within a week, ping the reviewers
- Assign additional reviewers if needed for faster/more feedback
Result: MR receives timely reviews and continuous improvements
4. Handle Review Feedback
Who: Merge Request Author
When: After receiving change requests from reviewers
Actions:
- If you agree with requested changes, apply them
- If you disagree with requested changes, escalate to product manager
- If changes would be substantial, create a follow-up issue or re-request review from the original reviewer
Result: Review feedback is addressed and reviewer concerns are resolved
5. Finalize for Merge
Who: Merge Request Author
When: After receiving 2+ approvals
Actions:
- Add the label "MR:please merge"
- Request review from product manager
Result: MR is approved and queued for final merge
6. Conduct Review
Who: Assigned Reviewer
When: Within one week of being assigned
Actions:
- Check if the MR uses the proper template and includes a review guide; if either is missing, request them
- Copy the review template with checkboxes about what you reviewed
- Review the MR completely before submitting feedback
- If you cannot finish within a day, submit partial reviews
- Provide constructive feedback
- Request changes if necessary, or approve if satisfied
- Comment on parts that could be improved or need clarification
Result: Author receives actionable feedback to improve the MR
Special Cases
Disagreement on Requested Changes
If the author disagrees with requested changes:
- Author escalates to product manager
- Product manager makes final decision
- Author implements decision or creates follow-up issue
Substantial Changes Required
When reviewer feedback would require substantial work:
- Author creates a follow-up issue for the substantial changes
- Current MR can proceed without those changes, OR
- Author re-requests review from original reviewer after substantial changes
No Reviews Received
If author hasn't received feedback within a week:
- Author pings assigned reviewers
- Author can assign additional reviewers
- Author can escalate to product manager if needed
Examples
Example 1: Standard MR Flow
Day 1: Author completes feature, follows template, requests 3 reviewers
Day 2: Reviewer 1 provides feedback requesting minor changes
Day 2: Author makes changes, resolves threads
Day 3: Reviewer 2 approves
Day 4: Reviewer 3 approves
Day 4: Author adds "MR:please merge" label, requests PM review
Day 5: PM approves and merges
Example 2: MR with Disagreement
Day 1: Author requests review
Day 2: Reviewer requests architectural change
Day 2: Author disagrees, escalates to PM
Day 3: PM decides to proceed with current approach
Day 3: Author documents decision in MR
Day 4: Reviewer approves based on PM decision
Day 5: Second approval received, PM merges
Related Resources
.gitlab/merge_request_templates/- MR templates to follow- Review guidelines (should be filled out in each MR by author)
Troubleshooting
Common Issues
Problem: No reviews received within a week Solution:
- Ping assigned reviewers in MR comments
- Assign additional reviewers
- Escalate to product manager if still no response
Problem: Review template or review guide missing from MR Solution: Reviewer should immediately request these in the MR before conducting review
Problem: Reviewers keep finding new issues on each review round Solution:
- Ensure reviewers complete full review before submitting
- Use the review checklist template
- Consider scheduling a synchronous review session for complex MRs
Problem: Author and reviewer stuck in disagreement Solution: Escalate to product manager for decision
Open Points
Notes
- Fast reviews (within 1-2 days) are very helpful to maintain productive workflow
- Partial reviews are acceptable if full review cannot be completed within a day
- All feedback should be constructive and focused on improving the code